A real-time, role-based communication and scheduling platform for educational centers.
👉 Live Demo Link | 📺 YouTube Pitch Video
- The Problem: Educational centers often rely on fragmented communication methods—like scattered WhatsApp groups, endless email chains, and paper flyers. This frequently causes missed classes, miscommunications, and frustrated parents.
- The Solution: ClassPing solves this by providing a unified, centralized hub. High-priority announcements are explicitly highlighted, schedules are updated in real-time, and role-based access keeps the noise down so parents see exactly what they need.
We focused on a clean architecture that guarantees real-time synchronization and clear role boundaries.
- Frontend: Modern Vanilla JavaScript (ESModules) bundled efficiently with Vite. Features custom SPA routing without the overhead of heavy frameworks.
- Backend: Firebase Firestore for scalable, lightning-fast NoSQL data storage.
- Authentication: Firebase Auth handling secure Email/Password and Google OAuth login workflows.
- Notifications: Firebase Cloud Messaging (FCM) infrastructure to power prioritized, real-time update delivery.
Our NoSQL schema is optimized for independent scaling and fast real-time client read operations:
users: Stores custom profile details and explicit roles (adminvs.parent). Admin status enforces backend validation (e.g., verifying@classping.comdomains).classes: Focuses heavily on real-time scheduling state (trackingdateTime, status, andenrolledcounts).announcements: Maintained as a completely independent collection so that high-frequency feed updates never slow down core class scheduling queries.
- Class Management: Full CRUD operations directly in the dashboard to quickly schedule, update, or cancel classes.
- Real-time Announcements: Push instant notifications and urgent updates to everyone seamlessly.
- Real-Time Dashboard: Instantly see upcoming classes and center status—no page refreshes required.
- Priority Feed Algorithm: The UI intelligently highlights critical or urgent updates so they never get buried under casual news.
If you're pulling this code to review or contribute, here is exactly how to get it running locally.
- Node.js (v18+ recommended)
- A Firebase Project (with Authentication and Firestore enabled)
-
Clone the repository:
git clone https://github.com/trueashik/ClassPing.git cd ClassPing -
Install dependencies:
npm install
-
Environment Variables: Create a
.envfile in the root of the project with your Firebase configuration keys. (Do not commit this file!)VITE_FIREBASE_API_KEY=your_api_key_here VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Run the Development Server:
npm run dev
Your app will now be running on
http://localhost:5173.
🏆 Hackathon Tag: Built entirely from scratch in 4 days for the GDG Virginia Tech Solution Challenge, specifically utilizing Google Technologies to solve real-world scheduling friction.