Files
ScratchingPost/.claude-context/00-overview.md
T

1.6 KiB

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)