- Python 54%
- JavaScript 45%
- Dockerfile 0.8%
- HTML 0.2%
|
All checks were successful
Build and Deploy / build-and-push (push) Successful in 4m15s
|
||
|---|---|---|
| .forgejo/workflows | ||
| backend | ||
| db | ||
| frontend | ||
| scraper | ||
| .env.example | ||
| .gitignore | ||
| compose-registry.yaml | ||
| docker-compose.yml | ||
| README.md | ||
| SPECIFICATION.md | ||
Sportpark Visitor Analytics
A hobby project exploring how far you can get building a full-stack application from a single specification document — with AI assistance and a few manual tweaks.
The app scrapes live visitor counts from a fitness club, stores historical data, and provides an analytics dashboard with occupancy trends, personalized recommendations, and ML-based visitor predictions.
What's in here
| Component | Tech | Purpose |
|---|---|---|
| Scraper | Python + APScheduler | Polls visitor count + weather data on a schedule |
| Backend | FastAPI | REST API for analytics, recommendations, ML training & prediction |
| Frontend | React + Recharts | Dashboard with live status, charts, heatmap, predictions |
| ML Pipeline | scikit-learn, XGBoost, LightGBM, Optuna | Visitor count forecasting + realtime ghost correction |
| Database | PostgreSQL | Time-series storage for visitor counts and weather |
| Deployment | Docker Compose | Single-command local deploy |
How it was built
The entire application — scraper, backend API, ML pipeline, frontend dashboard, database schema, and Docker setup — was generated from SPECIFICATION.md using AI coding tools. Manual additions were limited to tweaks and iterative refinements.
Quick start
cp .env.example .env
# Edit .env with your API URL and a strong database password
docker compose up -d
The dashboard is available at http://localhost:18080 and the API at http://localhost:18432.
Configuration
See .env.example for all available environment variables.
Project specification
The full specification that this project was built from is in SPECIFICATION.md.