An intelligent, personalized fantasy hockey management platform. Not generic rankings — the platform answers, continuously and specifically to each manager: "What is the best decision this fantasy manager should make right now?"
Yahoo Fantasy Hockey is the first supported platform. The architecture is provider-agnostic so ESPN, Fantrax, and others can be added later without touching core analytics, AI, or UI code.
This repository is currently in its foundation phase. No fantasy feature UI exists yet — see docs/11-roadmap-mvp.md for what's next. What's here is the monorepo structure, shared packages, application shells, database/cache/AI/deployment architecture, and the documentation that governs how the platform is built from here on.
Start with docs/README.md for the full architecture record.
- Frontend: Angular (standalone components, signals, RxJS), Angular Material, installable PWA
- Backend: NestJS, REST + WebSocket, clean architecture per bounded context
- Database: PostgreSQL via Prisma
- Cache / queues: Redis + BullMQ
- AI: provider-abstracted, self-hosted Ollama by default
- Workers: independent Node processes for Yahoo sync, NHL data/projections, notifications
- Deployment: Docker for local dev and self-hosting (Unraid-friendly), see docs/10-self-hosting-deployment.md
apps/
web/ Angular PWA
api/ NestJS backend
packages/
domain/ Shared entities & value objects
contracts/ DTOs / zod schemas shared across web, api, workers
analytics/ Valuation, projection, matchup, recommendation engines
ai/ AIProvider abstraction (Ollama today, cloud providers later)
database/ Prisma schema + generated client
workers/
yahoo-sync/
projections/
notifications/
docker/ Dev & self-host Docker Compose stacks
docs/ Architecture documentation (read this first)
corepack enable
pnpm install
cp .env.example .env
# start Postgres + Redis for local dev (add --profile ollama to also run Ollama in Docker)
pnpm docker:up
# apply the initial schema
pnpm db:migrate
pnpm devSee each app's own README (apps/web/README.md, apps/api/README.md) for app-specific detail.
cp .env.example .env # fill in SESSION_SECRET, TOKEN_ENCRYPTION_KEY, VAPID_* at minimum
pnpm selfhost:up # builds and runs api, web, all three workers, postgres, redisSee docs/10-self-hosting-deployment.md for Unraid volume mapping, reverse-proxy notes, resource sizing, and backup guidance.