Web companion for board game sessions: pick a game, create a session, track players and round scores, and browse your history. The UI is a React single-page app; persistence and APIs are provided by an ASP.NET Core backend with PostgreSQL.
| Area | Technologies |
|---|---|
| Frontend | React 19, TypeScript, Vite 8, Redux Toolkit, React Router 7, Tailwind CSS 4, Radix / shadcn-style UI |
| Backend | ASP.NET Core 8, Entity Framework Core, Npgsql |
| Database | PostgreSQL |
backend/Scorpanion/— .NET solution (Scorpanion.API,Scorpanion.DAL)frontend/— Vite + React app (pnpm)
- .NET SDK 8 (see
backend/Scorpanion/global.json) - Node.js 24+ (as used in CI; newer LTS generally works)
- pnpm 10
- PostgreSQL reachable from your machine
From backend/Scorpanion:
dotnet restore Scorpanion.sln
dotnet run --project Scorpanion.API-
Swagger (Development): http://localhost:5234/swagger when using the
httplaunch profile (launchSettings.json). -
Database: set
ConnectionStrings:ScorpanionDbContextinScorpanion.API/appsettings.Development.json(or user secrets / environment) to a valid Npgsql connection string. Example shape:Host=localhost;Port=5432;Database=scorpanion;Username=…;Password=… -
Migrations: the API applies EF Core migrations automatically on startup.
-
CORS: for local development,
Cors:AllowedOriginsinappsettings.Development.jsonincludes the Vite dev server (http://localhost:5173). Adjust for other origins or production.
From frontend:
- Copy
frontend/.env.exampletofrontend/.env. - Set
VITE_API_BASE_URLto the API base URL with no trailing slash, e.g.http://localhost:5234(match the scheme and port your API uses).
pnpm install
pnpm devThe dev server defaults to http://localhost:5173.
pnpm build # production build
pnpm lint # ESLintProduction builds use the Vite base path /scorpanion/ for GitHub Pages project sites (see frontend/vite.config.ts). Local pnpm dev uses /.
- Backend (
.github/workflows/backend-ci.yml): restore and build the solution on pushes and pull requests tomainwhenbackend/**changes. - Frontend (
.github/workflows/frontend-cicd.yml): install with pnpm, lint, build, and deploy static assets to GitHub Pages. Configure theVITE_API_BASE_URLrepository variable for the build so the SPA points at your deployed API.