MSL Music Library

60+ endpoints · batch upload of 20

Role
Solo full-stack engineer
Timeline
2024
Team
Solo
Context
Digital library for musicians & schools

Musicians and music schools manage score collections in Dropbox, spreadsheets, and paper folders. MSL replaces that with a searchable, taggable, collaborative score library with a built-in PDF viewer — so students can open a score, zoom, and read without downloading anything.

MSL is a full-stack music score library with a React 18 frontend and Django REST API backend with 60+ endpoints. Features include multiple library management (public/private), rich metadata tagging (composer, period, difficulty, work type), collaboration with 3 permission levels, global search with filtering, built-in PDF viewer with zoom and dark/light theme, activity tracking, in-app notifications, and batch upload up to 20 scores.

Approach

Django REST + React 18

60+ endpoints on the Django side; React 18 on the reading surface. Django admin handles content moderation for free, which saved building a custom moderator UI.

Metadata-first catalog

Every score carries composer, period, difficulty, work type, and custom tags. Search runs over structured fields, not just filenames — so "Bach · Baroque · intermediate" returns exactly that.

Three-level collaboration

Owner / editor / viewer permissions applied per library. Lets a school split public/private collections — a master catalog open to students, a private working set for faculty.

Impact

Features

Stack

Back to all projects