feat(backend): implement REST API for races calendar

Express + TypeScript backend with PostgreSQL: CRUD endpoints for /races (GET list with year/month filters, GET by id, POST, PATCH, DELETE), health/readiness probes, SQL migration runner, seed script with upsert from CSV, camelCase/snake_case mapper, CORS, env validation, docker-compose, and API docs for frontend.

Made-with: Cursor
This commit is contained in:
Anton
2026-04-01 14:47:53 +03:00
parent 88a448dd8e
commit 698ae37553
17 changed files with 2242 additions and 0 deletions

18
.env.example Normal file
View File

@@ -0,0 +1,18 @@
# ─── PostgreSQL ───────────────────────────────────────────────
DB_HOST=localhost
DB_PORT=5432
DB_NAME=calendar_run
DB_USER=calendar_user
DB_PASSWORD=calendar_pass
# ─── Backend API ──────────────────────────────────────────────
# Port the API server listens on
API_PORT=3001
# ─── CORS ─────────────────────────────────────────────────────
# Allowed origin for the frontend (Vite dev server default)
CORS_ORIGIN=http://localhost:5173
# ─── Frontend (Vite) ─────────────────────────────────────────
# Public URL of the API, used in SPA code via import.meta.env
VITE_API_BASE_URL=http://localhost:3001