{"id":19836179,"url":"https://github.com/opifexm/taskmanager","last_synced_at":"2026-04-12T11:41:46.617Z","repository":{"id":156893626,"uuid":"591839968","full_name":"opifexM/TaskManager","owner":"opifexM","description":"Spring Security 6 with JWT authentication and Argon2 password encoding, backed by Liquibase, Testcontainers, PostgreSQL, and MapStruct technologies.","archived":false,"fork":false,"pushed_at":"2023-07-26T14:39:06.000Z","size":4928,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-11T10:48:14.688Z","etag":null,"topics":["argon2","hibernate","jjwt","liquibase","mapstruct","postgresql","rollbar-api","spring-boot","spring-security","spring-specifications","swagger","testcontainers"],"latest_commit_sha":null,"homepage":"","language":"Java","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/opifexM.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":"2023-01-22T03:12:57.000Z","updated_at":"2024-03-05T19:08:30.000Z","dependencies_parsed_at":"2025-01-11T10:48:07.375Z","dependency_job_id":"673731a6-3e0e-4685-86cd-f69393841c99","html_url":"https://github.com/opifexM/TaskManager","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opifexM%2FTaskManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opifexM%2FTaskManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opifexM%2FTaskManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opifexM%2FTaskManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opifexM","download_url":"https://codeload.github.com/opifexM/TaskManager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241202137,"owners_count":19926564,"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":["argon2","hibernate","jjwt","liquibase","mapstruct","postgresql","rollbar-api","spring-boot","spring-security","spring-specifications","swagger","testcontainers"],"created_at":"2024-11-12T12:10:22.723Z","updated_at":"2026-04-12T11:41:41.584Z","avatar_url":"https://github.com/opifexM.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Actions Status](https://github.com/opifexM/TaskManager/actions/workflows/hexlet-check.yml/badge.svg)](https://github.com/opifexM/TaskManager/actions/workflows/hexlet-check.yml)\n[![Java CI](https://github.com/opifexM/TaskManager/actions/workflows/main.yml/badge.svg)](https://github.com/opifexM/TaskManager/actions/workflows/main.yml)\n[![Maintainability](https://api.codeclimate.com/v1/badges/424fd3c964c42c7c7114/maintainability)](https://codeclimate.com/github/opifexM/TaskManager/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/424fd3c964c42c7c7114/test_coverage)](https://codeclimate.com/github/opifexM/TaskManager/test_coverage)\n\n# Task Manager\n\nSwagger: https://taskm.herokuapp.com/swagger-ui/index.html\n\n## Overview\n\nThis project is a Spring Boot web application that provides APIs for managing various resources: Labels, Statuses, Tasks, and Users.\nIt is implemented Spring Security 6 with JWT authentication, ensuring robust security standards and Argon2 for password encoding \nand uses a stack of advanced technologies such as Liquibase, Testcontainers, PostgreSQL, and MapStruct for efficient and reliable database management and object mapping.\n\n## Dependencies\n\nThe project uses various dependencies managed by Gradle. Key dependencies include:\n\n-   Spring Boot and its various starters (web, data JPA, actuator, security)\n-   Spring Security Crypto Argon2\n-   Bouncy Castle for Java cryptography\n-   JSON Web Tokens (JJWT)\n-   PostgreSQL and H2 Database drivers\n-   Liquibase for database migration\n-   SpringDoc OpenAPI for API documentation\n-   Hibernate Validator for bean validation\n-   MapStruct for object mapping\n-   Lombok for reducing boilerplate code\n-   Testcontainers for integration testing\n-   Rollbar error tracking\n\n## APIs\n\nThe application exposes the following RESTful APIs:\n\n### Label Management API\n\n-   **GET /labels**: List all labels\n-   **GET /labels/{id}**: Get a label by ID\n-   **POST /labels**: Create a new label\n-   **PUT /labels/{id}**: Update a label by ID\n-   **DELETE /labels/{id}**: Delete a label by ID\n\n### Status Management API\n\n-   **GET /statuses**: List all statuses\n-   **GET /statuses/{id}**: Get a status by ID\n-   **POST /statuses**: Create a new status\n-   **PUT /statuses/{id}**: Update a status by ID\n-   **DELETE /statuses/{id}**: Delete a status by ID\n\n### Task Management API\n\n-   **GET /tasks**: List all tasks\n-   **GET /tasks/{id}**: Get a task by ID\n-   **POST /tasks**: Create a new task\n-   **PUT /tasks/{id}**: Update a task by ID\n-   **DELETE /tasks/{id}**: Delete a task by ID\n\n### User Management API\n\n-   **GET /users**: List all users\n-   **GET /users/{id}**: Get a user by ID\n-   **POST /users**: Create a new user\n-   **PUT /users/{id}**: Update a user by ID\n-   **DELETE /users/{id}**: Delete a user by ID\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopifexm%2Ftaskmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopifexm%2Ftaskmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopifexm%2Ftaskmanager/lists"}