Back to Projects
Web App

EventHub

An event booking app with admin management

Project View

Overview

This project was built as a hands-on practice app while learning C# and ASP.NET Core at the British Columbia Institute of Technology. The goal was to apply backend best practices in a realistic workflow—using dependency injection, OOP, and a clean repository–service–controller architecture. I used Entity Framework Core as the ORM to model the database, generate schemas, and manage changes through migrations for smoother database handling. To reinforce quality and maintainability, I wrote unit tests for the service and controller layers using a test-driven development approach. The final application was deployed to Microsoft Azure with a CI/CD pipeline via GitHub Actions, so new changes are automatically built and deployed to the live host without manual updates.

Key Features

  • Filter and view upcoming events with details and availability
  • Select ticket types/quantities and book on-site
  • Admin-only dashboard for event CRUD and ticket limits
  • Role management (admin permissions)
  • Booking history for users and admins:

Tech Stack

Challenge

A major challenge was adapting to the ASP.NET Core / Visual Studio development workflow while learning how to structure a scalable backend. Implementing the repository pattern correctly (without leaking database logic into controllers) took iteration, and working with Entity Framework Core required careful handling of models, migrations, and query patterns to keep data access reliable and maintainable.

Solution

I addressed these by committing to a consistent layered design—controllers focused on HTTP flow, services owned business logic, and repositories handled data access. Dependency injection kept components decoupled and testable, while EF Core migrations provided a structured way to evolve the schema as features expanded. Unit tests for the service and controller layers helped validate core behaviors early and reduced regressions as I iterated toward deployment and automated releases.