project 02/02
Autoskola Plus.
A platform for driving schools, in progress: invite-only accounts per school and theory-test practice with tracked results.
- role
- Solo · full-stack
- period
- 2026 — now
- category
- Web
- status
- In progress
Early stage and private for now.
// overview
Autoskola (Croatian for 'driving school') is meant to give each driving school one place for its students, instructors and theory-exam prep. It's early: the foundation is an open-source Better Auth starter (Next.js, Drizzle, Neon) that already handles sign-in, organisations, roles and email invitations. I'm turning that into a product for one specific domain.
- Next.js 16
- TypeScript
- Better Auth
- Drizzle ORM
- Neon Postgres
- Resend
- shadcn/ui
// problem
Driving schools run on paper, spreadsheets and chat groups. Students practise for the theory exam in random apps, and instructors have no view of who is actually ready. A shared tool has to keep each school's data separate and keep sign-up out of the way.
// approach
- 01
Start from solid auth
Instead of building auth from scratch, I started from OrcDev's open-source Better Auth starter: email/password and Google sign-in, password reset, organisations with owner/admin/member roles, and invitations by email through Resend.
- 02
Invite-only access
Public sign-up is removed from the entry flow. Schools invite their own students and instructors, so every account belongs to a school from day one.
- 03
Theory-test results
I designed a quiz-result model (quiz, score, total questions and completion time per user) with Drizzle and generated the first Postgres migration, as the base for tracking each student's progress.
- 04
Next up
The dashboard shell (sidebar layout) is in place in a separate prototype. Next are the question bank, a practice-test flow and an instructor view of each student's readiness.
// highlights
- Organisation-scoped accounts with roles, built on Better Auth
- Invite-only onboarding instead of public sign-up
- Quiz-result schema and migrations with Drizzle on Neon Postgres
// what I learned
- Starting from a well-maintained starter let me spend time on the domain instead of on auth plumbing.
- Deciding the tenancy boundary (the school) first shapes every table and query after it.