Skip to content

myShop E-Commerce & CMS REST API | ASP.NET Core Web API

License

Notifications You must be signed in to change notification settings

marcin-niewczas/MyShop-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

myShop API



Table of Contents

  1. About The Project
  2. Related Projects
  3. Getting Started
  4. Launch myShop Projects
  5. Authenticate
  6. License

About The Project

The main goal of myShop API project was to create a flexible E-Commerce API platform, that can be easily managed. The project has been built as Clean Architecture REST API and developed with CQRS (Command Query Responsibility Segregation), Unit Of Work and Event Driven Architecture Patterns.

Clients

Features

  • For the entire platform
    • Real time notifications with SignalR,
    • User Roles
      • Guest
      • Customer
      • Employee
        • Seller
        • Manager
        • Admin
        • SuperAdmin
    • Message broker built with Channel
      • CRON Jobs,
      • Async Background Tasks (e.g. Payment Processing with myShop Pay )
  • E-Commerce
    • Customized Home Page
    • Products List
      • Advanced Filtering (by Variant Options, Detail Options, Price)
      • Advanced Sorting (e.g. Top Rated, Bestsellers, Most Reviewed Products)
      • Group Products By All Variant Options or Main Variant Option
    • Product Detail (Single or Product Variants)
    • Product Reviews
    • Favorites
    • Quick Add Product
    • Shopping Basket
    • Ordering Wizard
    • Create Order by Guest
  • Management Panel
    • Dashboard
    • E-Commerce Home Page Management
    • Categories Management
    • Product Options Management
    • Product, Product Reviews, Product Variants, Product Photos Management
    • Orders Management
  • Account
    • Basic Account Information Management
    • User Addresses Management
    • User Orders Management
    • Notifications List
    • Favorite Products Management
    • Account Security Management
  • Authenticates
    • JWT Authenticates with Refresh Tokens
    • Possibility of sessions on various devices
    • Sign In
    • Sign Up

Built with

  • .NET 8
  • ASP.NET Core Web API
  • ASP.NET Core Authentication JWT Bearer
  • Entity Framework Core (MS SQL)
  • ASP.NET Core SignalR
  • Swagger
  • Quartz.NET
  • Humanizer
  • Scrutor

Related Projects

Getting Started

Important

For fully functionality, the myShop API project must have related projects running.

Full instruction for starting myShop projects is here.

  1. Clone repository
    git clone https://github.com/marcin-niewczas/MyShop-API.git  
  2. Database
    • Windows
      • Nothing to do, but if you wanna run database via Docker go to Mac OS/Linux step
    • Mac OS/Linux
      • Go to ./src/MyShop.API/appsettings.json and comment WindowsConnectionString, then uncomment DockerConnectionString
      • Run Docker App
      • In root directory of repository run
        cd ../../
        docker-compose up -d
  3. In root directory of repository run
    dotnet run --project ./src/MyShop.API/MyShop.API.csproj --launch-profile MyShop.HTTPS.Development

Launch myShop Projects

1. Clone repositories

git clone https://github.com/marcin-niewczas/MyShop-API.git
git clone https://github.com/marcin-niewczas/MyShop-Angular-Client.git
git clone https://github.com/marcin-niewczas/MyShop-Pay.git

2. myShop API

  1. Go to root folder of myShop API repository
    cd MyShop-API
  2. Database
    • Windows
      • Nothing to do, but if you wanna run database via Docker go to Mac OS/Linux step
    • Mac OS/Linux
      • Go to ./src/MyShop.API/appsettings.json and comment WindowsConnectionString, then uncomment DockerConnectionString
      • Run Docker App
      • In root directory of repository run
        cd ../../
        docker-compose up -d
  3. In root directory of repository run
    dotnet run --project ./src/MyShop.API/MyShop.API.csproj --launch-profile MyShop.HTTPS.Development

3. myShop Angular Client

  1. Go to root folder of myShop Angular Client repository
    cd ../MyShop-Angular-Client
  2. In root folder of repository install NPM packages
    npm install
  3. Run application
    ng serve

4. myShop Pay

  1. Go to root folder of myShop Pay repository
    cd ../MyShop-Pay
  2. Database
    • Windows
      • Nothing to do, but if you wanna run database via Docker go to Mac OS/Linux step
    • Mac OS/Linux
      • Go to ./MyShopPay/appsettings.json and comment WindowsConnectionString, then uncomment DockerConnectionString
  3. In root directory of repository run
    dotnet run --project ./MyShopPay/MyShopPay.csproj --launch-profile https

Authenticate

Email Password
super-admin@myshop.com myShopProject1#
admin@myshop.com myShopProject1#
manager@myshop.com myShopProject1#
seller@myshop.com myShopProject1#
customer1@myshop.com myShopProject1#
customer2@myshop.com myShopProject1#

License

Distributed under the MIT License. See LICENSE for more information.