How rahulmelavanki08/worklog works
WorkLog is a worker-first employment and labor-oversight platform. Workers discover nearby jobs or join a site, record photo-and-GPS attendance, track wages, and raise disputes; contractors manage sites and jobs, confirm attendance, and log payments; admins review disputes, safety reports, and worker-contractor links. The graph follows the documented role-based workflows and sampled route/controller calls. The Prisma schema is not present in the supplied tree, so database relationships are shown at the product level; unsampled module wiring is omitted.
Main entry points: workerController.js Worker controller · server.js Express server · contractorController.js Contractor controller · App.jsx Role-based app
Components 26
Web client
- Role-based app
frontend/src/App.jsx - Auth context
frontend/src/context/AuthContext.jsx - Worker pages
frontend/src/pages/worker - Contractor pages
frontend/src/pages/contractor - Admin pages
frontend/src/pages/admin - API client
frontend/src/services/api.js
API and identity
- Express server
backend/src/server.js - Auth routes
backend/src/routes/authRoutes.js - Auth controller
backend/src/controllers/authController.js - Worker routes
backend/src/routes/workerRoutes.js - Contractor routes
backend/src/routes/contractorRoutes.js - Admin routes
backend/src/routes/adminRoutes.js
Work and pay
- Worker controller
backend/src/controllers/workerController.js - Contractor controller
backend/src/controllers/contractorController.js - Trust scoring
backend/src/services/trustScoreService.js - Photo storage
backend/src/services/storageService.js - Distance matching
backend/src/utils/haversine.js - PostgreSQL data
Safety and oversight
- Admin controller
backend/src/controllers/adminController.js - Weather service
backend/src/services/weatherService.js - Dispute summaries
backend/src/services/disputeAiService.js - Dispute PDF
backend/src/services/pdfService.js
Other components
- Worker
- Contractor
- Admin
- Open-Meteo
Connections 32
- Worker → Role-based app: uses
- Contractor → Role-based app: uses
- Admin → Role-based app: uses
- Role-based app → Auth context: provides auth
- Worker pages → API client: requests
- Contractor pages → API client: requests
- Admin pages → API client: requests
- API client → Express server: HTTP requests
- Express server → Auth routes: mounts
- Express server → Worker routes: mounts
- Express server → Contractor routes: mounts
- Express server → Admin routes: mounts
- Auth routes → Auth controller: dispatches
- Worker routes → Worker controller: dispatches
- Contractor routes → Contractor controller: dispatches
- Admin routes → Admin controller: dispatches
- Auth controller → PostgreSQL data: reads/writes
- Auth controller → Photo storage: saves profile photos
- Worker controller → PostgreSQL data: reads/writes
- Worker controller → Photo storage: saves check-in photos
- Worker controller → Distance matching: calculates proximity
- Worker controller → Weather service: checks outdoor sites
- Worker controller → Dispute summaries: generates summary
- Worker controller → Dispute PDF: creates PDF
- Worker controller → Contractor controller: creates applications and links
- Contractor controller → PostgreSQL data: reads/writes
- Contractor controller → Distance matching: ranks proximity
- Contractor controller → Trust scoring: updates scores
- Admin controller → PostgreSQL data: reads/writes
- Admin controller → Trust scoring: adjusts scores
- Trust scoring → PostgreSQL data: records history
- Weather service → Open-Meteo: fetches conditions