Portfolio

Video Course Website (ASP.NET CORE)

Developed and uploaded in September 2017.
GitHub Repository - http://github.com/richard-coffey/VideoCourse/

Demo Hosted on Azure - http://videocourse.azurewebsites.net/

Type user@demo.com/Password-1 to login as a normal user and admin@demo.com/Password-2 to login as an admin.

 

The Dashboard area a user sees upon login with a overview of what video courses they are signed up to.

The use case for this app was of a technical video course site for learning C#, the .NET Framework and Microsoft Azure (imagine a simplified version of Pluralsight). The videos are sourced from YouTube. Users can signup and login to watch the video courses they are subscribed to. A special admin user (with their own backend) can add and delete users from specific courses. In this way, all the basic functions of a CRUD style app were achieved.

 

Within each course there is a list of videos on that topic along with a sidebar bio section for the instructor for that particular course.

The latest version of ASP.NET CORE (1.1) was selected for this project. CORE is an exciting new development in ASP.NET as it allows cross platform development along with significant speed increases over previous versions for web development.

Some of the techniques applied while building this app included:

  • A code first approach was used by writing the domain classes first and then performing a migration to create the app's database.
  • Using Automapper to map entity objects to DTO objects.
  • Modifying the existing Bootstrap template to our apps needs.
  • Working with Entity Framework and LINQ commands to create repository classes to carry out basic CRUD functions.
  • Using partial views to separate the different areas of our views.
  • Proper use of Fluent API to setup composite key relationships between database tables and avoid the problem of cascade deletes.

 

The admin area with CRUD operations for the app. It uses ASP.NET CORE's new Tag Helper features for easy to place buttons.

Some of the major new features and concepts unique to ASP.NET CORE which were learnt while building this app included:

  • Tag Helpers - A enhancement to the Razor View engine for writing clean server rendering HTML code in our views.
  • Learning about the new ASP.NET CORE Pipeline architecture and the importance of the Startup.CS file for configuring the services to be used by the app.
  • How Dependency Injection is baked into ASP.NET CORE from the outset and how best to implement it.