Development / Project
19th-Century Sonata Forms Research Database
A React and Contentful research platform for browsing, editing, and producing sonata-form analyses.
Overview
A full-stack research database for Theorizing Sonata Form in European Concert Music, 1815-1914, a project focused on a large corpus of nineteenth-century sonata forms. I am rebuilding the database as a modern web application so the project can preserve its existing analytical data, make that data easier to search, and continue producing new analyses.
Role
Full-stack developer responsible for the React frontend, Contentful data model, metadata editing workflows, protected authoring tools, authentication, API routes, and deployment infrastructure.
Context
The original research project analyzes sonata forms in European instrumental music between 1815 and 1914. The database needs to serve both as a public research resource and as an internal authoring environment for analysts, editors, and project administrators.
Problem
The project has to represent detailed music-theoretical analysis, bibliographic metadata, and editorial status in a way that is searchable, maintainable, and usable by people with different roles. It also has to support future analytical work rather than simply preserve a static archive.
Outcome
The project is becoming a maintainable research platform: a public database for exploring nineteenth-century sonata-form analyses and a protected workspace for creating, editing, and reviewing new analytical data.
Approach
- 01 Structured the data around normalized entities including compositions, composers, places, publishers, users, analyses, and analytical sections.
- 02 Built React views for browsing compositions, filtering large result sets, and navigating relationships between metadata and analyses.
- 03 Developed admin interfaces for editing metadata records while preserving the links between entities and analytical content.
- 04 Used Contentful as the content backend and routed write operations through Netlify Functions to keep management tokens off the client.
- 05 Implemented Auth0-based authentication and authorization for protected authoring and editorial workflows.
- 06 Separated public browsing, metadata editing, and analysis-authoring flows so the application can grow without becoming one large admin interface.