← Selected projects

Learning & Content

KelasKita.

Learning & assessment

Connecting classes, flashcards, and quizzes with a Go backend that checks access, enforces deadlines, processes attempts, and supports automatic and manual grading.

Implementation scope
Mobile & backend
  • Flutter
  • Go
  • PostgreSQL
  • Riverpod
Explore the approach
KelasKita project presentation with application screens
KelasKita project presentation with application screens

The context

A workflow worth connecting.

Teachers and learners need a connected flow from preparing materials to releasing assessment results. The server must remain responsible for access, submission rules, and deadlines even when the mobile interface changes state.

What the project covers

  • Admin, teacher, and learner experiences with membership checks
  • Classes with invitation codes and interactive flashcard decks
  • Multiple quiz types, local answer drafts, and automatic saving
  • Automatic and manual grading with controlled result release

The connected workflow

  1. 01Prepare a class and quiz
  2. 02Save learner answers
  3. 03Check deadlines and grade
  4. 04Release results

A simplified view of the workflow described in the project documentation.

Inside the implementation

Engineering decisions.

01

Keep assessment rules on the server

The Go API checks deadlines and uses transactions for answer submission. A separate worker processes overdue attempts, keeping timing rules outside the mobile countdown alone.

02

Model access at resource level

Role checks are combined with ownership and class membership. Authentication uses Argon2id password hashing, Ed25519 JWTs, and refresh-token rotation.

03

Handle repeated or conflicting requests

Idempotency keys and versioning address repeated requests and conflicting changes. Flutter uses feature-based structure, Riverpod, and shared session and networking components.

Scope & validation

Core features and automated tests are documented, but remaining gaps still require verification before declaring all MVP criteria met or production readiness. Password-reset email delivery is not yet determined. Local drafts do not establish fully offline quizzes.

Have something in mind?

Let’s build something
that works together.

Tell me about your product, the people using it,
and the problem you want to solve.

Discuss a project