This is a portfolio project showcasing a blog that is built on both MVC and REST API designs. The whole application is built using ASP.NET Core 5.0 with MS SQL as the persistant database. It also has Create, Read, Update and Delete features.
To demonstrate the working knowledge of MVC and API designs, the front end and back end of the blog are split into 2 projects. The front end is design with ASP.NET Core MVC Web App. The MVC Web App then consume data from ASP.NET Core 5 REST API. The designs follow the onion architecture with separation of concerns and inversion of control principles in mind.
Unit testing is implemented on both MVC and API. The comment feature of the blog were added using Test Driven Development (TDD) approach.
- C#
- HTML
- CSS
- JavaScript
- ASP.NET 5.0 Core
- JQuery
- Bootstrap
- Xunit
- NSubstitute
- Visual Studio 2022
- MS SQL Server 2019 (LocalDB)
- Thunder Client
- The homepage shows a list of blog posts that are organised into pages (pagination).
- The navbar allows users to navigate to various parts of the blog (Posts and Contacts).
- The index page allows user to search the blog post titles and posts are organised into pages. User can also create blog posts.
- The post details page allows user to read, edit and delete the post.
- User can also post comments and delete it
- The Contact Me page allows user to leave the contact details in a form
- The Contact List page allows user to retrieve all contact details in a table and delete them if needed.
The solution is organised into 5 different projects and library classes
- Blog (MVC Web App)
- WebAPI (REST API)
- Data (Data related assets - Entities model, Migrations, DbContext, Repositories)
- Domain (Utilities and business logic classes)
- BlogTest (Unit Testing)
Please note that Data and Domain library classes are separated from the projects so that the assets can be shared between the projects without affecting each other if one project is being retired.




