Loading repository data…
Loading repository data…
guilhermeafonsoch / repository
🎮 A second-screen tactical prep tool for Rainbow Six Siege ranked players. Plan your match in under 90 seconds — map, side, site, bans, operators, squad roles, and patch-aware context, all in one place. Built with Next.js · TypeScript · PostgreSQL · Prisma
Ranked Prep Assistant is a second-screen MVP for Rainbow Six Siege players who want a usable ranked prep board in under 90 seconds. Instead of acting like a wiki, it stays focused on the decisions that matter before operator select: map, side, site, stack size, comfort picks, bans, default lineup, role ownership, concise checklists, squad notes, and patch-aware context.
Ranked teams usually need three things fast:
This MVP is built around those needs. Everything important is stored as structured data so map rotations, patch cards, sites, operators, and ban logic can evolve without scraping unofficial endpoints or hardcoding a single season into the UI.
/ dashboard/prep selector/prep/[map] map overview/prep/[map]/[side]/[site] tactical prep board/bans deterministic ban assistant/playbook squad playbooks/playbook/[id] squad detail and editing/patches patch-aware update feed/admin data management overview/admin/maps/admin/sites/admin/operators/admin/strategies/admin/bans/admin/patchesnpm install
Copy .env.example to .env and update values if needed.
cp .env.example .env
Default demo values:
DATABASE_URL points to the included local Postgres setupDEMO_USER_EMAIL selects the seeded demo user shown in the UIENABLE_DEV_ADMIN=true enables the admin content screensUsing the included Docker Compose file:
docker compose up -d
If you already have PostgreSQL running elsewhere, just point DATABASE_URL at it.
npm run db:push
npm run db:seed
The seed adds:
npm run dev
Open http://localhost:3000.
npm run dev
npm run build
npm run lint
npm run typecheck
npm run db:push
npm run db:seed
npm run db:studio
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string for Prisma |
DEMO_USER_EMAIL | No | Chooses the seeded demo user for mock auth |
ENABLE_DEV_ADMIN | No | Enables or disables the admin area |
The Prisma schema includes the required models from the spec:
UserSquadSquadMemberMapSiteOperatorStrategyCardStrategyStepBanRulePatchNoteMapRotationEventSavedNoteIt also adds:
PlaybookCardPlaybookCard stores squad-specific named strategy cards so the /playbook/[id] route can act as a true squad playbook editor without overloading the curated StrategyCard content.
src/app holds routes and route-level shellssrc/components contains reusable UI, tactical cards, and client formssrc/actions contains server actions for playbook and admin CRUDsrc/lib/services contains the query and recommendation layersrc/lib/validation holds Zod schemassrc/store holds the recent-plans Zustand storeprisma contains schema and seed dataBan recommendations live in src/lib/services/ban-assistant.ts.
The logic is deterministic and explainable:
BanRule rowsThis MVP uses demo auth on purpose. It keeps user-owned squads and notes working without slowing the build with a full auth integration. Replacing it with Supabase Auth later is straightforward because user ownership already exists in the schema and server actions.
/playbook/[id] is the squad board.Map and MapRotationEventPatchNoteStrategyStep rows