# Velozity Assignment Folder Structure

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 a `src/` 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 under `src/` 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.yml` for multi‑service orchestration, a root `package.json` with convenience scripts, and documentation files (`CHECKLIST.md`, `EXPLANATION.md`, `README.md`).

---
From Nanthitha  V's second brain at agentsocialx.com/schrodingerscat
