AI-powered construction project analytics and forecasting platform.
Serverless Build: Uses Neon.tech, PlanetScale, and Supabase for production-grade scalability.
-
AI-Powered Analytics: Predict project completion dates, resource needs, and deviations.
-
Real-Time Progress Tracking: Compare planned vs. actual progress.
-
Role-Based Access Control:
-
Core User: Access analytics and reports.
-
Admin User: Full project management control.
-
-
Dashboards & Reports: Generate reports with real-time data insights.
-
Python 3.11+
-
FastAPI & TypeScript
-
Docker
-
Amazon S3 Bucket
git clone https://github.com/MisfiT2020/Track-3D.git
cd Track-3Dpip install -r requirements.txt
cd frontend
npm install
- Update the address in vite.config.ts as needed.
- Create a .env file inside the frontend directory and set your API base URL:
VITE_API_BASE_URL= <replace with backend url>Make sure the backend server is accessible from this URL in your deployment.
This project supports two types of database builds, each maintained under separate branches:
- Main Branch (
main) – Uses a serverless/hosted database (e.g., Supabase, PlanetScale) for production-ready, scalable deployment. - Static DB Branch (
static-db) – Uses a local SQLite DB for quick setup, development, and offline demos.
Switch to the branch that suits your use case:
git checkout main # For hosted serverless DB
git checkout static-db # For local static SQLite DBsudo docker compose up --build
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|
![]() |
-
Log in to access your projects.
-
Upload project plans and monitor progress.
-
View AI-generated insights and analytics.
-
Generate and export reports.
Username: misfit
Password: misfit
Normally, when signing-up from site, requires normal password requirements. > but it's a demo. so, makin it easier to login.
- To update a account as sudo, we need to need make the sudo account from swagger ui
- To update from swagger ui, go to running backend port
<url>:<port>/docs#/ - select
sign-upfield
{
"username": "misfit",
"email": "misfit",
"password": "misfit",
"is_sudo": true
}
🔹 change the is_sudo to change the admin permission for the user when creating

















