Recently I started to work more extensively on ASP .Net MVC based projects as the needs for web based solutions are increasing more and more in industry. If you don’t know about MVC, this is a lightweight, highly testable presentation framework that is integrated with existing ASP .Net features, such as master pages and membership-based authentication. If you want to know more details about this framework check this MSDN link. So I developed BuySell classifieds by inspiring from OLX website & I thought to myself that I should try to develop this in MVC just to increase my skills more. I developed this project in my free time over a few weeks. This post is about its details so let’s dive in.
The idea behind this project was to clone basic functionality of online classifieds website where users can post and see ads posted by other users in different categories. OLX, Quickr and Gumtree are some of very well known classifieds websites in many countries. This project will let users select appropriate category and enter details and post their ad. Other users will be able to see those ads with details and post their reviews or question on that ad. The seller who posted that ad will also be able to modify and delete their ads. The project will also have an admin dashboard so that app and users activities can be viewed by admin. The admin dashboard will only be accessible to users with Admin and Manager role.
I selected ASP .Net MVC (Model, View, Controller) framework for this project because not only will it enhance my skills but also increase the speed at which I develop projects. I have developed projects in many different frameworks but I have found MVC to be more efficient and scalable. I also used Repository pattern in this project. Here is an MSDN link to give you some idea how it can help us improve the code’s maintainability and readability by separating business logic from data or service access logic. Also I tried Code First Approach in this project so that I would add classes as the need arise and then use Migrations to allow me to add these new classes to my database as tables with the help of Entity Framework. I also wanted the project to be loosely coupled instead of one giant project, so I divided it into four smaller projects each with its own functionality. I have 3 class library projects and one ASP project in this solution. The ASP project work as the startup project and class libraries provide domain classes, Data Access Layer and Repositories.
In the following video I’ve provided more details about its functionality with a demo. Check this out.
I have been uploading this project from its initial commits to my github account. If you would like to see this code in more details check my GitHub account.