{"id":14987662,"url":"https://github.com/solo21-12/task_management_api_gin","last_synced_at":"2026-01-25T19:34:10.489Z","repository":{"id":253201723,"uuid":"842791214","full_name":"solo21-12/task_management_API_gin","owner":"solo21-12","description":"A robust RESTful API for managing tasks and users, built with the Gin framework. Features include user authentication with JWT, user management, and task management. This API follows Clean Architecture principles for modularity and maintainability.","archived":false,"fork":false,"pushed_at":"2024-08-27T07:48:51.000Z","size":9541,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-27T18:24:08.553Z","etag":null,"topics":["cicd","clean-architecture","docker","docker-compose","gin-gonic","github-action","go","golang","makefile","mongodb","testify","testify-mocking","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solo21-12.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-15T04:59:54.000Z","updated_at":"2024-08-27T07:48:54.000Z","dependencies_parsed_at":"2024-10-14T00:22:24.989Z","dependency_job_id":"a15c470d-1e7a-44aa-b592-fa10916bd580","html_url":"https://github.com/solo21-12/task_management_API_gin","commit_stats":{"total_commits":32,"total_committers":2,"mean_commits":16.0,"dds":0.25,"last_synced_commit":"707b01168113d8c3ec12feb61afe084aed57bdd6"},"previous_names":["solo21-12/task_management_api_gin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo21-12%2Ftask_management_API_gin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo21-12%2Ftask_management_API_gin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo21-12%2Ftask_management_API_gin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo21-12%2Ftask_management_API_gin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solo21-12","download_url":"https://codeload.github.com/solo21-12/task_management_API_gin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239498272,"owners_count":19648877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cicd","clean-architecture","docker","docker-compose","gin-gonic","github-action","go","golang","makefile","mongodb","testify","testify-mocking","testing"],"created_at":"2024-09-24T14:15:08.037Z","updated_at":"2025-11-06T15:30:42.428Z","avatar_url":"https://github.com/solo21-12.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Task Management RESTful API\n![Go](https://img.shields.io/badge/Go-1.18+-blue.svg)\n![Gin](https://img.shields.io/badge/Gin-1.7+-green.svg)\n![MongoDB](https://img.shields.io/badge/MongoDB-5.0+-brightgreen.svg)\n![Docker](https://img.shields.io/badge/Docker-20.10+-blue.svg)\n![License](https://img.shields.io/badge/License-MIT-yellow.svg)\n\n\nWelcome to the **Task Management RESTful API** built with the Gin framework. This API provides features for user authentication, user management, and task management, following the principles of Clean Architecture.\n\n\n## 📁 Folder Structure\n\nThe project is organized into the following directory structure:\n\n## 🚀 Features\n\n- **Authentication with JWT**: Secure authentication using JSON Web Tokens (JWT).\n- **User Management**: Manage user sign-up, login, and user role promotion.\n- **Task Management**: Create, retrieve, update, and delete tasks.\n\n## 🏗️ Clean Architecture\n\nThis project follows the principles of Clean Architecture to ensure that the code is modular, maintainable, and scalable. The architecture is divided into layers with clearly defined responsibilities:\n\n- **Delivery**: Handles the HTTP requests and responses, including routing and controllers.\n- **Domain**: Contains the core business logic and domain models.\n- **Infrastructure**: Manages the interaction with external services and systems.\n- **Repositories**: Manages data access and persistence.\n- **UseCases**: Implements the application's use cases and business rules.\n\n```\nbootstrap/\n├── app.go\n├── database.go\n├── env.go\n\nDelivery/\n├── controllers/\n│   ├── login.controller.go\n│   ├── promote_user.controller.go\n│   ├── sign_up.controller.go\n│   └── task.controller.go\n├── main.go\n├── routers/\n│   ├── login.router.go\n│   ├── promote.route.go\n│   ├── router.go\n│   ├── sign_up.router.go\n│   └── task.router.go\n└── tmp/\n    ├── build-errors.log\n    └── main\ndoc/\n└── api_documentation.md\n\nDomain/\n├── auth.middleware.go\n├── error_response.go\n├── jwt_custome.go\n├── jwt.service.go\n├── login.go\n├── password.service.go\n├── promote.go\n├── sign_up.go\n├── task.go\n├── user.go\n└── validate.go\n\nInfrastructure/\n├── auth.middleware.go\n├── jwt.service.go\n└── password.service.go\nmocks/\n├── mock_auth_middler.go\n├── mock_jwt_service.go\n├── mock_login_usecase.go\n├── mock_password_service.go\n├── mock_promote_usecase.go\n├── mock_signup_repository.go\n├── mock_task.go\n└── mock_user_repository.go\n\nRepositories/\n├── task_repository.go\n└── user_repository.go\n\ntests/\n├── constants/\n│   └── user.go\n├── controllers/\n│   ├── login_controller_test.go\n│   ├── promote_controller_test.go\n│   ├── signup_controller_test.go\n│   └── task_controller_test.go\n├── Repositories/\n│   ├── task_repository_test.go\n│   └── user_repository_test.go\n└── UseCases/\n    ├── login_usecase_test.go\n    ├── promote_user_usecase_test.go\n    ├── sign_up_usecase_test.go\n    └── task_usecase_test.go\n\nUseCases/\n├── login.usecase.go\n├── promote.usecase.go\n├── sign_up.usecase.go\n└── task.usecase.go\n\ngo.mod\ngo.sum\nmakefile\nREADME.md\n```\n\n## 🏁 Getting Started\n\nTo get started with the project:\n\n1. **Clone the Repository**:\n   ```sh\n   git clone https://github.com/solo21-12/task_management_API_gin.git\n   cd task_management_API_gin\n   ```\n\n2. **Run the Application**:\n   ```sh\n   make run\n   ```\n\n3. **stop the Application**:\n   ```sh\n   make stop\n   ```\n\n4. **Run Tests**:\n   ```sh\n   make test\n   ```\n\n5. **Run Tests with Coverage**:\n   ```sh\n   make test-coverage\n   ```\n6. **logs for the Application**:\n   ```sh\n   make logs\n   ```\n\n## 🧪 Testing\n\nTesting is crucial for maintaining the quality of the application. To run tests, use the following commands:\n\n- **Run Tests**:\n  ```sh\n  make test\n  ```\n\n- **Run Tests with Coverage**:\n  ```sh\n  make test-coverage\n  ```\n\n## 📜 Documentation\n\nFor detailed API documentation, please refer to [Task Management API Documentation](https://documenter.getpostman.com/view/22911710/2sA3s7j8v6)\n\nFor more information, please visit the [GitHub repository](https://github.com/solo21-12/task_management_API_gin).\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolo21-12%2Ftask_management_api_gin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolo21-12%2Ftask_management_api_gin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolo21-12%2Ftask_management_api_gin/lists"}