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.
- For the entire platform
- Real time notifications with SignalR,
- User Roles
- Guest
- Customer
- Employee
- Seller
- Manager
- Admin
- SuperAdmin
- Message broker (Channel or RabbitMQ)
- 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 (generating invoices in PDF format)
- Notifications List
- Favorite Products Management
- Account Security Management
- Authenticates
- JWT Authenticates with Refresh Tokens
- Possibility of sessions on various devices
- Sign In
- Sign Up
- .NET 9
- ASP.NET Core Web API
- ASP.NET Core Authentication JWT Bearer
- Entity Framework Core (MS SQL)
- ASP.NET Core SignalR
- Swagger
- Quartz.NET
- Humanizer
- MassTransit (RabbitMQ)
- MigraDoc
Important
For fully functionality, the myShop API project must have related projects running.
Full instruction for starting myShop projects is here.
- Clone repository
git clone https://github.com/marcin-niewczas/MyShop-API.git
- Database and message broker
- If you wanna use RabbitMQ, go to
appsettings.jsonand setUseRabbitMQto true (MessagingOptions section) and uncomment RabbitMQ image indocker-compose.yml - Run Docker App
- In root directory of repository run
docker-compose up -d
- If you wanna use RabbitMQ, go to
- In root directory of repository run
dotnet run --project ./src/MyShop.API/MyShop.API.csproj --launch-profile MyShop.HTTPS.Development
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- Go to root folder of myShop API repository
- Database and message broker
- If you wanna use RabbitMQ, go to
appsettings.jsonand setUseRabbitMQto true (MessagingOptions section) and uncomment RabbitMQ image indocker-compose.yml - Run Docker App
- In root directory of repository run
docker-compose up -d
- If you wanna use RabbitMQ, go to
- In root directory of repository run
dotnet run --project ./src/MyShop.API/MyShop.API.csproj --launch-profile MyShop.HTTPS.Development
- Go to root folder of myShop Angular Client repository
- In root folder of repository install NPM packages
npm install
- Run application
ng serve
- Go to root folder of myShop Pay repository
- Database
- In root directory of repository run
docker-compose up -d
- In root directory of repository run
- In root directory of repository run
dotnet run --project ./MyShopPay/MyShopPay.csproj --launch-profile https
| Password | |
|---|---|
[email protected] |
myShopProject1# |
[email protected] |
myShopProject1# |
[email protected] |
myShopProject1# |
[email protected] |
myShopProject1# |
[email protected] |
myShopProject1# |
[email protected] |
myShopProject1# |
Distributed under the MIT License. See LICENSE for more information.