How vamsikrishna070/printing-website works
SmartPrint lets students register or sign in, upload print files with copy and color options, and track their jobs; staff view the shared queue and advance jobs from pending through completed. Account settings support profile and password changes, while a daily task removes completed jobs. The map follows the documented client/API workflow and sampled backend handlers and storage; some frontend hook wiring and scheduler implementation were not sampled, so those connections are not inferred.
Main entry points: storage.service.js Storage adapter · job.controller.js Job handlers · use-auth.js Auth hook · app.js Express app
Components 24
Web client
- App routing
frontend/src/App.jsx - Sign-in
frontend/src/pages/auth-page.jsx - Student dashboard
frontend/src/pages/student-dashboard.jsx - Staff dashboard
frontend/src/pages/staff-dashboard.jsx - Account settings
frontend/src/pages/settings-page.jsx - Auth hook
frontend/src/hooks/use-auth.js - Jobs hook
frontend/src/hooks/use-jobs.js - API client
frontend/src/lib/queryClient.js
API and identity
- Express app
backend/server/app.js - Auth routes
backend/routes/auth.routes.js - Job routes
backend/routes/job.routes.js - Auth handlers
backend/controllers/auth.controller.js - User handlers
backend/controllers/user.controller.js - API contracts
shared/routes.js
Print operations
- Job handlers
backend/controllers/job.controller.js - Upload middleware
backend/middleware/upload.middleware.js
Persistence and cleanup
- Storage adapter
backend/services/storage.service.js - Mongoose models
backend/models/index.js - Daily cleanup
backend/jobs/scheduler.js
Other components
- Students
- Staff
- HTTP clients
- MongoDB
- Uploaded files
Connections 28
- Students → Sign-in: use
- Students → Student dashboard: submit and track
- Staff → Sign-in: use
- Staff → Staff dashboard: process queue
- App routing → Auth hook: checks identity
- Sign-in → Auth hook: uses
- Student dashboard → Jobs hook: uses
- Staff dashboard → Jobs hook: uses
- Account settings → Auth hook: uses
- Auth hook → API client: requests
- Jobs hook → API client: requests
- API client → HTTP clients: sends requests
- HTTP clients → Express app: HTTP requests
- Express app → Auth routes: registers routes
- Express app → Job routes: registers routes
- Auth routes → Auth handlers: dispatches
- Job routes → Job handlers: dispatches
- Job routes → Upload middleware: processes upload
- Job handlers → API contracts: validates status
- Auth handlers → Storage adapter: reads and writes users
- User handlers → Storage adapter: reads and writes users
- Job handlers → Storage adapter: reads and writes jobs
- Storage adapter → Mongoose models: uses schemas
- Storage adapter → MongoDB: reads and writes
- Upload middleware → Uploaded files: stores uploads
- Job handlers → Uploaded files: downloads files
- Daily cleanup → Storage adapter: deletes completed jobs
- Storage adapter → Uploaded files: removes files