How icyscools/seekajob-api works
This NestJS API implements a worker/company hiring platform: users authenticate, manage profiles and jobs, workers submit applications, and companies arrange interviews. Controllers expose the domain operations; services apply role-aware rules, coordinate related records, and access TypeORM repositories. File uploads are handled separately through S3. The README is only a generic Nest starter description, so the workflow comes from the source index and excerpts; several controller and service implementations are unsampled.
Main entry points: user.service.ts User service · main.ts Nest app · application.service.ts Application service · auth.service.ts Auth service
Components 22
API and access
- Nest app
src/main.ts - Auth routes
src/modules/core/auths/controllers/auth.controller.ts - Role guard
src/modules/shared/roles/guards/role.guard.ts - JWT strategy
src/modules/core/auths/strategies/jwt.strategy.ts
Identity and profiles
- User routes
src/modules/core/users/controllers/user.controller.ts - User service
src/modules/core/users/services/user.service.ts - Auth service
src/modules/core/auths/services/auth.service.ts
Hiring workflow
- Job routes
src/modules/core/jobs/controllers/job.controller.ts - Job service
src/modules/core/jobs/services/job.service.ts - Application routes
src/modules/core/applications/controllers/application.controller.ts - Application service
src/modules/core/applications/services/application.service.ts - Interview routes
src/modules/core/interviews/controllers/interview.controller.ts - Interview service
src/modules/core/interviews/services/interview.service.ts
Persistence and files
- User records
src/entities/user.entity.ts - Worker and company records
src/entities/worker.entity.ts - Job records
src/entities/job.entity.ts - Application records
src/entities/application.entity.ts - Interview records
src/entities/interview.entity.ts - File service
src/modules/shared/uploadfiles/services/files.service.ts
Other components
- API client
- Amazon Cognito
- Amazon S3
Connections 32
- API client → Nest app: sends requests
src/main.ts - Nest app → Auth routes: mounts modules
- Nest app → User routes: mounts modules
- Nest app → Job routes: mounts modules
- Nest app → Application routes: mounts modules
- Nest app → Interview routes: mounts modules
- Auth routes → Auth service: calls
src/modules/core/auths/controllers/auth.controller.ts - User routes → User service: calls
src/modules/core/users/controllers/user.controller.ts - Job routes → Job service: calls
src/modules/core/jobs/controllers/job.controller.ts - Application routes → Application service: calls
src/modules/core/applications/controllers/application.controller.ts - Interview routes → Interview service: calls
src/modules/core/interviews/controllers/interview.controller.ts - Auth routes → JWT strategy: guards requests
- Application routes → Role guard: guards requests
src/modules/core/applications/controllers/application.controller.ts - Interview routes → Role guard: guards requests
src/modules/core/interviews/controllers/interview.controller.ts - Job routes → Role guard: guards writes
src/modules/core/jobs/controllers/job.controller.ts - Auth service → Amazon Cognito: authenticates users
src/modules/core/auths/services/auth.service.ts - Auth service → User service: creates and looks up
src/modules/core/auths/services/auth.service.ts - User service → File service: uploads profile images
src/modules/core/users/services/user.service.ts - Auth service → File service: uploads profile images
src/modules/core/auths/services/auth.service.ts - Job service → User service: looks up users
src/modules/core/jobs/services/job.service.ts - Application service → User service: looks up users
src/modules/core/applications/services/application.service.ts - Interview service → User service: uses user service
src/modules/core/interviews/services/interview.service.ts - Application service → File service: uploads resumes
src/modules/core/applications/services/application.service.ts - File service → Amazon S3: uploads files
src/modules/shared/uploadfiles/services/files.service.ts - User service → User records: reads and writes
src/modules/core/users/services/user.service.ts - User service → Worker and company records: reads and writes
src/modules/core/users/services/user.service.ts - Job service → Job records: reads and writes
src/modules/core/jobs/services/job.service.ts - Application service → Application records: reads and writes
src/modules/core/applications/services/application.service.ts - Application service → Job records: reads jobs
src/modules/core/applications/services/application.service.ts - Application service → Worker and company records: reads workers
src/modules/core/applications/services/application.service.ts - Interview service → Interview records: reads and writes
src/modules/core/interviews/services/interview.service.ts - Interview service → Application records: reads applications
src/modules/core/interviews/services/interview.service.ts