A smart capacity management and virtual queuing system for Arduino Day Philippines 2025
Activity Map is a real-time web application designed to optimize crowd flow and venue navigation. Unlike standard event maps, this system acts as a traffic control engine, intelligently managing booth capacity by distinguishing between pre-scheduled visitors and walk-in attendees.
Activity Map integrates directly with the event's registration system to provide a seamless experience for attendees and organizers. It solves the problem of overcrowding by implementing a Dual-Priority Queue System:
-
🚀 Priority Access: Users with a pre-booked itinerary for a specific time/section are granted immediate entry.
-
⏳ Virtual Walk-in Queue: Users without a booking can join a digital waitlist when a section reaches capacity, freeing them to roam the venue instead of standing in line.
-
📊 Live Capacity Tracking: Real-time monitoring of section occupancy driven by physical entry/exit scans.
-
🤝 Shared Identity: No new accounts required—attendees log in simply by scanning their existing Registration QR code.
Whether you are an attendee checking your itinerary or a guard managing section entry, Activity Map ensures the right people get to the right place at the right time.
- 📚 System Documentation
- 🛠 Tech Stack
- 🚀 Getting Started
We maintain detailed documentation for the system architecture, logic flows, and database schema in the
docs/folder.
| Document | Description |
|---|---|
| 🏗️ System Architecture | High-level system overview, component breakdown, and integration points. |
| 🔄 Application Flowchart | Detailed logic flow from authentication to queue management. |
| 💾 Database Schema (ERD) | Entity relationship diagrams and table definitions. |
Ensure you have the following installed:
-
Create a New folder where you can store the project file to be referred as the Project Folder
-
Open command prompt, change current directory to as the Project Folder
cd <PATH TO PROJECT FOLDER>- Clone the repository, add
.on the end to extract files to current directory.
git clone https://github.com/ArduinoDayPH2025/activity-map.git .- Install dependencies
npm install- Run the development server:
npm run devOpen http://localhost:3000 with your browser to see the result.
📦 Activity Map
├── 📂 .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
We use GitHub Projects to manage tasks and issues. Follow these steps when working on issues:
- Go to the GitHub Issues page.
- Assign issue to yourself.
- Move the issue to "In Progress" in the project board.
- Use the branching convention.
- Start coding!
- Reference the issue in the PR description (e.g.,
Closes #123). - Move the issue to "Review" in the project board.
- Once approved, the PR gets merged into
develop. - The issue is moved to "Done."
| 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 |
git checkout dev
git pull origin devgit checkout -b feature/ISSUE-ID-feature-nameExample:
git checkout -b feature/123-add-login-authgit add .
git commit -m "feat(auth): add login authentication (Closes #123)"git push origin feature/ISSUE-ID-feature-name- Go to GitHub
- Open a new PR from feature/ISSUE-ID-feature-name → develop
- Use the PR Template below
<type>(<scope>): <description>
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 |
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 "
<type>(<scope>): <short description>
Example
feat(auth): add user login functionality
fix(navbar): resolve mobile responsiveness issue
✨ 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