Initialize CMS application scaffold

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Daniel Noulet 2026-09-19 14:17:27 +02:00
commit b50c054b30
39 changed files with 3040 additions and 0 deletions

32
ui/changelog.md Normal file
View file

@ -0,0 +1,32 @@
# Prompt and implementation changelog
## 2026-09-19
### Prompt
Create a CMS React application with a Go backend, initialize a Git repository, and
prepare the security foundation first. Add an extensible external identity-provider
login beginning with Google, a protected test page, and an admin login at
`/admin/login` whose link is never exposed in user-facing pages. Use Goose for
migrations and GORM for persistence. Structure the backend into web handlers,
web-to-domain mapping, domain-only services, database models, repositories, and
domain/database mappers. Prefix interfaces with `I`. Use Go 1.27.1 and the latest
React. Keep this changelog in `ui/changelog.md`.
### Tasks completed
- Initialized a local Git repository on the `main` branch; GitHub remote
configuration is intentionally left for later.
- Added a Go 1.27.1 backend module with configuration via environment variables.
- Added layered backend packages for domain, web handlers and mapping, services,
repositories, persistence models, and persistence mapping.
- Added GORM with SQLite as the local database driver and Goose migrations for
users, administrators, and sessions.
- Added an OAuth provider abstraction and Google OAuth authorization-code flow with
state validation, userinfo lookup, and an HTTP-only session cookie.
- Added health, session, Google auth, protected test, and hidden admin login routes.
- Added a React/Vite frontend with a public Google sign-in page, protected `/test`
page, and `/admin/login` route without a visible navigation link.
- Added environment examples, ignore rules, README documentation, and backend
unit tests.
- Verified Go tests and prepared frontend typecheck/build scripts.