{"id":27455590,"url":"https://github.com/filipemt/helpdesk","last_synced_at":"2026-04-11T05:35:47.476Z","repository":{"id":286156486,"uuid":"959897702","full_name":"Filipemt/helpdesk","owner":"Filipemt","description":"O sistema de Helpdesk de Chamados de TI permite que usuários registrem problemas técnicos e técnicos possam gerenciá-los e resolvê-los. ","archived":false,"fork":false,"pushed_at":"2025-07-13T23:06:18.000Z","size":144,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-14T01:25:15.546Z","etag":null,"topics":["api-rest","deploy","docker","java","postgres","render","spring","springboot","swagger"],"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/Filipemt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-04-03T14:26:18.000Z","updated_at":"2025-07-13T23:06:22.000Z","dependencies_parsed_at":"2025-07-14T01:03:37.091Z","dependency_job_id":"9612ca4f-8bae-4689-8d65-d94eebfac0ae","html_url":"https://github.com/Filipemt/helpdesk","commit_stats":null,"previous_names":["filipemt/helpdesk_api","filipemt/helpdesk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Filipemt/helpdesk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filipemt%2Fhelpdesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filipemt%2Fhelpdesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filipemt%2Fhelpdesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filipemt%2Fhelpdesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Filipemt","download_url":"https://codeload.github.com/Filipemt/helpdesk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filipemt%2Fhelpdesk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273377143,"owners_count":25094525,"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-09-02T02:00:09.530Z","response_time":77,"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":["api-rest","deploy","docker","java","postgres","render","spring","springboot","swagger"],"created_at":"2025-04-15T16:44:14.390Z","updated_at":"2026-04-11T05:35:47.464Z","avatar_url":"https://github.com/Filipemt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛠️ Deskhelp API\n\n**Deskhelp** é uma API RESTful desenvolvida em Java com Spring Boot, com o objetivo de simular um sistema de helpdesk para abertura, acompanhamento e resolução de chamados de suporte técnico.  \nO projeto tem fins educacionais e demonstra boas práticas de arquitetura, segurança, versionamento e organização de código.\n\n---\n\n## 🚀 Tecnologias e Ferramentas\n\n- Java 17\n- Spring Boot\n- Spring Data JPA\n- PostgreSQL\n- Spring Security (em andamento)\n- Swagger / OpenAPI\n- Git + GitHub Projects\n- Maven\n\n---\n\n## 📁 Estrutura Modular do Projeto\n\nOrganizado por **módulos funcionais**, cada um com suas camadas internas:\n\n```text\nsrc/main/java/br/com/filipecode/DeskhelpApi/\n│\n├── chamado/       # Módulo de chamados (entidade, controller, service, etc)\n├── usuario/       # Usuários e técnicos unificados com controle de papéis (Role)\n├── auditoria/     # Histórico de ações nos chamados\n├── shared/        # Exceções, utilitários e padrões globais\n└── DeskhelpApiApplication.java  # Entry point da aplicação\n```\n\n## 🔐 Segurança\n\n### 🔄 Status atual\n- 🔄 Refatoração para unificação de `Usuario` e `Tecnico`\n- 🔄Criptografia de senha com `BCryptPasswordEncoder`\n- 🔄 Em desenvolvimento: autenticação via Spring Security com JWT\n\n### 🔜 Planejado\n- Autenticação JWT com token Bearer\n- Controle de acesso baseado em `Role` (`USUARIO`, `TECNICO`, `ADMIN`)\n- Proteção de rotas sensíveis\n- Autorização com `@PreAuthorize`\n\n---\n\n## 📌 Sprints de Evolução\n\nEste projeto é organizado em sprints, seguindo um roadmap técnico de implementação.  \nAs tarefas são gerenciadas no **GitHub Projects (Kanban)** e divididas em:\n\n| Sprint | Objetivo principal                            | Status          |\n|--------|-----------------------------------------------|-----------------|\n| Sprint 1 | Refatoração de Usuário e papel (Role)         | ✅ Concluído     |\n| Sprint 2 | Autenticação com Spring Security (sem JWT)    | ✅ Concluído     |\n| Sprint 3 | JWT Token e autenticação stateless            | ✅ Concluído  |\n| Sprint 4 | Autorização baseada em papel (role-based)     | ✅ Concluído     |\n| Sprint 5 | Melhorias avançadas de segurança              | 🔜 Opcional     |\n\n---\n\n## 🧑‍💻 Como rodar o projeto localmente\n\n```bash\n# Clonar o projeto\ngit clone https://github.com/Filipemt/helpdesk.git\n\n# Entrar na pasta do projeto\ncd helpdesk\n\n# Rodar com sua IDE ou usar:\n./mvnw spring-boot:run\n\nCertifique-se de configurar corretamente o banco de dados PostgreSQL e as variáveis de ambiente.\n🧪 Testes de Requisição\n\nA aplicação pode ser testada via:\n\t•\t✅ Postman\n\t•\t✅ Swagger (acessível em /swagger-ui.html após iniciar a aplicação)\n\nExemplos de endpoints:\nGET    /usuarios\nPOST   /usuarios\nPOST   /login\nGET    /chamados\nPOST   /chamados\n...\n```\n## 🧾 Padrões de Contribuição\n\nO projeto segue padrões de organização profissional:\n\n\t•\tNomenclatura de branches: feature/security-refactor-user-role\n\t•\tCommits semânticos: feat:, refactor:, fix:\n\t•\tIssues com labels e checklist\n\t•\tSprint organizada por GitHub Projects\n\nVeja mais detalhes no arquivo CONTRIBUTING.md\n\n⸻\n\n📚 Aprendizados e Propósito\n\nEsse projeto foi construído com o objetivo de aprender de forma prática como aplicar:\n\n\t•\tArquitetura modular por domínio (por feature)\n\t•\tCamadas bem definidas (controller, service, repository, DTOs)\n\t•\tValidações e tratamento de exceções personalizados\n\t•\tImplementação progressiva de segurança com Spring Security\n\t•\tUso de Kanban, issues e boas práticas de versionamento\n👨‍💻 Autor\n\nFilipe – Desenvolvedor Java em formação e entusiasta de arquitetura limpa.\n\nLinkedIn: https://www.linkedin.com/in/filipe-mota-b15139231/\n\n📄 Licença\n\nEste projeto está licenciado sob a MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipemt%2Fhelpdesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilipemt%2Fhelpdesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilipemt%2Fhelpdesk/lists"}