Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/redjanvier/awesomeplace
https://github.com/redjanvier/awesomeplace
List: awesomeplace
Last synced: about 5 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/redjanvier/awesomeplace
- Owner: RedJanvier
- Created: 2024-08-02T06:48:22.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-08T09:35:54.000Z (2 months ago)
- Last Synced: 2024-09-08T10:32:03.581Z (2 months ago)
- Language: Java
- Size: 6.97 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Awesome Marketplace API
## 📋 Table of Contents
1. 🤖 [Introduction](#introduction)
2. ⚙️ [Tech Stack](#tech-stack)
3. 🔋 [Features](#features)
4. 🚀 [Quick Start](#quick-start)Built with Nest.js & SpringBoot, Awesome Marketplace API is a RESTful API for an online marketplace that allows users to buy and sell products, manage their inventory and process orders.
- Nest.js
- TypeScript
- Java
- SpringBoot
- Kafka
- SendGrid
- PostgreSQL## 🔋 Features
👉 **Authentication**: A dedicated service to manage authentication and authorization composed by user registration with email verification, login, refresh token and logout
👉 **Products Service**: Another separate service which is managing the products and their quantities in order to keep the inventory updated
👉 **Management of orders**: Receive, list and manage all orders is managed on a separate SpringBoot service that handles the order until it's completed
👉 **Notifications**: By the help of an external service (SendGrid) we send email verification link, order status update and more through a separate NestJS service.
👉 **Orders History**: View your history of orders which are ordered from recent to oldest.
👉 **Async Communication**: Different services are communicating asynchronously through Kafka as a broker which significantly improves the order processing and user management on register.
and many more, including code architecture and reusability.
Follow these steps to set up the project locally on your machine.
**Prerequisites**
Make sure you have the following installed on your machine:
- [Git](https://git-scm.com/)
- [Docker](https://www.docker.com/products/docker-desktop/) (Should be enough standalone)**Cloning the Repository**
```bash
git clone https://github.com/redjanvier/awesome-marketplace-api.git
cd awesome-marketplace-api
```**Set Up Environment Variables**
Create a new file named `.env` in the auth and notification services following the `.env.example` in the respective service.
Feel free to customize also the variable of `JWT` to match also in gateway which is handling authorization.
**Build and Run the Project**
```bash
docker-compose up --build
```Open [http://localhost:8080](http://localhost:8080) in your browser to view the project.