Disc golf round-tracking app. Phase 1 covers authentication (register/login/logout) and
the core screens (Dashboard, Score-sheet), backed by a real Postgres database with seed
data. Importing round files from disc golf apps is a planned future phase — see
backend/src/imports/.
- Frontend: Angular (standalone components) + Tailwind CSS — frontend/
- Backend: NestJS + TypeORM + PostgreSQL — backend/
- Database: PostgreSQL, run via Docker Compose
Only Postgres runs in Docker for now. The backend and frontend run locally with npm during development.
- Node.js 22+ and npm
- Docker Desktop (for Postgres)
-
Start Postgres
cp .env.example .env # only needed once; edit if you want different credentials docker compose up -d postgres -
Backend
cd backend cp .env.example .env # points at the Postgres container's published port (localhost:5433) npm install npm run migration:run npm run seed # creates demo users/courses/rounds npm run start:dev # http://localhost:3000
Demo login:
demo@youdisc.app/Demo1234! -
Frontend
cd frontend npm install npm start # http://localhost:4200, proxies /api to the backend
To self-host youDisc as a Proxmox LXC container (Postgres + backend + frontend all in one CT, no Docker involved), see deploy/proxmox/.
- The backend connects to Postgres over
localhost:5433(the port Docker Compose publishes for this project —5433instead of the default5432to avoid clashing with other local Postgres instances), not a Docker service name, since the backend itself isn't containerized yet. docs/design_template.htmlis the extracted visual reference the UI is based on — the shipped app is Angular + Tailwind, not that file.