BS ECE · Carnegie Mellon · May 2028

zhaojinchu@cmu.edu github.com/zhaojinchu linkedin.com/in/zhaojinc


AN-008 · Software · Archived
Started Sep 2023

MusBook: a lesson‑scheduling platform, solo-built


1.0Abstract

A Django platform for music teachers and their students that I built on my own and ran from September 2023 to May 2025. It handled lesson requests, rescheduling, attendance, assignments, chat and reminders, at around 150 bookings a month at Dubai College and with freelance teachers.

At a glance

Parameter Value
Status Archived. Offline since May 2025
When and where Sep 2023 – May 2025, Dubai College and freelance music teachers
My part Solo: built it and ran it for two years
Built with Django 5 and PostgreSQL; Channels and Daphne; Celery with Redis; Tailwind, Alpine.js, FullCalendar; Nginx and Gunicorn on systemd
Code github.com/zhaojinchu/MusBook
Usage About 150 bookings a month
Real time WebSocket chat, a notification feed and live dashboard counters
Reminders 30 minutes, 1 hour and 24 hours before a lesson
MusBook landing page on a purple gradient: “Music lesson scheduling made easy”, with Students and Teachers buttons
The MusBook landing page.

The problem

Music lessons at a school run on a web of chat messages: “can we move Thursday”, “did you practice the Bach”, “I’m running five minutes late”. Teachers had no shared calendar with their students, students had no single place for assignments, and nobody had a record of attendance. MusBook put all of that in one place.

What I built

  • Role-aware accounts: a custom user model with explicit student/teacher roles, timezones and notification preferences; email-based two-factor authentication; an invitation flow so a teacher connected to a student before calendars, messaging or assignments were shared.
  • Scheduling: lesson requests (optionally recurring) with approve/decline, a full rescheduling workflow that routed the proposal to the other party and kept the history, attendance tracking inline, and a FullCalendar hub that merged confirmed lessons with personal events.
  • Communication: real-time direct messaging over WebSockets with persistence; a notification center for requests, reschedules, attendance and assignments; teacher notes as a lightweight CRM per student.
  • Automation: Celery workers and beat sent reminders 24 hours, 1 hour and 30 minutes before a lesson, respecting each user’s preferences: a beat task polled upcoming lessons every five seconds; a timezone middleware converted every form submission and calendar view.
MusBook student calendar, week view
Student calendar, week view.
MusBook teacher calendar, month view
Teacher calendar, month view.
MusBook teacher dashboard with day view and attendance
Teacher dashboard: day view with inline attendance.
MusBook student assignments view
A student’s assignments view.

What happened

It was piloted at Dubai College and then used across the school and by freelance music teachers outside it. Roughly 150 bookings a month went through it.

It went offline in May 2025.

What’s next

Redeploying a trimmed version, lessons and messaging only, is cheap and would put a live link back on this page. It’s on the list.

← All projects