How thanuj-imayavaramban31/class-attendance works
This is a MERN class-attendance system. Students request access, a Head approves them and creates department classes, and Security scans student QR codes to record entry and exit; students and the Head can review attendance. The graph separates the React role workflows from Express API handling and MongoDB-backed domain records. README-described capabilities are included where the tree supports them; several frontend API call details were not sampled, so those links are omitted.
Main entry points: App.jsx Role routing · headController.js Administration · securityController.js Scan processing · server.js Express server
Components 32
Web application
- Role routing
frontend/src/App.jsx - Registration
frontend/src/pages/SignIn.jsx - Access request
frontend/src/pages/RequestAccess.jsx - Sign-in
frontend/src/pages/Login.jsx - Head dashboard
frontend/src/pages/HeadDashboard.jsx - Security dashboard
frontend/src/pages/SecurityDashboard.jsx - QR scanner
frontend/src/components/QRScanner.jsx - Student dashboard
frontend/src/pages/UserDashboard.jsx - Attendance views
frontend/src/components/AttendanceTable.jsx - API client
frontend/src/context/api.js
API and access
- Express server
backend/server.js - User routes
backend/routes/userRoutes.js - Head routes
backend/routes/headRoutes.js - Security routes
backend/routes/securityRoutes.js - JWT guard
backend/middlewares/auth.js
Attendance domain
- Registration handling
backend/controllers/requestController.js - Student access
backend/controllers/userController.js - Administration
backend/controllers/headController.js - Scan processing
backend/controllers/securityController.js - QR generation
backend/middlewares/qrGenerator.js - Duration calculation
backend/middlewares/timeCalculator.js
Persistence
- Database connection
backend/config/db.js - Access requests
backend/models/Request.js - Students
backend/models/User.js - Head credentials
backend/models/Head.js - Security credentials
backend/models/Security.js - Classes
backend/models/Class.js - Attendance records
backend/models/Attendance.js
Other components
- Student
- Head
- Security
- MongoDB
Connections 37
- Student → Role routing: uses
- Head → Role routing: uses
- Security → Role routing: uses
- Role routing → Registration: routes
- Role routing → Sign-in: routes
- Role routing → Head dashboard: routes
- Role routing → Security dashboard: routes
- Role routing → Student dashboard: routes
- Student → Access request: requests access
- Security → QR scanner: scans QR
- Head dashboard → Attendance views: views records
- Student dashboard → Attendance views: views history
- Express server → Database connection: connects
- Database connection → MongoDB: connects
- Express server → User routes: mounts
- Express server → Head routes: mounts
- Express server → Security routes: mounts
- User routes → Registration handling: dispatches
- User routes → Student access: dispatches
- Head routes → Administration: dispatches
- Security routes → Scan processing: dispatches
- Head routes → JWT guard: guards
- User routes → JWT guard: guards
- Registration handling → Access requests: creates
- Student access → Students: authenticates
- Student access → Attendance records: reads
- Administration → Access requests: reviews
- Administration → Students: creates and queries
- Administration → QR generation: generates QR
- Administration → Classes: creates and queries
- Administration → Attendance records: queries
- Administration → Head credentials: authenticates
- Scan processing → Security credentials: authenticates
- Scan processing → Students: looks up
- Scan processing → Classes: finds active class
- Scan processing → Attendance records: records scans
- Scan processing → Duration calculation: calculates duration