Skip to content

WarscherProgramming/construction-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Construction Scheduler

A full-stack construction scheduling application inspired by tools like Procore, Primavera P6, and Microsoft Project.

This project was built to manage construction schedules using spreadsheet-style editing, dependency logic, Gantt chart visualization, reusable templates, and PostgreSQL persistence.


Features

Scheduling Engine

  • Spreadsheet-style task editing
  • Dynamic row creation
  • Finish-to-Start (FS) dependencies
  • Start-to-Start (SS) dependencies
  • Dependency lag support
    • Examples:
      • 1
      • 1+3
      • 1SS
      • 1SS+4
  • Automatic schedule recalculation
  • Workday scheduling
    • Weekends excluded
    • Federal holidays excluded
  • Editable manual task start dates

Gantt Chart

  • Live Gantt chart rendering
  • Dependency highlighting
  • Project timeline visualization
  • Dynamic task updates

Project Management

  • Multiple projects
  • Project switching
  • PostgreSQL persistence
  • Project-specific schedules

Templates

  • Save schedules as reusable templates
  • Apply templates to projects
  • Reuse common construction schedule structures

Exporting

  • Export schedules to PDF
  • Professional table formatting
  • Project-based PDF generation

Tech Stack

Frontend

  • React
  • Vite

Backend

  • FastAPI
  • SQLAlchemy

Database

  • PostgreSQL

PDF Generation

  • ReportLab

Project Structure

scheduler/
├── backend/
│   ├── app/
│   │   ├── api/
│   │   ├── db/
│   │   ├── models/
│   │   └── main.py
│   └── requirements.txt
│
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   ├── services/
│   │   └── App.jsx
│   └── package.json
│
└── README.md

Installation

Clone Repository

git clone https://github.com/warscherprogramming/construction-scheduler.git
cd construction-scheduler

Backend Setup

Create Virtual Environment

python -m venv venv

Activate Virtual Environment

Windows

venv\Scripts\activate

Install Dependencies

pip install -r requirements.txt

PostgreSQL Setup

Create a PostgreSQL database:

scheduler_db

Create a .env file inside backend/:

DATABASE_URL=postgresql://postgres:YOUR_PASSWORD@localhost:5432/scheduler_db

Run Backend

uvicorn app.main:app --reload

Backend runs on:

http://127.0.0.1:8000

Swagger Docs:

http://127.0.0.1:8000/docs

Frontend Setup

Install Dependencies

npm install

Run Frontend

npm run dev

Frontend runs on:

http://localhost:5173

Future Improvements

  • Critical path calculations
  • Drag-and-drop Gantt editing
  • User authentication
  • Cloud deployment
  • Daily logs
  • RFIs
  • Submittals
  • Punch lists
  • File/document management
  • Weather delays
  • Resource loading

Screenshots

Add screenshots here later.

About

A full-stack construction scheduling application inspired by Procore and Primavera P6, featuring dependency-based scheduling, Gantt charts, PostgreSQL persistence, reusable templates, workday calculations, and PDF export functionality.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors