💡 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

Share this project:

Updates

Submission history