/eWebStoreOnWeb

Web application development with Asp.Net Core 3.1 MVC & EF.Core, scaffolding identity with roles, plain unit tests, multi-layered application architecture, repository pattern.

Primary LanguageJavaScript

WebStore2

Top Gun Lab - .NET edition - Final Project https://github.com/v4dev/WebStore2/

Team:

  1. Roman Yavnikov (https://github.com/Romazes/)
  2. Yana Kovalenko (https://github.com/YanaKovalenko/ https://github.com/Alexsaio/)
  3. Vladimir Tonkopryad (https://github.com/v4dev/)

Online Tea Shop final project features Asp.NET Core MVC 3.1 implementation and the following functionality:

  1. 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

  2. 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

  3. 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

  4. 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

  5. Added additional web application functionality
    5.1. Details form

  6. 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

  7. 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

  8. 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

Additional features added:

  1. Unit tests
    9.1. Added Core section related unit tests
    9.2. Added UI Controllers section related unit tests

  2. 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. admin00@contoso.com - Can do anything
    10.6.2.1. managerJunior00@contoso.com - Junior admin can only fully manage products and ONLY edit product categories
    10.6.2.2. managerSenior00@contoso.com - Junior admin can only fully manage products and product categories
    10.6.3.1. userAdult00@contoso.com - Can fill the shopping cart and make an order
    10.6.3.2. userChild00@contoso.com - Can ONLY fill the shopping cart, but CANNOT make an order