{"id":28324034,"url":"https://github.com/devmboo/taskplus-back","last_synced_at":"2025-06-24T01:32:16.108Z","repository":{"id":292360625,"uuid":"979108881","full_name":"DevMboo/taskplus-back","owner":"DevMboo","description":"TaskPlus is a backend microservice developed in Spring Boot 3.4.5 for managing tasks, users and teams. The API uses JWT (JSON Web Tokens) authentication and in-memory H2 database for development.","archived":false,"fork":false,"pushed_at":"2025-05-09T14:01:02.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T02:05:00.755Z","etag":null,"topics":["java","microservices","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DevMboo.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,"zenodo":null}},"created_at":"2025-05-07T02:30:12.000Z","updated_at":"2025-05-14T19:25:08.000Z","dependencies_parsed_at":"2025-05-09T15:07:55.595Z","dependency_job_id":null,"html_url":"https://github.com/DevMboo/taskplus-back","commit_stats":null,"previous_names":["devmboo/taskplus-back"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DevMboo/taskplus-back","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevMboo%2Ftaskplus-back","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevMboo%2Ftaskplus-back/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevMboo%2Ftaskplus-back/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevMboo%2Ftaskplus-back/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevMboo","download_url":"https://codeload.github.com/DevMboo/taskplus-back/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevMboo%2Ftaskplus-back/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261586563,"owners_count":23181135,"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":["java","microservices","spring-boot"],"created_at":"2025-05-25T17:09:35.926Z","updated_at":"2025-06-24T01:32:16.100Z","avatar_url":"https://github.com/DevMboo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskPlus - Backend API Documentation\n\n### 📌 Descrição\n\nTaskPlus é um microserviço backend desenvolvido em **Spring Boot 3.4.5** para gerenciar tarefas, usuários e equipes. A API utiliza autenticação JWT (JSON Web Tokens) e banco de dados H2 em memória para desenvolvimento.\n\n## 🚀 Primeiros Passos\n\n### Pré-requisitos\n- JDK 21\n- Maven 3.8+\n- IntelliJ IDEA (recomendado) ou outra IDE Java\n- Java 21\n- Spring 3.4.5\n\n### 🔑 Primeiro Acesso\nPara começar a usar a API, você precisa primeiro criar um usuário, utilize o POSTMAN ou Insomnia para isso, seguindo o padrão abaixo:\n\n```http\nPOST /v1/users\nContent-Type: application/json\n\n{\n    \"name\": \"Seu nome\",\n    \"email\": \"seu@email.com\",\n    \"password\": \"suasenha\",\n    \"teamId\": 13,\n    \"perfil\": \"COLABORADOR\"\n}\n```\n\n**Nota:** Devido às restrições de segurança e uso do banco H2, o cadastro inicial de usuários é um recurso necessário para iniciar o sistema.\n\n## 🔐 Autenticação\n\n### Login\n```http\nPOST /v1/auth/login\nContent-Type: application/json\n\n{\n    \"email\": \"seu@email.com\",\n    \"password\": \"suaSenha\"\n}\n```\n\n**Resposta:** Retorna um token JWT em cookie HTTP-only\n\n## 👥 Users Endpoints\n\n| Método | Endpoint          | Descrição                              | Autenticação |\n|--------|-------------------|----------------------------------------|--------------|\n| POST   | /v1/users         | Cria novo usuário                      | Token JWT    |\n| GET    | /v1/users         | Lista todos os usuários                | Token JWT    |\n| GET    | /v1/users/{id}    | Obtém usuário por ID                   | Token JWT    |\n| PUT    | /v1/users/{id}    | Atualiza usuário                       | Token JWT    |\n| DELETE | /v1/users/{id}    | Remove usuário                         | Token JWT    |\n\n## 📝 Tasks Endpoints\n\n| Método | Endpoint                     | Descrição                              | Autenticação |\n|--------|------------------------------|----------------------------------------|--------------|\n| POST   | /v1/tasks                    | Cria nova tarefa                       | Token JWT    |\n| GET    | /v1/tasks                    | Lista tarefas da equipe do usuário     | Token JWT    |\n| GET    | /v1/tasks/{taskId}           | Obtém tarefa por ID                    | Token JWT    |\n| GET    | /v1/tasks/filter             | Filtra tarefas por status/responsável  | Token JWT    |\n| PATCH  | /v1/tasks/{taskId}/status    | Atualiza status da tarefa              | Token JWT    |\n| PUT    | /v1/tasks/{taskId}           | Atualiza tarefa completa               | Token JWT    |\n| DELETE | /v1/tasks/{taskId}           | Remove tarefa                          | Token JWT    |\n\n## 👥 Teams Endpoints\n\n| Método | Endpoint          | Descrição                              | Autenticação |\n|--------|-------------------|----------------------------------------|--------------|\n| POST   | /v1/teams         | Cria nova equipe                       | Token JWT    |\n| GET    | /v1/teams         | Lista todas as equipes                 | Token JWT    |\n| GET    | /v1/teams/{id}    | Obtém equipe por ID                    | Token JWT    |\n| PUT    | /v1/teams/{id}    | Atualiza equipe                        | Token JWT    |\n| DELETE | /v1/teams/{id}    | Remove equipe                          | Token JWT    |\n\n## 🛠️ Tecnologias e Dependências\n\n- **Spring Boot**: 3.4.5\n- **Java**: JDK 21\n- **Banco de Dados**: H2 (em memória)\n- **Dependências Principais**:\n  - Spring Security\n  - Spring Data JPA\n  - Lombok\n  - Spring Web\n  - JJWT (JSON Web Tokens)\n  - H2 Database\n\n## 🗃️ Banco de Dados H2\n\nA interface web do H2 está disponível em:\n```\nhttp://localhost:8080/h2-console\n```\n\n**Credenciais:**\n- JDBC URL: `jdbc:h2:mem:taskplusdb`\n- Username: `sa`\n- Password: (vazio)\n\n## 🚀 Como Executar\n\n1. Clone o repositório:\n```bash\ngit clone https://github.com/DevMboo/taskplus-back\n```\n\n2. Compile o projeto:\n```bash\nmvn clean install\n```\n\n3. Execute a aplicação:\n```bash\nmvn spring-boot:run\n```\n\n## 📌 Notas Importantes\n\n1. Todas as rotas (exceto `/v1/auth/login` e POST `/v1/users`) requerem autenticação via token JWT\n2. O token é enviado como cookie HTTP-only chamado \"token\"\n3. O primeiro usuário deve ser criado via POST `/v1/users` antes de qualquer operação\n4. O banco H2 é reiniciado a cada execução da aplicação\n5. Os times são adicionados novamente apos cada reinicialização\n\n## 📞 Contato\n\nPara dúvidas ou sugestões:\n- **Luan Chaves** (DevMboo)\n- Email: lchavesdesousa@gmail.com\n- Repositório: https://github.com/DevMboo/taskplus-back","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmboo%2Ftaskplus-back","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevmboo%2Ftaskplus-back","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmboo%2Ftaskplus-back/lists"}