💡 Inspiration
Campus life is packed with events — seminars, workshops, fests, volunteering drives — yet students constantly miss out because information is scattered and disorganized. Organizers struggle even more: coordinating volunteers, tracking tasks, and pushing updates is messy and time-consuming.
We built Campus Event Planner to fix this. One centralized, role-aware platform that brings structure, transparency, and real engagement to every campus event.
🚀 What It Does
A full-stack web app serving two user types — Students and Organizers — each with tailored dashboards.
🔐 Smart Authentication
- University email-based role assignment (
@students.muet.edu.pk→ Student,@organizer.muet.edu.pk→ Organizer) - Session persistence and strict role-based access control
👨🎓 Student Experience
- Discover, search, and filter events (by category, day, time)
- Register as an attendee or volunteer
- Bookmark events for later
- Personal dashboard with registered events, bookmarks, and task progress
📋 Volunteer Task System
- View assigned tasks with live countdown timers
- Status indicators:
Pending→Due Soon→Overdue→Done - Smart sorting: Overdue tasks always surface first
- Late completion tracking with duration analysis
👨💼 Organizer Dashboard
- Create, edit, and delete events (including multi-day)
- Assign tasks to volunteers with deadlines
- Monitor participant details with privacy controls
- Track event completion metrics
⭐ Feedback & Reporting
- One rated review per student per event
- Private issue reporting system for organizers
🛠️ How We Built It
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + TailwindCSS |
| Backend | Firebase Auth + Firestore + Cloud Functions |
| API Layer | Express.js (hybrid with Firebase Functions) |
| Real-Time | Firestore onSnapshot listeners |
Cloud Functions handle automation: user creation, role assignment, and scheduled overdue task detection — running sweeps even when no users are online.
🧠 What We Learned
Real-time deadline tracking is harder than it looks. Client-side timers drift under load. We moved deadline state into Firestore and synced via listeners — far more reliable.
Security Rules are the real enforcement layer. Hiding UI elements isn't enough. Firestore Security Rules must independently validate every read/write. We treat rules as the source of truth; the UI is just a usability layer on top.
Server-side schedulers are essential for overdue detection. Without a Cloud Function running scheduled sweeps, tasks could stay "Pending" forever if no one visited the page.
Smart task sorting reduces cognitive load.
Ordering tasks as Overdue → Due Soon → Pending → Done meant volunteers instantly saw what needed attention.
🚧 Challenges We Faced
- Building a real-time task engine that stays accurate across many concurrent users
- Enforcing strict role separation (organizers cannot register or review; students cannot manage events) at both the UI and database level
- Designing one app that feels simple for students but powerful for organizers — without cluttering either experience
🌏 What's Next
- 🔔 Push notifications for deadlines and new events
- 📅 Google Calendar integration
- 🤖 AI-based event recommendations
- 📊 Advanced analytics dashboard for organizers
- 📱 Mobile app (React Native)
Built With
- express.js
- firebase
- firebasefunctions
- firestore
- node.js
- react
- tailwindcss
- typescript