How abdelali-01/printmanagement works
Print Management System coordinates institutional print requests across teachers, departments, printers, and administrators. Users register or accept invitations, verify email, and authenticate; teachers submit requests that move through department approval and printer handling to completion or refusal, while administrators manage users, departments, invitations, costs, and system-wide statistics. The graph combines documented product stages with the sampled Express/Mongoose backend and Redux request path. Several frontend pages and backend controllers were not sampled, so their documented capabilities are included without asserting unverified calls.
Main entry points: authController.js Registration and sessions · (dashboard) Role dashboards · invController.js Invitation management · emailSender.js Email sender
Components 28
Web application
- Role dashboards
frontend/src/app/(dashboard) - Login and signup
frontend/src/app/(auth) - Request state handlers
frontend/src/store/request/requestHandler.js - Invitation handler
frontend/src/store/invitation/invitationHandler.js - Statistics views
frontend/src/app/(dashboard)/admin/(pages)/statistics/page.jsx
API and workflows
- Express API
backend/index.js - Department management
backend/controllers/departmentController.js - Print request routes
backend/routes/printRequest.js - Request lifecycle
backend/controllers/printRequestController.js - Statistics aggregation
backend/controllers/statisticsController.js - User management
backend/controllers/userController.js
Identity and invitations
- Authentication routes
backend/routes/auth.js - Registration and sessions
backend/controllers/authController.js - Role and verification checks
backend/utils/middelwares/auth.js - Invitation management
backend/controllers/invController.js
Domain records
- User records
backend/models/User.js - Department records
backend/models/Department.js - Faculty records
backend/models/Faculty.js - Invitation records
backend/models/Invitations.js - Print request records
backend/models/PrintRequest.js - Cost settings
backend/models/CostSettings.js
Email delivery
- Email templates
backend/utils/email/emailTemplates.js - Email sender
backend/utils/email/emailSender.js
Other components
- Teacher
- Department staff
- Printer
- Administrator
- Mail service
Connections 42
- Teacher → Role dashboards: uses dashboard
README.md - Department staff → Role dashboards: uses dashboard
README.md - Printer → Role dashboards: uses dashboard
README.md - Administrator → Role dashboards: uses dashboard
README.md - Login and signup → Authentication routes: authenticates via
- Role dashboards → Request state handlers: manages requests
README.md - Role dashboards → Invitation handler: manages invitations
README.md - Role dashboards → Statistics views: views statistics
README.md - Invitation handler → Invitation management: calls invitation API
frontend/src/store/invitation/invitationHandler.js - Express API → Authentication routes: mounts routes
backend/index.js - Express API → Print request routes: mounts routes
backend/index.js - Express API → Department management: mounts routes
backend/index.js - Express API → Statistics aggregation: mounts routes
backend/index.js - Authentication routes → Registration and sessions: dispatches to
backend/routes/auth.js - Authentication routes → Role and verification checks: checks verification
backend/routes/auth.js - Print request routes → Request lifecycle: dispatches to
backend/routes/printRequest.js - Registration and sessions → User records: reads and writes
backend/controllers/authController.js - Registration and sessions → Department records: uses department
backend/controllers/authController.js - Registration and sessions → Faculty records: uses faculty
backend/controllers/authController.js - Registration and sessions → Invitation records: checks invitations
backend/controllers/authController.js - Role and verification checks → User records: looks up user
backend/utils/middelwares/auth.js - Invitation management → Invitation records: manages records
backend/controllers/invController.js - Invitation management → Department records: looks up department
backend/controllers/invController.js - Invitation management → Faculty records: looks up faculty
backend/controllers/invController.js - Invitation management → User records: checks existing users
backend/controllers/invController.js - Department management → Department records: manages records
backend/controllers/departmentController.js - Department management → User records: manages members
backend/controllers/departmentController.js - Department management → Invitation records: uses invitations
backend/controllers/departmentController.js - Request lifecycle → Print request records: manages requests
backend/controllers/printRequestController.js - Request lifecycle → Department records: loads department
backend/controllers/printRequestController.js - Request lifecycle → Email sender: sends status mail
backend/controllers/printRequestController.js - Registration and sessions → Email sender: sends verification mail
backend/controllers/authController.js - Role and verification checks → Email sender: sends verification mail
backend/utils/middelwares/auth.js - Invitation management → Email sender: sends invitations
backend/controllers/invController.js - Department management → Email sender: sends invitations
backend/controllers/departmentController.js - Request lifecycle → Email templates: renders mail
backend/controllers/printRequestController.js - Registration and sessions → Email templates: renders mail
backend/controllers/authController.js - Email sender → Mail service: delivers email
backend/utils/email/emailSender.js - Statistics aggregation → Print request records: aggregates requests
backend/controllers/statisticsController.js - Statistics aggregation → Department records: aggregates departments
backend/controllers/statisticsController.js - Statistics aggregation → Cost settings: reads cost settings
backend/controllers/statisticsController.js - User management → User records: manages records
backend/controllers/userController.js