Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Project Tracker App

A full-stack application for tracking client projects, managing statuses, and monitoring payments. Built with a React frontend and an Express/SQLite backend.

Features

  • 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.

Tech Stack

Frontend

  • React 19: Modern UI library.
  • Vite: Fast build tool and dev server.
  • Axios: HTTP client.

Backend

  • Node.js & Express: API server.
  • SQLite3: Relational database with strict schema enforcement.
  • CORS: Cross-origin resource sharing enabled.

Getting Started

Prerequisites

  • Node.js (v16+ recommended)
  • npm (comes with Node.js)

Installation

  1. Clone the repository (if you haven't already).

  2. Setup the Backend:

    cd backend
    npm install
  3. Setup the Frontend:

    cd frontend
    # Go back to root first if needed: cd ../frontend
    npm install

Running the Application

You need to run both the backend and frontend servers.

1. Start the Backend server

Runs on http://localhost:5000 by default.

cd backend
node server.js

Note: The server will automatically create/connect to projects.db.

2. Start the Frontend development server

Runs on http://localhost:5173 (typically).

cd frontend
npm run dev

Open your browser to the URL shown in the frontend terminal (usually http://localhost:5173) to use the app.

API Documentation

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? }
  • PATCH /:id/status: Update status.
    • Body: { status }
    • Rules: Cannot update if completed or cancelled. Sets delivered_at on completion.
  • PATCH /:id/payment: Update advance paid.
    • Body: { advance_paid }
    • Rules: Cannot exceed total amount.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages