saanny / nest-microservices

A simple nest.js microservices project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Task Manager Web Application

This is a simple web application designed to manage tasks within a company. The application is built upon a micro-service architecture with the following components:

  1. Nashville: Backend for Frontend (BFF) responsible for handling REST and WebSocket communications.
  2. Gallatin: Task Manager micro-service handling task logic.
  3. Ashland: Logger micro-service for event logging.

System Architecture

  • Nashville communicates with Gallatin micro-service via GRPC.
  • Gallatin and Ashland are connected to a RabbitMQ message broker.
  • Gallatin emits logical events to Ashland for logging.

Task Model

A task in the system has the following attributes:

  • id: Universally unique identifier (UUID) for the task.
  • parentId: UUID of the parent task (nullable for root tasks).
  • title: Title of the task (string).
  • description: Description of the task (text).
  • createdAt: Date or timestamp automatically generated by the ORM upon task creation.
  • updatedAt: Date or timestamp automatically updated by the ORM upon task modification.

Functionality

The application provides the following functionalities:

  1. Create and Update Task: Allows users to create and update tasks with basic attributes.
  2. List Tasks: Provides a paginated list of tasks. Complicated pagination within the task tree is not implemented.
  3. Delete Task: Enables users to delete a specific task by its ID.

Usage

To run the application, follow these steps:

  1. Install docker.
  2. run docker-compose up.

About

A simple nest.js microservices project


Languages

Language:TypeScript 97.0%Language:JavaScript 1.5%Language:Dockerfile 1.5%