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.
- Spreadsheet-style task editing
- Dynamic row creation
- Finish-to-Start (FS) dependencies
- Start-to-Start (SS) dependencies
- Dependency lag support
- Examples:
11+31SS1SS+4
- Examples:
- Automatic schedule recalculation
- Workday scheduling
- Weekends excluded
- Federal holidays excluded
- Editable manual task start dates
- Live Gantt chart rendering
- Dependency highlighting
- Project timeline visualization
- Dynamic task updates
- Multiple projects
- Project switching
- PostgreSQL persistence
- Project-specific schedules
- Save schedules as reusable templates
- Apply templates to projects
- Reuse common construction schedule structures
- Export schedules to PDF
- Professional table formatting
- Project-based PDF generation
- React
- Vite
- FastAPI
- SQLAlchemy
- PostgreSQL
- ReportLab
scheduler/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ ├── db/
│ │ ├── models/
│ │ └── main.py
│ └── requirements.txt
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── services/
│ │ └── App.jsx
│ └── package.json
│
└── README.md
git clone https://github.com/warscherprogramming/construction-scheduler.git
cd construction-schedulerpython -m venv venvvenv\Scripts\activatepip install -r requirements.txtCreate a PostgreSQL database:
scheduler_db
Create a .env file inside backend/:
DATABASE_URL=postgresql://postgres:YOUR_PASSWORD@localhost:5432/scheduler_dbuvicorn app.main:app --reloadBackend runs on:
http://127.0.0.1:8000
Swagger Docs:
http://127.0.0.1:8000/docs
npm installnpm run devFrontend runs on:
http://localhost:5173
- 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
Add screenshots here later.