Top Gun Lab - .NET edition - Final Project https://github.com/v4dev/WebStore2/
Team:
- Roman Yavnikov (https://github.com/Romazes/)
- Yana Kovalenko (https://github.com/YanaKovalenko/ https://github.com/Alexsaio/)
- Vladimir Tonkopryad (https://github.com/v4dev/)
Online Tea Shop final project features Asp.NET Core MVC 3.1 implementation and the following functionality:
-
Multi-layered solution setup
1.1. Create multi-layered project structure
1.1.1. UI project
1.1.2. Infrastructure project
1.1.3. Core project
1.2. Configure project references
1.3. Nuget package dependencies are resolved via packages.config -
Dependency Injection - Repository Pattern Implementation
2.1. Introduced models
2.2. Introduced repository interfaces
2.3. Introduced mocks
2.4. Configured Startup
2.5. Configured sample Controller
2.6. Configured sample View and ViewModel -
Configured Entity Framework Core
3.1. Added EF Core related Nuget packages
3.1.1. Microsoft.EntityFrameworkCore.SqlServer
3.1.2. Microsoft.EntityFrameworkCore.Tools
3.2. Added DBContext file and updated its content
3.3. Setup the connection string
3.4. Updated Startup with the database connection string
3.5. Introduced repositories and registered them in Startup
3.6. Performed database initialization and migration
3.7. Configured and performd the DB seeding -
Front-end setup
4.1. Configured layout, viewstart and viewimports
4.2. Configured bootstrap and jquery support
4.3. Partial views
4.4. Routing
4.5. Navigation menu
4.6. Created home page
4.7. Enabled ViewComponents
4.8. Added custom tag helpers -
Added additional web application functionality
5.1. Details form -
Added Shopping Cart functionality
6.1. Entity
6.2. Repository
6.3. Controller
6.4. ViewModel
6.5. View
6.6. Shopping Cart item removal -
Added Order form functionality
7.1. Entity
7.2. Repository
7.3. Controller
7.4. ViewModel
7.5. View
7.6. Model binding
7.7. Form validation
7.8. Product search -
Enabled Security - Part 1: User Authentication and User Administration
8.1. Utilized ASP.NET Core identity API
8.2. Added authentication functionality
8.3. Enforced authentication request for user to place an order
8.4. Enabled User Management
-
Unit tests
9.1. Added Core section related unit tests
9.2. Added UI Controllers section related unit tests -
Security
10.1. Default Identity is extended by adding ApplicationUser with extra fields
10.2. Added role-based authorization
10.3. Added product, product category, user and user role management functionality
10.4. Added claims-based authorization
10.5. Added age-based limitation on the order checkout which is based on the claims
10.6. Use case information
Password for all users is Password123!
10.6.1. [email protected] - Can do anything
10.6.2.1. [email protected] - Junior admin can only fully manage products and ONLY edit product categories
10.6.2.2. [email protected] - Junior admin can only fully manage products and product categories
10.6.3.1. [email protected] - Can fill the shopping cart and make an order
10.6.3.2. [email protected] - Can ONLY fill the shopping cart, but CANNOT make an order