TutorHub
B2B tutoring school management system. Django + PostgreSQL + Redis + Celery. 4 user roles, automated billing, attendance tracking, lesson calendar, parent portal, messaging.

TutorHub ("Na Piatkę") is a comprehensive management system for tutoring schools in Poland. Built as a Django monolith, it replaces Excel-based workflows with automated scheduling, billing, attendance tracking, and multi-role communication.
The Problem
A tutoring school with 200+ active students was managing everything in Excel: student records, teacher schedules, lesson tracking, payment status, and parent communication. The owner spent 10+ hours per week on administrative tasks that should have been automated.
Double-booked teachers, missed payments going unnoticed for weeks, and no way to generate reports without manual data aggregation.
The Solution
A custom-built Django platform with 17 interconnected modules, 4 user roles (Admin, Tutor, Student, Parent), and automated background tasks via Celery.
Modules
User Roles & Access Control
- Admin -- full system access, dashboard with revenue/stats, system settings, audit logs
- Tutor -- lesson management, quick attendance marking, student roster, earnings view
- Student -- personal dashboard, lesson calendar, cancellation requests, progress tracking
- Parent -- configurable portal (view-only or full access), invoice viewing, messaging with tutors
Automated Workflows
Background tasks powered by Celery Beat and Redis:
- Monthly billing -- invoices auto-generated on the 25th of each month
- Overdue detection -- daily check at 8 AM, automatic status updates
- Payment reminders -- email sent 7 days before due date
- Makeup lesson expiry -- automatic cleanup after configurable period (default 30 days)
- Lesson reminders -- notifications 24 hours before scheduled lessons
Technical Architecture
- Django 5.1 with Python 3.11+ -- CBVs, custom managers, role-based mixins
- PostgreSQL 17 -- relational schema with composite keys for schedule slots, database-level constraints against double-booking
- Redis 7 + Celery 5.4 -- task queue for billing, notifications, and background jobs
- HTMX 1.21 -- reactive UI without page reloads, partial template rendering
- Tailwind CSS + DaisyUI -- component-based styling with theme support
- Gunicorn + WhiteNoise -- production serving with static file optimization
- Docker Compose -- PostgreSQL, Redis, and Adminer in containers
Security & Compliance
- GDPR-ready with user archive and anonymization support
- Full audit trail -- every CRUD operation logged with user, IP, and timestamp
- Email verification workflow
- Session-based auth with 2-hour timeout
- Role-based access control on every view
Stack
- Django 5.1 + Python 3.11
- PostgreSQL 17
- Redis 7 + Celery 5.4
- HTMX + Tailwind CSS + DaisyUI
- FullCalendar (scheduling)
- ReportLab + PyMuPDF (PDF generation)
- Docker Compose
- Gunicorn + WhiteNoise
Results
- 10h to <1h weekly admin time reduction
- Zero double-booking incidents since deployment
- 3 days/month saved on manual invoicing
- 4 user roles with granular access control
- 17 Django apps powering the entire system
- Handles 200+ concurrent users









Dashboard
Admin overview with key stats: students, tutors, upcoming lessons, pending invoices, and revenue tracking.
Lesson Calendar
FullCalendar-based scheduling with tutor/room resource views, recurring lessons, and conflict detection.
Attendance Tracking
Real-time attendance marking with present/absent/late/excused statuses, check-in times, and monthly reports.
Automated Invoicing
Monthly invoices auto-generated via Celery Beat. Net/VAT/Gross calculations, PDF generation, overdue detection.
Messaging System
Threaded conversations with group chat, file attachments, read receipts, and reply support.
Subject Management
Subject catalog with education levels (7A, 3LO), tutor expertise matching, and per-subject pricing.
Reports & Analytics
Attendance reports with PDF export, revenue breakdowns, tutor utilization, and student retention metrics.
Audit Logs
Full CRUD audit trail with user activity logging, IP tracking, and timestamps for compliance.
System Settings
Configurable school name, lesson duration, cancellation notice, makeup expiry, invoice prefix, and notifications.