Go to file
2023-07-13 13:21:27 +03:00
infra/docker done for now 2023-07-09 12:39:23 +03:00
notification-service fixing small bug 2023-07-13 11:19:22 +03:00
todo-service remove testing 2023-07-13 13:21:27 +03:00
.gitignore first push 2023-07-08 01:54:57 +03:00
README.md README 2023-07-09 16:34:42 +03:00
request.http fixing small bug 2023-07-13 11:19:22 +03:00

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:

    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 install

Run the following command to build and run (Dem mode)the project:

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 install

Run the following command to build and run (Dem mode)the project:

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.