TodoSystemMicroService-NodeJS/README.md
2023-07-09 16:34:42 +03:00

61 lines
1.9 KiB
Markdown

# Project Setup Instructions
This README.md file provides instructions for setting up and running various components of the project, including MongoDB, BarbbitMQ, NotificationService, and TodoService. Please follow the steps below to get started.
## MongoDB/Docker && RabbitMQ/Docker
1. Install MongoDB if you haven't already.
2. Navigate to the `/infra/docker/docker-compose` directory.
3. Make sure to add .env by copying .env.example and filling in the values.
4. Run the following command to start MongoDB using Docker Compose:
```shell
docker-compose up -d
```
## NotificationService
Before running the NotificationService, ensure that you have Node.js, TypeScript (tsc), and npm installed.
Navigate to the /notification-service directory.
Run the following command to install the dependencies:
```npm
npm install
```
Run the following command to build and run (Dem mode)the project:
```npm
npm run dev
```
## TodoService
Before running the TodoService, ensure that you have Node.js, TypeScript (tsc) and npm installed.
Navigate to the /todo-service directory.
Run the following command to install the dependencies:
```npm
npm install
```
Run the following command to build and run (Dem mode)the project:
```npm
npm run dev
```
## Requests
Examples are located in request.http - can be run in VSCode with the REST Client extension.
## notification-service business logic
1. When a new todo is created, the notification-service will receive a message from the todo-service with delay time due_date - current_time.
2. The notification-service will then send a message to rabbitmq with the delay time.
3. When the delay time is up, the notification-service will receive a message from rabbitmq and send a notification to the user by the following logic:
a. If the todo is no "pending" status and due_date is smaller then current time, send a notification to the user.
b. If the todo is already completed, do nothing.