Skip to content
teo@dev:~$
cd ../projects

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.