Planner for gaming nights
  • C# 61.7%
  • HTML 32.2%
  • CSS 5.9%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
CheapNud 18110c6e27
All checks were successful
Build & Test / Build and Test (push) Successful in 4m12s
Drop the GitHub PR review workflow
2026-08-20 23:06:15 +02:00
.gitea/workflows Add tag-triggered Megaton deploy workflow, parameterize compose image tag 2026-07-18 23:25:33 +02:00
.github/workflows Drop the GitHub PR review workflow 2026-08-20 23:06:15 +02:00
Components add CSV export endpoint and download button 2026-04-11 13:18:41 +02:00
Data address review feedback on iCal feed 2026-04-08 02:47:01 +02:00
docs/screenshots Franchise Roadmaps demo 2026-03-14 17:41:20 +01:00
Helpers Fix timezone shift in calendar exports 2026-07-16 12:23:21 +02:00
Migrations regenerate migration for snapshot sync, fix folding edge case 2026-04-09 22:14:23 +02:00
Models add iCal calendar feed for session subscriptions 2026-04-08 02:37:57 +02:00
Properties styling 2026-03-13 14:29:43 +01:00
Repositories address review feedback on iCal feed 2026-04-08 02:47:01 +02:00
Services show welcome message for users with no group memberships 2026-04-04 19:13:55 +02:00
Theming styling 2026-03-31 01:42:44 +02:00
wwwroot migrate Plex auth to CheapHelpers, add S1 badge colors 2026-04-04 18:43:27 +02:00
.dockerignore publishing flow 2026-03-14 01:30:46 +01:00
.gitignore config 2026-03-14 02:39:16 +01:00
appsettings.Development.json initial scaffoling 2026-03-13 13:18:22 +01:00
appsettings.json serilog support 2026-03-14 18:50:21 +01:00
CheapNights.csproj Update CheapHelpers packages to 3.6.0, MudBlazor to 9.7.0 2026-07-16 14:49:14 +02:00
CheapNights.slnx solution 2026-03-13 13:22:00 +01:00
docker-compose.yml Add tag-triggered Megaton deploy workflow, parameterize compose image tag 2026-07-18 23:25:33 +02:00
Dockerfile dockerfile cleanup 2026-03-13 23:35:57 +01:00
LICENSE Initial commit 2026-03-13 11:44:37 +01:00
Program.cs add rate limiting and cache control to calendar feed 2026-04-11 13:07:09 +02:00
README.md Remove roadmap images from README 2026-03-14 23:08:26 +01:00
TODO.md Fix timezone shift in calendar exports 2026-07-16 12:23:21 +02:00

CheapNights

Co-op horror game night planner — track franchise roadmaps, plan sessions, and coordinate playthroughs with friends.

Header & Session Planner

Features

  • Franchise Roadmaps — Resident Evil and Silent Hill with game/movie/DLC entries, status tracking, star ratings, and platform ownership
  • Session Planner — Monthly calendar with session scheduling, location toggle, and upcoming session list
  • Now Playing — Live tracker showing the currently active game with auto-completion when switching
  • Plex SSO — Sign in with Plex, restricted to server friends only
  • Entity-driven UI — Statuses, categories, entry types, and platforms are all database entities with data-driven chip styling
  • CheapHelpers Integration — BaseRepo, Selector components, AbsoluteExpirationCache, UriExtensions

Tech Stack

  • C# 14 / .NET 11 — Blazor Server with interactive rendering
  • MudBlazor 9.1 — Component library and theming
  • EF Core 10 — SQLite (dev) / PostgreSQL (prod)
  • CheapHelpers — EF repos, Blazor selectors, caching
  • Docker — GHCR publishing via GitHub Actions
  • Plex API — PIN-based authentication (3 HTTP calls, no external packages)

Development

# Run locally (SQLite, auto-creates horror.db)
dotnet run

# Plex admin token (required)
dotnet user-secrets set "Plex:AdminToken" "your-token"

Deployment

Published to ghcr.io/cheapnud/cheapnights:latest on push to main.

# On host
docker compose pull && docker compose up -d

Requires .env with PG_PASSWORD and PLEX_ADMIN_TOKEN.

CI/CD

  • publish.yml — Docker build + push to GHCR
  • pr-review.yml — Claude Sonnet 4.6 code review
  • codeql.yml — Security and quality scanning
  • dependency-review.yml — License and vulnerability check
  • dotnet.yml — Build validation

Future Roadmap

Notifications

  • Email notifications via CheapHelpers mailing services
  • Push notifications (free tier)
  • Session reminders and game completion alerts

Management Pages

  • Create and manage game groups with custom theming
  • Admin dashboard for entry management
  • Bulk operations for status updates

Expanded Auth Providers

  • Microsoft SSO
  • Google OAuth
  • Apple Sign In
  • ASP.NET Identity integration

Metadata Enrichment

  • Steam / SteamDB integration for game details and pricing
  • IMDB / Rotten Tomatoes for movie ratings
  • TVDB / TheMovieDB for additional metadata
  • Plex library integration for ownership detection

License

MIT