Portfolio

Music Store E-Commerce Website (ASP.NET CORE)

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

Demo Hosted on Azure - http://musicstore-demo.azurewebsites.net/

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

 

The home page of the Music Store website when not logged in. Admins can add Albums of the Week to be highlighted on the home page.

The home page of the Music Store website when not logged in. Admins can add Albums of the Week to be highlighted on the home page.

The use case for this website was that of a record shop selling albums online. Prospective customers to the site have the ability to browse albums by their musical genre, add albums to their shopping cart, login and register to the site and then finally place an order after entering their personal details. On the other end of things, the admin to the site has a dedicated backend section where they can add, edit and delete albums to the store and also manage the authorisation and authentication of users.

 

The Details page for individual albums. Customers can either add the album to their cart or add a personal review of the album at the bottom the page for other potential customers to read.

The Details page for individual albums. Customers can either add the album to their cart or add a personal review of the album at the bottom the page for other potential customers to read.

The latest version of ASP.NET CORE (2.0) 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.

In fact, this project was developed using Visual Studio For Mac, proving the cross platform capabilities of the new CORE platform. Additional tooling for this project included using SQL Server Management Studio to upload a copy of the local development database to the Azure cloud. 

Completing this app, further cemented my knowledge of MVC principles learned whilst doing my first ASP.NET CORE project detailed here.

Some of the techniques applied while building this app included:

The shopping cart page which aggregates the selected albums, their quantities and their total amount before proceeding to the checkout page. Note as well the shopping cart icon in red in the main navigation menu which keeps track of the added items …

The shopping cart page which aggregates the selected albums, their quantities and their total amount before proceeding to the checkout page. Note as well the shopping cart icon in red in the main navigation menu which keeps track of the added items in the cart.

  • A code first approach was used by writing the domain classes first and then performing a migration to create the app's database.
  • Using ASP.NET Identity to allow third party authentication and login from Google.
  • An API REST service that returns JSON with album details that was then used to loop through and populate a Bootstrap list.
  • Hardening the site against hacking attempts by preventing XSS by sanitising user input and also preventing CSRF attacks by using Anti-Forgery tokens.
  • 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 and view components (new feature in CORE) 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 backend were you can add, edit and delete albums.  There is also a separate admin interface for managing users and their roles.

The admin backend were you can add, edit and delete albums.  There is also a separate admin interface for managing users and their roles.