/broooms

An ecommerce to sell all kinds of brooms. My first microservices project!

Primary LanguageC#MIT LicenseMIT

๐Ÿงน Broooms

An e-commerce to sell all kinds of broooms. My first microservices project!

License Stars Last Commit
Getting Started โ€ข Application overview โ€ข Features โ€ข License


๐Ÿš€ Getting Started

Requirements:

  • .NET 6
  • Docker and Docker Compose

For now, you can use the docker-compose file to run the application. There is a script to run it correctly.

In the root folder, run:

./scripts/create-settings.sh # makes a copy of example config files to development config files
./scripts/compose-up.dev.sh # runs compose containers

The APIs are not running on docker now, so I'll need to run them manually with the dotnet run command. As the applications grow and I develop the main clients for them, I'll be adding them to the compose file so they can all be run at once.


๐Ÿ’ป Application overview

Broooms is based on a microservices architecture. The main services are:

Name Description Tech stack
Broooms.Catalog Manages products and categories .NET 6 WebAPI, EFCore, PostgreSQL
Broooms.Cart Manages user carts .NET 6 MinimalAPI, Redis
Broooms.Discount Manages discount coupons .NET 6 GRPC Service, MongoDB
Broooms.Orders Manages user orders .NET 6 WebAPI, EFCore, PostgreSQL
Broooms.Notifications Sends emails and real-time notifications .NET 6 SignalR Server, Dapper, PostgreSQL
Broooms.Reports Generates reports Python, FastAPI, Pandas
Broooms.Auth Manages user accounts and auth .NET 6 WebAPI, EFCore, SQL Server
Broooms.Admin.Web Admin UI ReactJs, NextJs, Tailwind
Broooms.Shop.Web Shop UI .NET 6 Razor WebApp, Tailwind
Broooms.Aggregator Gateway/BFF for all services .NET 6 GraphQL API, Redis

Some architecture/app design/data flow/event diagrams will be added with time.


๐Ÿ’ซ Features

Catalog

  • Search broooms by keyword and category with pagination
  • Show a brooom by id
  • Create a new broom
  • Update a broom
  • Delete a broom
  • Add a product image and upload it to a storage service
  • List all categories
  • Show a category by id
  • Create a new category
  • Update a category
  • Delete a category
  • Add a category to a product
  • Remove a category from a product

Cart

  • Show user cart
  • Update a product quantity in cart
  • Clear cart
  • Add coupon code
  • Remove coupon code
  • Checkout

Coupon

  • List all coupons
  • Show a coupon by code
  • Create a new coupon
  • Disable a coupon
  • Reenable a coupon

Auth

  • Register customer
  • Register admin
  • Confirm email
  • Login + Access token
  • Refresh token
  • Claim based authentication
  • Logout
  • Get user info
  • Update user info
  • Change password
  • Disable user
  • Reenable user

Orders

Features description soon

Notifications

Features description soon

Reports

Features description soon

Admin panel

Features description soon

Shop WebApp

Features description soon


๐Ÿ“ License

This project is licensed under the terms of the MIT license.