Case StudyPython / Django / PostgreSQL / Docker / B2B

TutorHub

System zarządzania szkołą korepetycji B2B. Django + PostgreSQL + Redis + Celery. 4 role użytkowników, automatyczne fakturowanie, śledzenie obecności, kalendarz lekcji, portal rodzica, komunikator.

TutorHub

TutorHub ("Na Piątkę") to kompleksowy system zarządzania dla szkół korepetycji w Polsce. Zbudowany jako monolit Django, zastępuje obieg pracy oparty na Excelu automatycznym planowaniem, fakturowaniem, śledzeniem obecności i komunikacją wielorolową.

Problem

Szkoła korepetycji z ponad 200 aktywnymi uczniami zarządzała wszystkim w Excelu: dane uczniów, grafiki nauczycieli, śledzenie lekcji, statusy płatności i komunikacja z rodzicami. Właściciel poświęcał ponad 10 godzin tygodniowo na zadania administracyjne, które powinny być zautomatyzowane.

Podwójnie zarezerwowani nauczyciele, niezauważone zaległości w płatnościach przez tygodnie i brak możliwości generowania raportów bez ręcznej agregacji danych.

Rozwiązanie

Dedykowana platforma Django z 17 połączonymi modułami, 4 rolami użytkowników (Admin, Korepetytor, Uczeń, Rodzic) i automatycznymi zadaniami w tle przez Celery.

Moduły

TutorHub - Dashboard

Dashboard

Admin overview with key stats: students, tutors, upcoming lessons, pending invoices, and revenue tracking.

1/9

Role użytkowników i kontrola dostępu

  • Admin -- pełny dostęp do systemu, dashboard z przychodami/statystykami, ustawienia, logi audytu
  • Korepetytor -- zarządzanie lekcjami, szybkie oznaczanie obecności, lista uczniów, widok zarobków
  • Uczeń -- osobisty dashboard, kalendarz lekcji, wnioski o odwołanie, śledzenie postępów
  • Rodzic -- konfigurowalny portal (tylko podgląd lub pełny dostęp), przeglądanie faktur, komunikacja z korepetytorami

Zautomatyzowane procesy

Zadania w tle zasilane przez Celery Beat i Redis:

  • Miesięczne fakturowanie -- faktury generowane automatycznie 25. dnia każdego miesiąca
  • Wykrywanie zaległości -- codzienna kontrola o 8:00, automatyczna aktualizacja statusów
  • Przypomnienia o płatności -- email 7 dni przed terminem
  • Wygaśnięcie lekcji zastępczych -- automatyczne czyszczenie po konfigurowalnym okresie (domyślnie 30 dni)
  • Przypomnienia o lekcjach -- powiadomienia 24 godziny przed zaplanowaną lekcją

Architektura techniczna

  • Django 5.1 z Python 3.11+ -- CBV, custom managery, mixiny oparte na rolach
  • PostgreSQL 17 -- schemat relacyjny z kluczami złożonymi dla slotów grafiku, ograniczenia na poziomie bazy zapobiegające podwójnej rezerwacji
  • Redis 7 + Celery 5.4 -- kolejka zadań dla fakturowania, powiadomień i zadań w tle
  • HTMX 1.21 -- reaktywny UI bez przeładowań strony, częściowe renderowanie szablonów
  • Tailwind CSS + DaisyUI -- stylowanie komponentowe z obsługą motywów
  • Gunicorn + WhiteNoise -- serwowanie produkcyjne z optymalizacją plików statycznych
  • Docker Compose -- PostgreSQL, Redis i Adminer w kontenerach

Bezpieczeństwo i zgodność

  • Gotowość na RODO z archiwizacją i anonimizacją użytkowników
  • Pełna ścieżka audytu -- każda operacja CRUD logowana z użytkownikiem, IP i timestampem
  • Proces weryfikacji emaila
  • Autentykacja sesyjna z 2-godzinnym timeoutem
  • Kontrola dostępu oparta na rolach na każdym widoku

Stack

  • Django 5.1 + Python 3.11
  • PostgreSQL 17
  • Redis 7 + Celery 5.4
  • HTMX + Tailwind CSS + DaisyUI
  • FullCalendar (planowanie)
  • ReportLab + PyMuPDF (generowanie PDF)
  • Docker Compose
  • Gunicorn + WhiteNoise

Wyniki

  • 10h do <1h tygodniowo -- redukcja czasu administracji
  • Zero incydentów podwójnej rezerwacji od wdrożenia
  • 3 dni/miesiąc zaoszczędzone na ręcznym fakturowaniu
  • 4 role użytkowników z granularną kontrolą dostępu
  • 17 aplikacji Django zasilających cały system
  • Obsługuje ponad 200 jednoczesnych użytkowników