A full-stack application for tracking client projects, managing statuses, and monitoring payments. Built with a React frontend and an Express/SQLite backend.
- Dashboard Overview: View all projects at a glance.
- Project Management: Create new projects with client details, deadlines, and financial info.
- Status Tracking: Update project status (In Progress, On Hold, Completed, Cancelled) with validation rules.
- Payment Tracking: manage total amounts and advance payments. The system automatically calculates due amounts.
- Strict Validation: Backend enforces data integrity, valid transitions, and financial constraints.
- React 19: Modern UI library.
- Vite: Fast build tool and dev server.
- Axios: HTTP client.
- Node.js & Express: API server.
- SQLite3: Relational database with strict schema enforcement.
- CORS: Cross-origin resource sharing enabled.
- Node.js (v16+ recommended)
- npm (comes with Node.js)
-
Clone the repository (if you haven't already).
-
Setup the Backend:
cd backend npm install -
Setup the Frontend:
cd frontend # Go back to root first if needed: cd ../frontend npm install
You need to run both the backend and frontend servers.
Runs on http://localhost:5000 by default.
cd backend
node server.jsNote: The server will automatically create/connect to projects.db.
Runs on http://localhost:5173 (typically).
cd frontend
npm run devOpen your browser to the URL shown in the frontend terminal (usually http://localhost:5173) to use the app.
The backend provides the following endpoints at http://localhost:5000/projects:
- GET /: List all projects (includes computed
due_amount). - POST /: Create a new project.
- Body:
{ project_name, client_name, deadline, total_amount, advance_paid, status? }
- Body:
- PATCH /:id/status: Update status.
- Body:
{ status } - Rules: Cannot update if
completedorcancelled. Setsdelivered_aton completion.
- Body:
- PATCH /:id/payment: Update advance paid.
- Body:
{ advance_paid } - Rules: Cannot exceed total amount.
- Body: