I organized the VELOZITY_assignment repository as a mono‑repo with clear separation between backend and frontend code, each having its own Dockerfile, and a root‑level Docker Compose configuration. The top‑level velozity/ directory contains backend/ and frontend/ sub‑folders, plus documentation and root scripts.
- Backend (
backend/) – Holds the Prisma schema and seed script, and asrc/tree with thin controllers, services, middleware, routes, WebSocket support, cron jobs, validators, utilities, type definitions, and entry points (app.ts,server.ts).
I followed a thin‑controller + service pattern, used Zod for request validation, integrated Socket.IO for real‑time updates, and added a node‑cron background worker for overdue‑task processing. The frontend uses an Axios interceptor to refresh HttpOnly JWT tokens automatically.
Open questions include how to manage environment‑specific configs beyond .env.example, whether to extract shared TypeScript types into a common package, and which monitoring tools to add to the Docker Compose setup for production readiness.
- Frontend (
frontend/) – Contains the React source undersrc/with an Axios API layer, component groups (activity, common, dashboard, layout, notifications, tasks), context providers (Auth, Socket, Notification), page components, and TypeScript interfaces, plus the main entry points (App.tsx,main.tsx). - Root – Provides
docker-compose.ymlfor multi‑service orchestration, a rootpackage.jsonwith convenience scripts, and documentation files (CHECKLIST.md,EXPLANATION.md,README.md).

