{"id":25257803,"url":"https://github.com/ricardoandreh/task-tracker-api","last_synced_at":"2026-02-23T18:36:33.069Z","repository":{"id":268029523,"uuid":"836506340","full_name":"ricardoandreh/task-tracker-api","owner":"ricardoandreh","description":"A simple task management API that allows users to create, organize, and track their daily activities powered by Groq Cloud","archived":false,"fork":false,"pushed_at":"2025-01-22T21:38:55.000Z","size":233,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-11T06:56:10.602Z","etag":null,"topics":["docker-compose","groq","java","maven","render-deploy","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"https://task-tracker-api-randre.onrender.com/docs","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/ricardoandreh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-08-01T02:06:14.000Z","updated_at":"2025-01-29T18:48:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"524bc574-3f16-416d-b89e-3c4a9142410a","html_url":"https://github.com/ricardoandreh/task-tracker-api","commit_stats":null,"previous_names":["ricardoandreh/spring-boot-todolist","ricardoandreh/task-tracker-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ricardoandreh/task-tracker-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardoandreh%2Ftask-tracker-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardoandreh%2Ftask-tracker-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardoandreh%2Ftask-tracker-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardoandreh%2Ftask-tracker-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ricardoandreh","download_url":"https://codeload.github.com/ricardoandreh/task-tracker-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardoandreh%2Ftask-tracker-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281185449,"owners_count":26457747,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-compose","groq","java","maven","render-deploy","spring-boot","spring-security"],"created_at":"2025-02-12T06:50:34.743Z","updated_at":"2025-10-26T22:38:27.709Z","avatar_url":"https://github.com/ricardoandreh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Tracker\n\n![Licença MIT](https://img.shields.io/github/license/ricardoandreh/task-tracker-api)\n![Java](https://img.shields.io/badge/Java-17+-blue)\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.1-green)\n![Maven](https://img.shields.io/badge/Maven-4.0.0-red)\n\n## Descrição\n\n**Task Tracker** é uma API de gerenciamento de tarefas simples que permite aos usuários criar, organizar e acompanhar suas atividades diárias. Desenvolvida com Java Spring Boot, a aplicação oferece funcionalidades robustas de autenticação, autorização, paginação, pesquisa e muito mais, facilitando o gerenciamento eficiente de tarefas em projetos pessoais ou colaborativos.\n\n## 🚀 Funcionalidades\n\n- **Autenticação JWT**: Suporte para tokens de acesso e refresh tokens.\n- **Gerenciamento de Tarefas**: Criação, atualização, deleção e busca de tarefas.\n- **Paginação e Pesquisa**: Facilita a navegação e localização de tarefas específicas.\n- **Segurança com Spring Security**: Controle de acesso baseado em funções de usuário.\n- **Hypermedia HATEOAS**: Navegação intuitiva entre recursos da API.\n- **Suporte a Múltiplos Bancos de Dados**: H2 (em memória) para desenvolvimento e PostgreSQL para produção.\n- **Docker e Docker Compose**: Facilita o deploy e a configuração de ambientes.\n- **Deploy no Render**: Implementação simplificada em ambiente de produção.\n\n## 🛠 Tecnologias Utilizadas\n\n- **Linguagem**: Java 17\n- **Framework**: Spring Boot\n- **Gerenciador de Dependências**: Maven\n- **Segurança**: Spring Security\n- **Ferramentas de Produtividade**: Lombok\n- **Arquitetura de API**: HATEOAS\n- **Autenticação**: JWT (Access e Refresh Tokens)\n- **Banco de Dados**: H2 (Desenvolvimento), PostgreSQL (Produção)\n- **Containerização**: Docker, Docker Compose\n- **Deploy**: Render\n\n## 📚 Endpoints\n\n### Autenticação\n\n| Método | Endpoint         | Descrição                        |\n| ------ | ---------------- |----------------------------------|\n| POST   | `/auth/register` | Registro de novos usuários       |\n| POST   | `/auth/login`    | Login e obtenção de tokens JWT   |\n| POST   | `/auth/refresh`  | Renovação de tokens JWT          |\n\n### Tarefas\n\n| Método | Endpoint                | Descrição                                 |\n| ------ | ----------------------- |-------------------------------------------|\n| GET    | `/tasks`                | Listar todas as tarefas com paginação     |\n| GET    | `/tasks/{id}`           | Obter detalhes de uma tarefa específica   |\n| GET    | `/tasks/search`         | Buscar tarefas com parâmetros específicos |\n| POST   | `/tasks`                | Criar uma nova tarefa                     |\n| PATCH  | `/tasks/{id}`           | Atualizar uma tarefa existente            |\n| DELETE | `/tasks/{id}`           | Deletar uma tarefa                        |\n\n### Swagger\n\nA documentação interativa da API está disponível no endpoint `/swagger-ui/index.html` e no redirecionador `/docs` após a execução da aplicação.\n\n## 🔧 Configuração do Ambiente\n\n### 📋 Variáveis de Ambiente\n\n| Nome                     | Valor Padrão                 | Descrição                                |\n|--------------------------|------------------------------|------------------------------------------|\n| `RENDER_EXTERNAL_URL`    | (sem valor padrão)           | URL externa do Render para deploy        |\n| `SECRET_KEY`             | `my-secret-key`              | Chave secreta para JWT                   |\n| `DATABASE_USER`          | (definido no Docker Compose) | Usuário do banco de dados                |\n| `DATABASE_PASSWORD`      | (definido no Docker Compose) | Senha do banco de dados                  |\n| `DATABASE_HOST`          | `postgres`                   | Host do banco de dados                   |\n| `DATABASE_PORT`          | `5432`                       | Porta do banco de dados                  |\n| `DATABASE_NAME`          | `task_tracker`               | Nome do banco de dados                   |\n| `JDK_JAVA_OPTIONS`       | `-Xms256m -Xmx512m`          | Opções de configuração da JVM            |\n| `SPRING_PROFILES_ACTIVE` | `prod`                       | Perfil ativo do Spring (dev, prod, test) |\n\n### 📦 Docker e Docker Compose\n\nA aplicação utiliza Docker para containerização e Docker Compose para orquestração de múltiplos containers (API e banco de dados). Certifique-se de que o Docker está instalado em sua máquina.\n\n#### Build e Run com Docker Compose\n\n```sh\ndocker-compose up --build\n```\n\nEste comando irá construir as imagens necessárias e iniciar os containers definidos no `docker-compose.yml`.\n\n## 🏃‍♂️ Como Rodar a Aplicação\n\n### 🔧 Usando Maven\n\n1. **Clonar o Repositório**\n\n   ```sh\n   git clone https://github.com/ricardoandreh/task-tracker-api.git\n   cd task-tracker-api\n   ```\n\n2. **Instalar Dependências**\n\n   ```sh\n   ./mvnw install\n   ```\n\n3. **Executar a Aplicação**\n\n   Para rodar em modo desenvolvimento:\n\n   ```sh\n   ./mvnw spring-boot:run -Dspring-boot.run.profiles=dev\n   ```\n\n   Para rodar em modo produção:\n\n   ```sh\n   ./mvnw spring-boot:run -Dspring-boot.run.profiles=prod\n   ```\n\n### 🐳 Usando Docker\n\n1. **Build da Imagem Docker**\n\n   ```sh\n   docker build -t task-tracker-api .\n   ```\n\n2. **Executar o Container**\n\n   ```sh\n   docker run -d -p 10000:10000 --name task-tracker-api task-tracker-api\n   ```\n\n### 🚀 Deploy no Render\n\nSiga as instruções na plataforma [Render](https://render.com/) para realizar o deploy da aplicação utilizando o `Dockerfile` ou conectando diretamente ao repositório GitHub.\n\n## 🧪 Testes\n\nA aplicação possui uma suite de testes automatizados para garantir a qualidade e a integridade do código.\n\n### Executar Testes\n\n```sh\n./mvnw test\n```\n\n## 📂 Estrutura do Projeto\n\nPara uma descrição detalhada da estrutura de pastas e a arquitetura MVC adotada, consulte o arquivo [`STRUCTURE.md`](./STRUCTURE.md).\n\n## 📝 Licença\n\nEste projeto está licenciado sob os termos da licença [MIT](https://github.com/ricardoandreh/task-tracker-api/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricardoandreh%2Ftask-tracker-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricardoandreh%2Ftask-tracker-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricardoandreh%2Ftask-tracker-api/lists"}