Skip to content

Latest commit

 

History

History
147 lines (100 loc) · 6.97 KB

File metadata and controls

147 lines (100 loc) · 6.97 KB

Project Overview

Grimdark League is a league management tool for a small, local Warhammer 40,000 tabletop gaming group (5-15 players) based in Eugene/Springfield, Oregon. Run by a small team of 2-3 organizers, the app focuses on league operations and competitive tracking — not social features.

What It Does

The app serves three user types:

  • Members (players) join the league, maintain a profile with their factions, record battle results, and track standings.
  • Organizers (admins) manage member roles, edit profiles, and oversee league operations through an admin panel.
  • Visitors can browse public pages (member directory, battle reports, standings) without logging in.

The core loop: members join, play games, record results, and track standings.

Domain

  • Factions — Armies organized hierarchically: alliance (Imperium, Chaos, Xenos) > faction (Space Marines, Aeldari) > sub-faction/chapter (Blood Angels, Dark Angels). Players associate multiple factions with their profile.
  • Battle Reports — Game records capturing attacker/defender, factions, scores, outcome (win/loss/draw), mission, deployment, battle size, and rounds.
  • Battle Sizes — Standard point levels: Combat Patrol (500), Incursion (1000), Strike Force (2000), Onslaught (3000).
  • Missions & Deployments — Predefined game scenarios and map configurations from the official rules.
  • Seasons — Time-bounded league periods with battle size and date ranges. Members can assign battle reports to active seasons; admins can assign to any season. Admins manage seasons through the admin panel.
  • Standings — Win/loss/draw records and rankings derived from battle reports, filtered by season.

Product Direction

Current priority: finish the MVP epics listed below. After MVP:

  • Stats & analytics — Player win rates, faction matchup data, historical trends across seasons.

Tech Stack

Layer Technology
Framework Next.js 16 (App Router), React 19, TypeScript 5
Styling Tailwind CSS v4, DaisyUI v5
UI Components Headless UI v2, Heroicons v2
Backend / Database Supabase (PostgreSQL, Auth, RLS, SSR)
Tooling ESLint 9, Prettier 3, Supabase CLI

Status Key

Status Description
Todo Not started — no acceptance criteria completed
In Progress Partially implemented — some acceptance criteria completed
Completed Fully implemented — all acceptance criteria completed

MVP Features (Epics)

Epic: Authentication & User Accounts

Goal: Allow league members to register, log in, and manage their account.

High-Level Scope:

Epic: League Information

Goal: Provide a public-facing hub with league details so newcomers and members can find what they need.

High-Level Scope:

Epic: Seasons

Goal: Organize league play into time-bounded seasons with defined formats, rules, and standings.

High-Level Scope:

Epic: Member Profiles

Goal: Let members showcase their army and track their league participation.

High-Level Scope:

Epic: Factions

Goal: Provide a managed list of Warhammer 40k factions that users can associate with their profiles and reference in forms like battle reports.

High-Level Scope:

Epic: Battle Reports

Goal: Record and display game results between league members.

High-Level Scope:

Epic: Standings & Leaderboard

Goal: Automatically track league rankings based on battle report results.

High-Level Scope: