toa://ratings
Curated game scorecards.
OVERVIEW
ratings is a curated game-scoring app. The editor scores each game across a set of parameters — gameplay, graphics, audio, story, performance, value — and the app computes a total (the average, with an optional manual override). Visitors browse the rating cards, and a public read-only API exposes each game’s score breakdown so other toa:// sites — primarily gamingforge — can embed it. It is a structured scorecard, not a review-writing tool: numbers and game metadata, no prose.
FEATURES
Curated, not crowd-sourced
One authoritative rating card per game — scored by the editor, no public voting.
Parameter axes
A fixed default set (gameplay, graphics, audio, story, performance, value), with per-game add/remove.
Auto total
The total is the average of the axes, with an optional manual editorial override.
Public API
Read-only score breakdown other toa:// sites — primarily gamingforge — can fetch and embed.
WHAT'S NEW
- added Radar + circular score gauge on scorecards, alongside the per-axis bars.
- added Live cover-image preview (3:4 box art) in the game editor.
- added Curator guide at
/admin/guide— create → cover ratio → scoring → gaming.forge news link → publish, with a contents sidebar. - added Auto-rebuild: creating/updating/publishing/deleting a rating dispatches a gaming.forge rebuild (GitHub
workflow_dispatch), so the consumer site refreshes without manual steps. No-op untilREBUILD_TOKENis set. - changed Headless front door:
/now redirects to the curator admin (login-first). The public browse + scorecard UI moved to/preview(+/preview/{slug}). - changed CORS: allow
gaming.forgeorigins so consumer sites can read the API. - fixed User menu showed the Authentik UUID; it now shows the email (falling back to the role), never the raw UUID.
- fixed Corrected the OIDC issuer slug (
toaratings) in.env.example.
- added Curated rating cards. One authoritative card per game, scored across a set of parameter axes. The total is the average of the axes (rounded to one decimal), with an optional manual editorial override; a game with no scores shows "—".
- added Scoring admin (Authentik SSO, superadmin/curator-only). New games are pre-filled with the default parameter axes — drag the 0–10 sliders (step 0.5) and the auto-total updates live. "Add axis" picks from the parameter template or a custom axis; predefined axes show a fixed label. Editable default template under admin → parameters.
- added Public site (Nuxt 4, gaming theme): a browsable grid of rating cards with the total prominent, and a per-game scorecard page with the full breakdown and an optional link to the gamingforge review.
- added Public read-only API for embedding (gamingforge):
GET /api/public/v1/ratingswithplatform/genre/search/sortfilters, andGET /api/public/v1/ratings/{slug}for a game's full score breakdown. Only published games are exposed. - added Admin API (curator-only): CRUD for games and the parameter template, publish / unpublish, with the total recomputed on every save.
- added FastAPI + SQLAlchemy 2.0 async + PostgreSQL 17 backend; Alembic migration seeds the six default parameters (gameplay, graphics, audio, story, performance, value). Docker Compose on AX41 behind Traefik; CI runs ruff + ESLint / typecheck / build.
API