How rakib304832/jobserch-portel works
HireLoop is a demo job portal for job seekers, recruiters, and administrators. Seekers browse and save listings, apply, and track applications; recruiters register companies, publish jobs, and manage applicants; administrators oversee users and company approval. The Next.js UI calls route handlers through a shared browser API client. Handlers enforce sessions and plan rules and use an in-memory store, rather than a persistent database. The map includes major API domains and shared runtime modules; several UI pages and routes were not sampled, so their internal connections are omitted where unverified.
Main entry points: store.ts In-memory domain store · session.ts Session handling · companies/route.ts Company routes · saved-jobs/route.ts Saved-job routes
Components 25
Web interface
- Public pages
src/app/(public)/page.tsx - Job listings
src/app/(public)/jobs/page.tsx - Job cards
src/components/jobs/job-card.tsx - Auth and toast
src/components/providers.tsx - API client
src/lib/api-client.ts - Highlight hook
src/hooks/use-highlighted-code.ts
API workflows
- Authentication routes
src/app/api/auth/login/route.ts - Jobs routes
src/app/api/jobs/route.ts - Company routes
src/app/api/companies/route.ts - Applications routes
src/app/api/applications/route.ts - Saved-job routes
src/app/api/saved-jobs/route.ts - Payments routes
src/app/api/payments/route.ts - Statistics routes
src/app/api/stats/[scope]/route.ts - Profile routes
src/app/api/profile/route.ts - Admin users
src/app/api/admin/users/route.ts - File upload
src/app/api/upload/route.ts
Identity and plans
- Session handling
src/lib/session.ts - Plans and limits
src/lib/plans.ts
Domain data
- In-memory domain store
src/lib/store.ts - Demo seed data
src/lib/seed.ts
Shared contracts
- Domain types
src/lib/types.ts - API contracts
src/lib/api-types.ts - Display formatting
src/lib/format.ts - Code highlighting
src/lib/highlighter.tsx
Other components
- Visitor or user
Connections 33
- Visitor or user → Public pages: visits
- Visitor or user → Job listings: searches
- Job listings → Job cards: renders
- Auth and toast → API client: calls
src/components/providers.tsx - Auth and toast → Authentication routes: requests auth
src/components/providers.tsx - API client → Jobs routes: fetches routes
- Authentication routes → Session handling: uses sessions
src/app/api/auth/login/route.ts - Authentication routes → In-memory domain store: reads users
src/app/api/auth/login/route.ts - Jobs routes → Session handling: checks identity
src/app/api/jobs/route.ts - Jobs routes → In-memory domain store: queries jobs
src/app/api/jobs/route.ts - Company routes → Session handling: checks identity
src/app/api/companies/route.ts - Company routes → In-memory domain store: reads and writes
src/app/api/companies/route.ts - Company routes → Plans and limits: uses industries
src/app/api/companies/route.ts - Applications routes → Session handling: checks identity
src/app/api/applications/route.ts - Applications routes → In-memory domain store: reads and writes
src/app/api/applications/route.ts - Saved-job routes → Session handling: checks identity
src/app/api/saved-jobs/route.ts - Saved-job routes → In-memory domain store: manages bookmarks
src/app/api/saved-jobs/route.ts - Saved-job routes → Plans and limits: checks cap
src/app/api/saved-jobs/route.ts - Payments routes → Session handling: checks identity
src/app/api/payments/route.ts - Payments routes → In-memory domain store: records payments
src/app/api/payments/route.ts - Payments routes → Plans and limits: looks up plans
src/app/api/payments/route.ts - Statistics routes → Session handling: checks identity
src/app/api/stats/[scope]/route.ts - Statistics routes → In-memory domain store: reads metrics
src/app/api/stats/[scope]/route.ts - Profile routes → In-memory domain store: updates profile
src/app/api/profile/route.ts - Admin users → Session handling: checks identity
src/app/api/admin/users/route.ts - Admin users → In-memory domain store: manages users
src/app/api/admin/users/route.ts - File upload → Session handling: checks identity
src/app/api/upload/route.ts - In-memory domain store → Demo seed data: loads seed data
src/lib/store.ts - Session handling → In-memory domain store: loads user
src/lib/session.ts - Job cards → Display formatting: formats details
src/components/jobs/job-card.tsx - Job cards → Domain types: uses job types
src/components/jobs/job-card.tsx - Highlight hook → Code highlighting: uses highlighter
src/hooks/use-highlighted-code.ts - API contracts → Domain types: extends domain types
src/lib/api-types.ts