How evarmedia/stechad-backend works
This is the backend for a role-based engineer marketplace and project platform. Users authenticate and onboard as engineers or project managers; engineers can browse and apply for jobs, while project managers manage projects and interviews. Admin, analytics, chat, notifications, exports, and referral/reward capabilities are also represented in the route tree and source index, though several are unsampled. The README provides no additional workflow detail, so links for those features are limited to route registrations and indexed imports.
Main entry points: server.js Express server · authController.js Identity and onboarding · auth.js Authentication middleware · engineerRoutes.js Engineer routes
Components 34
API and access
- Express server
server.js - Authentication routes
routes/authRoutes.js - Engineer routes
routes/engineerRoutes.js - Job routes
routes/jobsRoutes.js - Application routes
routes/applicationRoutes.js - Project routes
routes/projectRoutes.js - Interview routes
routes/interviewRoutes.js - Chat routes
routes/chatRoutes.js - Authentication middleware
middleware/auth.js - Request validation
middleware/validation.js
Identity and profiles
- Identity and onboarding
controllers/authController.js - Engineer profiles
controllers/engineerController.js - User accounts
models/User.js - Engineer profiles
models/Engineer.js - Token generation
utils/generateTokens.js
Jobs and applications
- Job management
controllers/jobsController.js - Job applications
controllers/applicationController.js - Job records
models/Job.js - Application records
models/Application.js
Projects and collaboration
- Project operations
controllers/projectController.js - Interview scheduling
controllers/interviewController.js - Messaging
controllers/chatController.js - Chat utilities
utils/chatUtil.js
Administration and platform services
- Email delivery
utils/sendEmail.js - Admin routes
routes/adminRoutes.js - Administration
controllers/adminController.js - Analytics routes
routes/analyticsRoutes.js - Analytics
controllers/analyticsController.js - Export routes
routes/exportRoutes.js - Data exports
controllers/exportController.js - Referral routes
routes/referralRoutes.js - Referral rewards
controllers/referralController.js - Notifications
utils/notificationUtil.js
Other components
- API client
Connections 41
- API client → Express server: sends requests
- Express server → Authentication routes: mounts routes
server.js - Express server → Engineer routes: mounts routes
server.js - Express server → Job routes: mounts routes
server.js - Express server → Application routes: mounts routes
server.js - Express server → Project routes: mounts routes
server.js - Express server → Interview routes: mounts routes
server.js - Express server → Chat routes: mounts routes
server.js - Express server → Admin routes: mounts routes
server.js - Express server → Analytics routes: mounts routes
server.js - Express server → Export routes: mounts routes
server.js - Express server → Referral routes: mounts routes
server.js - Authentication routes → Identity and onboarding: dispatches to
routes/authRoutes.js - Engineer routes → Engineer profiles: dispatches to
routes/engineerRoutes.js - Job routes → Job management: dispatches to
routes/jobsRoutes.js - Application routes → Job applications: dispatches to
routes/applicationRoutes.js - Project routes → Project operations: dispatches to
routes/projectRoutes.js - Interview routes → Interview scheduling: dispatches to
controllers/interviewController.js - Chat routes → Messaging: dispatches to
routes/chatRoutes.js - Admin routes → Administration: dispatches to
routes/adminRoutes.js - Analytics routes → Analytics: dispatches to
- Export routes → Data exports: dispatches to
- Referral routes → Referral rewards: dispatches to
- Authentication routes → Authentication middleware: applies access
routes/authRoutes.js - Engineer routes → Authentication middleware: applies access
routes/engineerRoutes.js - Engineer routes → Request validation: applies checks
routes/engineerRoutes.js - Authentication middleware → User accounts: loads account
middleware/auth.js - Identity and onboarding → User accounts: reads and writes
controllers/authController.js - Identity and onboarding → Engineer profiles: creates profile
controllers/authController.js - Identity and onboarding → Token generation: generates tokens
controllers/authController.js - Identity and onboarding → Email delivery: sends email
controllers/authController.js - Engineer profiles → Engineer profiles: reads and writes
controllers/engineerController.js - Engineer profiles → Application records: checks applications
controllers/engineerController.js - Job management → Job records: queries jobs
controllers/jobsController.js - Job applications → Application records: handles applications
- Project routes → Authentication middleware: applies access
routes/projectRoutes.js - Interview scheduling → Notifications: notifies users
controllers/interviewController.js - Project operations → Notifications: notifies users
controllers/projectController.js - Messaging → Chat utilities: uses helpers
utils/chatUtil.js - Admin routes → Authentication middleware: applies access
routes/adminRoutes.js - Administration → Email delivery: sends email
controllers/adminController.js