How jietrylcanete/maintenance_api works
This is a school-maintenance API: users submit and track requests, while staff/admins manage assignment and status. Request creation invokes AI classification and automatic staff assignment, then records activity; attachments are uploaded separately. Accounts provide authentication, verification, password recovery, preferences, and administration, while activity logs provide filtered, role-aware history. The excerpts show the main routing and several service calls; unsampled modules are included only for documented capabilities, with uncertain connections omitted.
Main entry points: db.js MySQL database · maintenance.controller.js Maintenance routes · server.js HTTP server · account.service.js Account service
Components 18
API entry
- HTTP server
server.js
Accounts and access
- Account routes
accounts/account.controller.js - Account service
accounts/account.service.js - Account model
accounts/account.model.js - Refresh tokens
accounts/refresh-token.model.js - Preferences
models/preferences.model.js
Maintenance workflow
- Maintenance routes
maintenance/maintenance.controller.js - Request records
maintenance/maintenance-request.model.js - Attachment records
maintenance/maintenance-attachment.model.js - Image upload
uploads/maintenance-images/upload.middleware.js - Request classification
services/ai.service.js
Activity history
- Activity routes
activity/activity.controller.js - Activity service
activity/activity.service.js - Activity records
models/activitylog.model.js
Persistence and integrations
- MySQL database
_helpers/db.js - Email delivery
_helpers/send-email.js
Other components
- API client
- Google Gemini
Connections 21
- API client → HTTP server: sends requests
server.js - HTTP server → Account routes: routes accounts
server.js - HTTP server → Maintenance routes: routes maintenance
server.js - HTTP server → Activity routes: routes activity
server.js - Account routes → Account service: calls
accounts/account.controller.js - Account service → Activity service: logs account events
accounts/account.service.js - Account service → Email delivery: sends mail
accounts/account.service.js - Maintenance routes → Request classification: classifies requests
maintenance/maintenance.controller.js - Request classification → Google Gemini: requests generation
services/ai.service.js - Maintenance routes → Image upload: accepts images
maintenance/maintenance.controller.js - Maintenance routes → Activity service: logs workflow events
maintenance/maintenance.controller.js - Activity routes → Activity service: queries logs
activity/activity.controller.js - Activity service → Activity records: reads and writes
activity/activity.service.js - Account service → MySQL database: uses account data
_helpers/db.js - Maintenance routes → MySQL database: uses request data
_helpers/db.js - MySQL database → Account model: initializes
_helpers/db.js - MySQL database → Refresh tokens: initializes
_helpers/db.js - MySQL database → Preferences: initializes
_helpers/db.js - MySQL database → Request records: initializes
_helpers/db.js - MySQL database → Attachment records: initializes
_helpers/db.js - MySQL database → Activity records: initializes
_helpers/db.js