A digital gate pass system built for CT Group of Institutions — eliminating the frustration of paper-based exit approvals through QR codes, real-time approvals, and role-based dashboards.
| Layer | Technology | Role | Type |
|---|---|---|---|
| Frontend | HTML / CSS / JavaScript (Vanilla) | Student, teacher & guard UI — single-page app | Core |
| Auth & Backend | Firebase Authentication | Email/password login, role-based session management | Infra |
| Database | Firebase Firestore | Real-time storage of requests, approvals, user data | Infra |
| QR Generation | QRCode.js / Client-side | Generates QR code from approved pass ID | Core |
| QR Scanning | jsQR / Camera API | Guard-facing scanner via device camera | Core |
| Hosting | Firebase Hosting / Custom domain | Live at ctgatepass.in | Infra |
| Security | Firestore Rules + Firebase Auth | Role enforcement — students can't see teacher dashboards | Security |
After one particularly frustrating attempt to get a gate pass before a doctor's appointment — wasting 35 minutes and almost missing the appointment — Krishna decided to build a solution instead of complaining.
Realised early that the solution needs three distinct interfaces: students submit, teachers approve, guards verify. A single app view wouldn't work — role-based routing was key to the architecture.
Used Firebase Firestore's real-time listeners so teacher dashboards update instantly when a student submits. No polling, no refresh needed — the pending request appears within milliseconds.
The key insight: the QR code must be tied to the Firestore approval record, not just generated client-side. A guard's scan calls back to the database to confirm the approval is still valid — making forgery impossible.
Deployed on Firebase Hosting with a custom domain. The system went live for real use by CT Group students, with teachers and guards onboarded to their respective roles.
| Feature | Paper Slip (Old) | WhatsApp Message | CT Gate Pass |
|---|---|---|---|
| Student submits digitally | ✗ | ✓ (informal) | ✓ |
| Teacher approves remotely | ✗ | ✓ (no record) | ✓ |
| Guard verifies pass | ✗ Paper only | ✗ Not visible | ✓ QR scan |
| Forgery prevention | ✗ | ✗ | ✓ DB-tied QR |
| Audit log / history | ✗ | ✗ | ✓ Firestore |
| Structured reason data | ✗ | ✗ | ✓ Categories |
| Time to get a pass | 20–40 min | 5–15 min | < 2 min |
Built by a student, for students — because the best products are born from genuine frustration, not design sprints.