How zahidrahman47/job-mission-backend works
This is a job-search tracking API: users authenticate, capture or import opportunities, manage applications and related companies/contacts, record activity, and track reminders; analytics and exports provide reporting and portability. The main request path is Express app → mounted API routers → feature controllers → domain services → repositories and MongoDB. Application services coordinate related domain services and transactions. The tree and excerpts support the application/auth flow and route mounting; several other feature implementations are unsampled, so their internal calls are not asserted.
Main entry points: routes.ts API router · applications.service.ts Applications · connect.ts MongoDB · auth.service.ts Authentication
Components 20
API runtime
- HTTP application
src/app.ts - API router
src/routes.ts - Auth middleware
src/middleware/require-auth.ts
Identity and accounts
- Authentication
src/modules/auth/auth.service.ts - User accounts
src/modules/users/users.service.ts
Job search domain
- Applications
src/modules/applications/applications.service.ts - Status rules
src/modules/applications/status-machine.ts - Companies
src/modules/companies/companies.service.ts - Contacts
src/modules/contacts/contacts.service.ts - Activity timeline
src/modules/activities/activities.service.ts - Reminders
src/modules/reminders/reminders.service.ts
Capture and reporting
- Email capture
src/modules/capture - Data imports
src/modules/imports - Analytics
src/modules/analytics - Data exports
src/modules/exports
Persistence and services
- MongoDB
src/db/connect.ts - Email delivery
src/lib/mailer.ts - Transactions
src/db/transaction.ts - Input validation
src/lib/validation.ts
Other components
- API client
Connections 29
- API client → HTTP application: sends requests
src/app.ts - HTTP application → API router: mounts API
src/app.ts - API router → Authentication: mounts auth routes
src/routes.ts - API router → User accounts: mounts user routes
src/routes.ts - API router → Applications: mounts application routes
src/routes.ts - API router → Activity timeline: mounts activity routes
src/routes.ts - API router → Companies: mounts company routes
src/routes.ts - API router → Contacts: mounts contact routes
src/routes.ts - API router → Reminders: mounts reminder routes
src/routes.ts - API router → Email capture: mounts capture routes
src/routes.ts - API router → Data imports: mounts import routes
src/routes.ts - API router → Analytics: mounts analytics routes
src/routes.ts - API router → Data exports: mounts export routes
src/routes.ts - Auth middleware → Authentication: resolves sessions
src/middleware/require-auth.ts - Applications → Status rules: uses transitions
src/modules/applications/applications.service.ts - Applications → Companies: resolves company
src/modules/applications/applications.service.ts - Applications → Contacts: loads contacts
src/modules/applications/applications.service.ts - Applications → Reminders: loads reminders
src/modules/applications/applications.service.ts - Applications → Activity timeline: records activity
src/modules/applications/applications.service.ts - Applications → User accounts: loads user data
src/modules/applications/applications.service.ts - Applications → Transactions: runs transactions
src/modules/applications/applications.service.ts - Authentication → User accounts: looks up accounts
src/modules/auth/auth.service.ts - Authentication → Email delivery: sends messages
src/modules/auth/auth.service.ts - Applications → MongoDB: persists records
- Companies → MongoDB: persists records
- Contacts → MongoDB: persists records
- Activity timeline → MongoDB: persists events
- Reminders → MongoDB: persists reminders
- API client → Input validation: submits input