Problem
Managing a roster of artists, their albums, and their tracks is relational data with real integrity rules: an album belongs to an artist, a track belongs to an album, and deleting one should not orphan the others. I wanted a production-deployed app that models that properly, not another local-only CRUD demo.
Process
The app is ASP.NET Core MVC with Entity Framework Core over SQL Server. EF Core migrations own the schema, and the relationships between artists, albums, and tracks are enforced at the model level. Deployment runs through GitHub Actions: every push to main builds and ships to Azure App Service, so the live site never drifts behind the repo.
Key Decisions
- Entity Framework Core with code-first migrations, so the database schema lives in version control next to the code it serves.
- CI/CD from day one: GitHub Actions deploys to Azure on push, which forced the app to be always deployable rather than fixed up before releases.
- Azure App Service with Azure SQL, keeping the whole stack in one platform with one set of credentials to manage.
Outcome
The platform runs continuously on Azure and updates itself from the repo through the pipeline. It is the project where I learned to treat deployment as part of the app, and it has stayed live and current since.
