{"id":21711621,"url":"https://github.com/heliolj/asynchronous-task-management-system","last_synced_at":"2026-04-07T07:46:19.888Z","repository":{"id":207273227,"uuid":"718323294","full_name":"helioLJ/Asynchronous-task-management-system","owner":"helioLJ","description":"Task Management System using Microsservices. Powered by Java Spring Boot, Docker, RabbitMQ, PostgreSQL, and NGINX. Efficiently handles tasks with asynchronous processing for optimal performance","archived":false,"fork":false,"pushed_at":"2023-11-16T14:05:56.000Z","size":98,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:03:10.907Z","etag":null,"topics":["docker","java","message-queue","microservices","nginx","postgresql","rabbitmq","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helioLJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-13T21:04:58.000Z","updated_at":"2025-04-10T15:42:21.000Z","dependencies_parsed_at":"2023-11-15T00:28:34.150Z","dependency_job_id":"0b2c48bb-2a36-4b39-b4a2-22be06855d78","html_url":"https://github.com/helioLJ/Asynchronous-task-management-system","commit_stats":null,"previous_names":["heliolj/asynchronous-task-management-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/helioLJ/Asynchronous-task-management-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helioLJ%2FAsynchronous-task-management-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helioLJ%2FAsynchronous-task-management-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helioLJ%2FAsynchronous-task-management-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helioLJ%2FAsynchronous-task-management-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helioLJ","download_url":"https://codeload.github.com/helioLJ/Asynchronous-task-management-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helioLJ%2FAsynchronous-task-management-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","java","message-queue","microservices","nginx","postgresql","rabbitmq","spring-boot"],"created_at":"2024-11-25T23:28:16.790Z","updated_at":"2026-04-07T07:46:19.858Z","avatar_url":"https://github.com/helioLJ.png","language":"Java","readme":"# Task Management System\n\n## Overview\n\nTask Management System, a robust Java Spring Boot application designed to streamline task creation, assignment, and tracking. This README provides essential technical information about the project, explaining its architecture, design decisions, and how to get started.\n\n# Microservices Architecture\n\nThe project embraces a Microservices Architecture, promoting modularity, scalability, and resilience. Each aspect of task management, from creation to assignment, is encapsulated within independent, loosely coupled microservices.\n\n![mermaid diagram](https://i.imgur.com/uyI4wKt.png)\n\n## Project Structure\n\nThe project follows a modular structure to enhance maintainability and scalability:\n\n- **`src/main/java`**: Java source code.\n- **`src/test/java`**: Unitary and integration tests for controller and services.\n- **`src/main/resources`**: Configuration files.\n- **`docker-compose.yml`**: Docker Compose configuration.\n\n\n## Technologies Used\n\n- **Java Spring Boot**: A powerful and flexible framework for building Java-based enterprise applications.\n- **Docker**: Containerization for easy deployment and scalability.\n- **RabbitMQ**: Asynchronous messaging for efficient task assignment.\n- **PostgreSQL Database**: Utilizes a relational database for storing task information.\n- **Asynchronous Processing with @Async from Spring Boot**: Implements parallelism for efficient task processing.\n- **NGINX**: Efficiently handles load balancing and acts as a reverse proxy for the microservices.\n\n\n## Getting Started\n\nTo run the Task Management System locally, follow these steps:\n\n### Building and Docker\n\nDockerize the application for simplified deployment:\n\n1. Build the jar file: `mvn clean install`\n2. Build the Docker image: `docker build -t task-management-system .`\n\n#### Running with full system with Docker\n\n1. Run the docker containers: `docker compose up`\n2. Access the application at [http://localhost:8080](http://localhost:8080)\n\n#### Running application locally\n\n1. Put PostgreSQL and RabbitMQ containers up: `docker compose up postgres rabbitmq` \n2. Run the Spring Boot application: `./mvnw spring-boot:run`\n3. Access the application at [http://localhost:8080](http://localhost:8080)\n\n## Asynchronous Communication with RabbitMQ\n\nRabbitMQ is integrated into the system to handle asynchronous communication. Task assignment events are processed efficiently, ensuring responsiveness.\n\n## Parallelism\n\nTask processing is optimized through parallel mechanisms. Utilizing Spring's `@Async` to parallelize task processing, enhancing system performance.\n\n## Design and Architecture Patterns\n\nThe project adheres to SOLID principles, applying design patterns such as Factory, Repository, and Observer where necessary. DTOs facilitate clean separation of concerns for API communication.\n\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE.md). Feel free to use, modify, and distribute the code as per the terms of the license.\n\nHappy coding! 🚀\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheliolj%2Fasynchronous-task-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheliolj%2Fasynchronous-task-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheliolj%2Fasynchronous-task-management-system/lists"}