Project report / Web application

Digitalized Sortable
Music Library

This project took a spreadsheet and turned it into an interactive website to sort and view music.

Music Library interface with filters and sortable sheet-music records

Overview

From spreadsheet to searchable library.

The goal of this project was to digitize a school music library that had previously been managed through a spreadsheet. The finished application makes the collection easier to explore by allowing users to find and sort music by collection, title, composer, and other useful information.

I built software to parse the spreadsheet’s existing data and convert it into a structured music-library database. This process gave me practical experience working with SQL and data structures, including linked lists, while also developing the front end used to browse and view the collection.

Turning the spreadsheet into a useful application required more than transferring rows into a new format. I had to consider how compositions, composers, collections, and related details should connect so that the information could be stored consistently and retrieved efficiently. The resulting structure supports both broad browsing and more focused searches without losing the detail contained in the original records.

I also worked across the full path from data processing to the user interface. That meant preparing the source information in Python, designing and querying the SQL database, building the endpoints that connect the application to its data, and presenting the results in a clear, sortable library. Working through each layer helped me understand how decisions made in the database affect both back-end logic and the experience of the person using the site.

Working full stack

Solving problems across the system.

In this position, I worked one-on-one with a University of Toronto computer science graduate and gained hands-on experience coding in Python across both front-end and back-end development. The experience strengthened my approach to problem-solving as I worked through complex requirements and developed practical solutions.

A memorable challenge

Creating the compositions endpoint

One of the most memorable problems I solved was building the endpoint used to create compositions. The hardest part was determining whether a composition already existed. That check required querying multiple database tables and comparing related records across them.

With guidance from my mentor, I developed a workaround for the logic problem and completed the endpoint. It was a valuable lesson in breaking a difficult problem into smaller checks, understanding relationships between data, and refining a solution through collaboration.