How the app is built
The app is an Astro server-rendered application deployed on Epinio.
- Frontend + server: Astro (server output) serving module pages, quizzes, and exams.
- Auth: Better Auth with Google Workspace SSO, restricted to the
krum.iodomain. - Data: Postgres (via CloudNativePG), with tables for users, exam attempts, and certifications.
- Content: module slides/quiz/exam JSON in
src/data/, mapped to source policies through the cxaap knowledge contract.
Certification state (valid or expired) is derived from each user’s latest passing exam attempt and the 365-day validity period.