Skip to content
This repository has been archived by the owner on Oct 3, 2024. It is now read-only.

Northwind is a simple MVC application with CRUD operations for working with Products and Categories designed on a Clean Architecture.

Notifications You must be signed in to change notification settings

another-one-employee/Northwind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppVeyor branch AppVeyor tests (branch) Quality Gate Status
Lines of Code Bugs Code Smells
Duplicated Lines (%) Coverage

🎞️ Presentation

Presentation

📜 General description

Northwind is a simple MVC application with CRUD operations for working with Products and Categories designed on a Clean Architecture.

▶️ Starting the project

The following developer tools are recommended for running the project:

Steps for running project:

⚠️ If you have some problems with project, please write to me.

Installation:

  1. Download and install MS Visual Studio. When you install VS 2019 Community make sure you select “ASP.NET and web development” package.
    Please follow the link for more information

  2. Download and install MS SQL Server Express. Guide

  3. Download and install SQL Server Express LocalDB. Guide

  4. Download and install Git Bash for windows with default installation settings.

  5. Open Git Bash and set-up your name and e-mail by using next commands:

    git config --global user.name <your full name>  
    git config --global user.email <your email>

    Please follow the link for more information

  6. Open Git console, push and select the path where the project will be located by using the command:

    cd /d <your full path>
  7. Clone this repository by using the command:

    git clone https://github.com/Srul1k/Northwind.git

Configuration:

  1. Open the query that you can find in the res folder using Microsoft SQL Server Managment Studio 18.

  2. Enter in the server name: (localdb)\mssqllocaldb

  3. Execute the query.
    Please follow the link for more information

  4. Open the appsettings.Development.json file that is located on this path: src/Northwind.Web

    • Configure AzureAD section if you want to log in with a Microsoft account (optional).
      Please follow the link for more information
    • Configure the EmailService section by entering an e-mail and password. Make sure that the permission to use third-party services is set in your mail service. Passwords for recovery will be sent to users via this mail (optional, it is recommended to use Gmail).
      Please follow the link for more information
    • Configure the AdminInitializer section by entering an e-mail and password. This data will be used to log in as administrator.

Launch:

  1. Open the file Northwind.sln in the root directory using MS Visual Studio.
  2. Select Northwind.Web as a start-up project.
  3. Click on the run button (CTRL + F5). Please note, the first running can be long.
  4. Enjoy! ✨
ℹ️ Common Information

This project uses next stack of technologies:

C# ASP.NET Core Swagger EF Core MicrosoftSQLServer Bootstrap HTML5 CSS JavaScript Jquery

In the main this project consists of the following four parts:

  1. Northwind.Domain part contains POCO classes of entities used in the application.

  2. Northwind.Application part contains business application logic. Almost all of data and process functions are managed with services.

  3. Northwind.Infrastructure part contains all project repositories and application context as well as working with third-party services. Repositories allow the application to manage database. Application context links all entities with each other. Services help to send mails and initialize database.

  4. Northwind.Web part contains all program controllers, views, viewModels, viewComponents. Controllers link the business logic and the visual part of the application (Views). Also using ASP.NET Core Identity and controller attributes implemented authentication and authorization.

🦄 Contact me

If you have any good tips on the code or architecture of the application, please contact me and share it 💜