Skip to content

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

License

Notifications You must be signed in to change notification settings

vassourita/broooms

Repository files navigation

🧹 Broooms

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

License Stars Last Commit


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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published