How gireesh2658/uni_meet works
Unimeet is a role-based faculty appointment platform. Students discover faculty and open slots, book and manage appointments; faculty publish slots and handle requests; administrators manage users, appointments, and reports. The frontend’s role-specific pages communicate with REST routes and controllers, which apply domain rules and persist records in MongoDB. The graph includes authentication, notifications, and meeting support documented by the repository. Some frontend service and backend controller implementations were not sampled, so uncertain internal call links are omitted.
Main entry points: server.js REST application · App.jsx Role-based app · adminController.js Admin management and reports · api.js API client
Components 30
Frontend
- Role-based app
frontend/src/App.jsx - Student pages
frontend/src/pages/student - Faculty pages
frontend/src/pages/faculty - Admin pages
frontend/src/pages/admin - Login and registration
frontend/src/pages - API client
frontend/src/services/api.js
Identity
- Auth state
frontend/src/context/AuthContext.jsx - Auth routes
server/routes/authRoutes.js - Auth controller
server/controllers/authController.js - User records
server/models/User.js - Authentication and roles
server/middleware/authMiddleware.js
Scheduling
- Faculty routes
server/routes/facultyRoutes.js - Faculty profiles and discovery
server/controllers/facultyController.js - Slot management
server/controllers/slotController.js - Time slots
server/models/TimeSlot.js - Appointment routes
server/routes/appointmentRoutes.js - Appointment workflow
server/controllers/appointmentController.js - Appointments
server/models/Appointment.js
Operations
- Admin routes
server/routes/adminRoutes.js - Admin management and reports
server/controllers/adminController.js - Notifications
server/controllers/notificationController.js - Notification records
server/models/Notification.js - Meeting routes
server/routes/meetingRoutes.js - Meeting management
server/controllers/meetingController.js - Meetings
server/models/Meeting.js - REST application
server/server.js
Other components
- Student
- Faculty
- Administrator
- MongoDB
Connections 43
- Student → Role-based app: uses
- Faculty → Role-based app: uses
- Administrator → Role-based app: uses
- Role-based app → Student pages: routes to
- Role-based app → Faculty pages: routes to
- Role-based app → Admin pages: routes to
- Role-based app → Login and registration: routes to
- Login and registration → Auth state: updates
- Student pages → API client: requests
- Faculty pages → API client: requests
- Admin pages → API client: requests
- Auth state → API client: requests
- API client → REST application: HTTP requests
- REST application → Auth routes: mounts
- REST application → Faculty routes: mounts
- REST application → Appointment routes: mounts
- REST application → Admin routes: mounts
- REST application → Meeting routes: mounts
- Auth routes → Auth controller: dispatches
- Auth controller → User records: reads/writes
- Auth controller → Authentication and roles: issues tokens
- Faculty routes → Faculty profiles and discovery: dispatches
- Faculty profiles and discovery → User records: reads
- Faculty profiles and discovery → Time slots: reads
- Slot management → Time slots: creates/updates
- Appointment routes → Appointment workflow: dispatches
- Appointment workflow → Appointments: reads/writes
- Appointment workflow → Time slots: checks/updates
- Appointment workflow → Notification records: creates
- Admin routes → Admin management and reports: dispatches
- Admin management and reports → User records: manages
- Admin management and reports → Appointments: reports/updates
- Admin management and reports → Time slots: updates
- Admin management and reports → Notification records: creates
- Notifications → Notification records: reads/writes
- Meeting routes → Meeting management: dispatches
- Meeting management → Meetings: reads/writes
- REST application → MongoDB: connects via config
- User records → MongoDB: persists
- Time slots → MongoDB: persists
- Appointments → MongoDB: persists
- Notification records → MongoDB: persists
- Meetings → MongoDB: persists