MusBook Teaching Platform
Scheduling, messaging, and automation suite for music tuition teams built on Django + Channels.
MusBook kept music teaching organised: a full-stack platform I designed, coded, and operated with Django, Channels, Celery, and Tailwind. It handled scheduling, messaging, and reminders for dozens of weekly lessons before I sunset the deployment. Repo here: github.com/zhaojinchu/MusBook.
Platform experience
- Separate teacher/student dashboards with role-aware permissions, onboarding invites, and profile management.
- Full calendar workflow covering lesson requests, approvals, reschedules, attendance tracking, and assignment progress.
- Real-time messaging inbox with WebSocket notifications so both sides stay synced on lesson changes and tasks.
Engineering highlights
- Custom Django user model with timezone conversions and granular notification preferences enforced across the app.
- Celery worker + beat scheduler drive reminder cadences (30 min, 1 hour, 24 hours) and other background automations.
- Django Channels + ASGI stack wires up WebSocket consumers for chat, notification feed, and live dashboard counters.
Operations & tooling
- Production stack ran behind Nginx with Daphne + Gunicorn + systemd units, backed by Redis for Channels and Celery.
- Journald log pipelines and health check endpoints made it easy to debug deployments and monitor worker status.
- Tailwind + django-browser-reload gave a fast feedback loop when iterating on dashboard UI and components.
Calendar views for student and teacher users, sortable by week, day, or month views.
Example of a teacher's dashboard. Day view + attendance check for convenience.
Example of a Student's assignment view.
Next up: revive the deployment with a trimmed surface (lessons + messaging) and wire the roadmap items into the existing Celery job infrastructure.