← All work
EduGroupOpen source

EduGroup

An online learning platform with four roles, a self-promoting waitlist, instalment payments and background jobs that keep enrolments honest.

Role
Specification, review and tests
Timeline
Jul 2026
Status
Open source
Links
Code on GitHub ↗
EduGroup superadmin panel: platform totals and income by group

An online learning platform for a training centre. Teachers run courses and groups with video lessons; students enrol, pay in full or by instalments, and only then unlock the lessons; managers approve people and payments; a superadmin sees the whole platform.

How it was built

I wrote the full specification (TZ.md, version 2.0, with a changelog of fixes) and built the project with Claude Code from it. I directed the build and reviewed the code and tests. The specification and the prompt are both in the repository.

What it does

  • Waitlist with automatic promotion. When a group is full, students queue, and the next one moves up as soon as a seat frees.
  • Instalment plans. A course can be paid in parts, each confirmed by a manager.
  • Background jobs. Celery beat expires unpaid enrolments after 72 hours and flags overdue instalments every day.
  • Refresh-token rotation with reuse detection. Replaying a revoked token signs the user out everywhere.
  • Four dashboards for superadmin, manager, teacher and student, server-rendered with Jinja2 over the same services as the JSON API.