Website Frontend Documentation

This is the Arduino Day PH 2025 website repository project for the Arduino community in the Philippines.


πŸ“Œ Table of Contents


πŸ›  Tech Stack

Next.js  React  Tailwind CSS  TypeScript 


πŸš€ Getting Started

Prerequisites

Ensure you have the following installed:

  1. Create a New folder where you can store the project file to be referred as the Project Folder

  2. Open command prompt, change current directory to as the Project Folder

cd <PATH TO PROJECT FOLDER>
  1. Clone the repository, add . on the end to extract files to current directory.
git clone https://github.com/ArduinoDayPH2025/arduino-ph-2025.git .
  1. Install dependencies
npm install
  1. Run the development server:
npm run dev

Open http://localhost:3000 with your browser to see the result.


πŸ“ Project Structure

πŸ“¦ arduino-ph-2025
β”œβ”€β”€ πŸ“‚ .next
β”œβ”€β”€ πŸ“‚ node_modules
β”œβ”€β”€ πŸ“‚ public               # Static assets
β”œβ”€β”€ πŸ“‚ src
β”‚   β”œβ”€β”€ πŸ“‚ app              # Next.js app directory (routing & pages)
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ components   # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“‚ features # Feature-specific components
β”‚   β”‚   β”‚   └── πŸ“‚ ui       # Generic, reusable UI components
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ context      # Global state management (React context)
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ lib          # Utility functions and helpers
β”‚   β”‚   └── πŸ“‚ types        # TypeScript types and interfaces
β”œβ”€β”€ .gitignore
β”œβ”€β”€ eslint.config.mjs
β”œβ”€β”€ next-env.d.ts
β”œβ”€β”€ next.config.ts
β”œβ”€β”€ package.json
β”œβ”€β”€ postcss.config.mjs
β”œβ”€β”€ README.md               # Project documentation
β”œβ”€β”€ tailwind.config.ts      # Tailwind CSS configuration
β”œβ”€β”€ tsconfig.json           # TypeScript configuration
β”œβ”€β”€ .prettierrc.json        # Prettier configuration
β”œβ”€β”€ package-lock.json


Issue & Project Workflow

We use GitHub Projects to manage tasks and issues. Follow these steps when working on issues:

1. Find an Issue

  • Go to the GitHub Issues page.
  • Assign issue to yourself.
  • Move the issue to "In Progress" in the project board.

2. Create a Branch

3. Submit a Pull Request (PR)

  • Reference the issue in the PR description (e.g., Closes #123).
  • Move the issue to "Review" in the project board.

4. Code Review & Merge

  • Once approved, the PR gets merged into develop.
  • The issue is moved to "Done."

Branching & Git Workflow

Branch Naming Convention

Branch Type Naming Convention Example
Main main main
Development dev dev
Feature feature/ISSUE-ID-feature-name feature/123-add-auth
Bugfix bugfix/ISSUE-ID-issue-name bugfix/234-fix-footer
Hotfix hotfix/ISSUE-ID-critical-fix hotfix/345-fix-login

1. Switch to develop branch

git checkout dev
git pull origin dev

2. Create a feature branch linked to an issue

git checkout -b feature/ISSUE-ID-feature-name

Example:

git checkout -b feature/123-add-login-auth

3. Make your changes in the code

4. Once you're done with your changes, commit

git add .
git commit -m "feat(auth): add login authentication (Closes #123)"

5. Push to remote branch

git push origin feature/ISSUE-ID-feature-name

6. Create a pull request (PR)

  • Go to GitHub
  • Open a new PR from feature/ISSUE-ID-feature-name β†’ develop
  • Use the PR Template below

Commit Message Guidelines

Commit Message Format

<type>(<scope>): <description>

Allowed Commit Types

This project follows Conventional Commits.

Type Description
feat A new feature
fix A bug fix
docs Documentation changes
style Code style changes (formatting, etc.)
refactor Code changes that neither fix a bug nor add a feature
perf Performance improvements
test Adding or modifying tests
chore Maintenance and other minor tasks

Examples

git commit -m "feat(auth): add user authentication with JWT "
git commit -m "fix(navbar): resolve mobile responsiveness issue "
git commit -m "docs(readme): update contribution guide "

πŸ“‹ Pull Request Guidelines

PR Title Format:

<type>(<scope>): <short description>

Example

feat(auth): add user login functionality
fix(navbar): resolve mobile responsiveness issue

PR Description Template

✨ What’s New?
- [x] Briefly explain what was added

πŸ“· Screenshots of website (IMPORTANT)
_Add relevant screenshots/gifs_

πŸ”— Related Issues
Closes #ISSUE_NUMBER

βœ… Checklist (from issue)
- [ ] Code follows project conventions
- [ ] Linted & formatted
- [ ] Tested locally