Attendify is a smart campus engagement platform that makes event attendance fast, secure, and measurable. It helps organisers run smoother events with live attendance visibility and helps students check in with a frictionless scan flow.
Live Demo: https://attendify-bf098.web.app
Residential college event management faces three critical pain points:
- Slow Attendance Processing: Manual or manual-adjacent check-in systems waste valuable event time and create bottlenecks
- Proxy Sign-ins & Gaming: Traditional attendance methods (sign sheets, static codes) are easily exploited through proxy attendance
- Poor Post-Event Analytics: Organisers lack real-time visibility and struggle to extract meaningful attendance insights
Attendify replaces manual attendance with a secure, real-time scan-based system that focuses on scan once, verify instantly, surface insights immediately.
- Instant Check-in: Students scan a rotating QR code for one-step attendance verification
- Anti-Proxy Protections: Frequently rotating QR codes, signed scan tokens, and duplicate prevention eliminate proxy abuse
- Live Organiser Dashboard: Real-time attendance updates, suspicious activity flagging, and instant CSV export
- Student Engagement: Attendance history, personal engagement tracking, and achievement badges
- Organiser initiates check-in → Event state changes to "ongoing"
- Live QR code generation → Backend rotates a signed token every few seconds
- Student scans → Frontend validates token signature and sends scan request
- Backend verification → Checks token expiry, duplicate attempts, and user auth status
- Instant confirmation → Student receives success/error, organiser sees real-time update
- Export & Analysis → Organiser downloads attendance CSV after event
Frontend
- React 19 + TypeScript + Vite
- Responsive UI and real-time QR code rotation
- Tailwind CSS
Backend
- Express + TypeScript
- JWT token generation and validation
- Cryptographic signed scan token verification
Database
- Firebase Firestore (NoSQL) for event, attendance, and user data
- Node.js 18+
- A Google Firebase Account
- Create a new project in the Firebase Console.
- Enable Firestore Database (start in test mode for development).
- Register a Web App in your Firebase project settings to get your Firebase configuration keys.
Create a single .env file at the root of the project bridging both frontend and backend environments:
# Frontend API and App URLs
VITE_API_URL=http://localhost:3001/api
APP_URL=http://localhost:5173
# Firebase Configuration
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project_id.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# Backend Configuration
PORT=3001
JWT_SECRET=your_secure_development_secretNote: The backend retrieves Firebase environment variables from the root .env as well.
In the root directory, install frontend and backend dependencies:
npm install
cd server && npm install && cd ..Open a new terminal:
cd server
npm run devThe backend server runs on http://localhost:3001. (Health check: http://localhost:3001/api/health)
Open another terminal:
npm run devThe frontend runs on http://localhost:5173.
- Frontend: Designed to deploy seamlessly on platforms like Vercel or Netlify. When deploying to Vercel,
vercel.jsonrewrites all routes toindex.htmlfor SPA routing. Set all frontend-related environment variables (VITE_*) on your hosting platform. - Backend: Can be deployed to services like Render, Heroku or Railway. Ensure
PORT,JWT_SECRET, andAPP_URLare aligned. - Point the production frontend
VITE_API_URLto your live deployed backend URL securely.