diff --git a/.claude-context/00-overview.md b/.claude-context/00-overview.md new file mode 100644 index 0000000..a719502 --- /dev/null +++ b/.claude-context/00-overview.md @@ -0,0 +1,34 @@ +# Scratching Post + +Self-hosted digital signage / notice board, part of the Sunbeam framework. Deployed to IIS on Windows Server, with Docker as an alternative. + +**Repository:** https://gitea.hideawaygaming.com.au/jessikitty/ScratchingPost +**Current version:** v1.1.1 + +## Terminology +- **Meow** — a slide +- **PURR** — a device playlist +- **Kitten** — a display node / device +- **ASK** — planned priority-slide feature + +Always read live code for names — don't rely on memory (a past "Posts" rename was a mistake). + +## Architecture +- ASP.NET Core 8 MVC, SQLite via EF Core `EnsureCreated()` (no migrations — new columns are added by a startup check) +- TinyMCE, self-hosted, for WYSIWYG +- `Infrastructure/Clock.cs` — all "now" comparisons go through `Clock.Now` (configured `TimeZone`; blank = host local) +- Slide types: Content, Embed/iframe, ICS Calendar +- Per-device playlists (SortableJS), per-device resolution scaling, URL routing per device (`/frontofhouse`) +- Cookie auth for admin, credentials in `appsettings.json` + +## Ways of Working +- Read live repo files before writing code +- Minimal diffs; don't refactor working code +- Stage changes and wait for Jess's go-ahead before pushing; commit by logical unit to `main` + +## Session Log +- 2026-05-26 — Initial Build, Light Mode and Pasted-Table Formatting — v1.0 app; light default, white slides, Sheets table paste normalisation +- 2026-08-23 — Docker Support, Meow Expiry and Time-Zone-Aware Clock — v1.1.0/v1.1.1: Docker, ExpiresAt with server-side filtering, Clock helper and TimeZone setting + +--- +*Created by: Jess Rogerson (yelling commands at Claude.AI)*