Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Management Microservices

This project is a microservices-based task management system, composed of three main services:

  • User Service
  • Task Service
  • Notification Service

Services communicate asynchronously using RabbitMQ for message brokering. Each service is containerized with Docker and managed via a central docker-compose.yml file. Mailpit is included for capturing and viewing emails sent by the system during development and testing.


Project Structure

docker-compose.yml
notification-service/
  Dockerfile
  package.json
  pnpm-lock.yaml
  src/
    index.js
mailpit/ (service runs via Docker, no source code)
task-service/
  Dockerfile
  package.json
  pnpm-lock.yaml
  src/
    index.js
user-service/
  Dockerfile
  package.json
  pnpm-lock.yaml
  src/
    index.js

Services Overview

User Service

Handles user registration, authentication, and user data management.

Task Service

Manages tasks, including creation, updating, and tracking task status. This service now includes email sending functionality—when tasks are created, notification emails are sent (captured by Mailpit in development).

Notification Service

Sends notifications to users about task updates and other relevant events.

Mailpit

Mailpit is an email testing tool included as a service in this project. It captures outgoing emails for inspection during development. Access the Mailpit web UI at http://localhost:8025 (default port, see docker-compose.yml).


Messaging & Communication

This project uses RabbitMQ as a message broker for asynchronous communication between microservices. Events such as task creation, updates, and notifications are published to RabbitMQ and consumed by the relevant services.


Getting Started

Prerequisites

Running the Services

  1. Clone the repository:

    git clone git@github.com:bishalshrestha013/task-management-microservices.git
    cd task-management-microservices
  2. Start all services:

    docker-compose up --build
  3. Access the services:

Ports may be configured in the docker-compose.yml file.


Development

Each service is a standalone Node.js application. To run a service locally:

cd <service-name>
pnpm install
pnpm start

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages