{"id":20168246,"url":"https://github.com/projetoargus/argusapi","last_synced_at":"2025-04-10T01:52:13.914Z","repository":{"id":261119451,"uuid":"883285518","full_name":"ProjetoARGUS/ArgusAPI","owner":"ProjetoARGUS","description":"API do backend da aplicação ARGUS, construída como projeto de conclusão de curso do programa START.","archived":false,"fork":false,"pushed_at":"2024-11-13T02:29:44.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-13T03:25:04.000Z","etag":null,"topics":["apache","api","api-rest","docker","java","junit","maven","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProjetoARGUS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-11-04T17:40:24.000Z","updated_at":"2024-11-05T02:42:46.000Z","dependencies_parsed_at":"2024-11-04T20:25:32.137Z","dependency_job_id":"5544d369-b64f-4123-b644-010d9dabd197","html_url":"https://github.com/ProjetoARGUS/ArgusAPI","commit_stats":null,"previous_names":["projetoargus/argusapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjetoARGUS%2FArgusAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjetoARGUS%2FArgusAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjetoARGUS%2FArgusAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjetoARGUS%2FArgusAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProjetoARGUS","download_url":"https://codeload.github.com/ProjetoARGUS/ArgusAPI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224547312,"owners_count":17329426,"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":["apache","api","api-rest","docker","java","junit","maven","spring-boot","spring-security"],"created_at":"2024-11-14T01:07:01.823Z","updated_at":"2024-11-14T01:07:02.816Z","avatar_url":"https://github.com/ProjetoARGUS.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API ARGUS: Gerenciamento de Condomínios\n---\n\nEste repositório contém o código fonte da API RESTful para o backend da aplicação ARGUS, um sistema de gerenciamento de condomínios desenvolvido como projeto de conclusão de curso do programa START.\n\n### Funcionalidades:\n\n- Gerenciamento de Usuários: Cadastro, autenticação, atualização de dados, gerenciamento de permissões\n- Gerenciamento de Condomínios: Cadastro, atualização, exclusão de dados\n- Comunicação: Envio de comunicados, gerenciamento de mensagens, notificações\n- Reservas: Realização de reservas de espaços comuns, aprovação e controle de reservas\n- Ocorrências: Registro de ocorrências no condomínio, acompanhamento de status\n- Votações: Criação de sessões de votação, registro de votos, visualização de resultados\n- Gerenciamento de Áreas Comuns: Cadastro, atualização e exclusão de áreas comuns.\n\n### Tecnologias:\n\n- Spring Boot: Framework Java para desenvolvimento de aplicações web.\n\n- Spring Data JPA: Framework para acesso a bancos de dados relacionais.\n\n- Spring Security: Framework para segurança de aplicações web.\n\n- JWT (JSON Web Token): Protocolo para autenticação e autorização\n\n- AMQP (Advanced Message Queuing Protocol): Protocolo para comunicação assíncrona, com suporte a RabbitMQ.\n\n- Java 17: Linguagem de programação Java, versão 17.\n\n- Docker: O Docker é uma plataforma de software que permite aos desenvolvedores criar, testar e implantar aplicações de forma rápida e eficiente. Em termos simples, ele oferece um ambiente isolado e consistente para suas aplicações, garantindo que elas funcionem da mesma forma em qualquer lugar, seja no seu computador, em um servidor ou na nuvem.\n\n- Junit: O JUnit é um framework de testes para a linguagem de programação Java. Ele é usado para escrever e executar testes automatizados para garantir a qualidade do código. Pense nele como um conjunto de ferramentas que ajudam você a verificar se seu código está funcionando como esperado.\n\n## Modelagem de dados \n\n```mermaid\nerDiagram\n  Usuario ||..|{ Notificacao : \"recebe notificacao\"\n  Usuario ||..|{ Ocorrencia : \"cria ocorrencia\"\n  Usuario ||..|{ Reserva : \"faz reserva\"\n  Usuario ||..|{ Voto : \"realiza voto\"\n  Comunicado }|..|{ Notificacao : \"gera notificacao\"\n  Areas }|..|{ Notificacao : \"gera notificacao\"\n  Reservas }|..|{ Notificacao : \"gera notificacao\"\n  Areas }|..|{ Reserva : \"reserva area\"\n  Areas }|..|{ Ocorrencia : \"ocorre em area\"\n  Condominio }|..|{ SessaoVotacao : \"realiza votacao\"\n  SessaoVotacao }|..|{ Voto : \"vota em sessao\"\n  Condominio }|..|{ Usuario : \"pertence ao condominio\"\n  Condominio }|..|{ Areas : \"possui areas\"\n\n  Usuario {\n    string id\n    string completeName\n    string cpf\n    string senha\n    string telefone\n    date dt_nascimento\n    string sexo\n    string userType\n    string bloco\n    string apartamento\n    string logradouro\n    datetime ultimo_acesso\n    datetime ultima_troca_de_senha\n    int FK_condominio_id\n  }\n\n  Condominio {\n    string id\n    string nome\n    string endereco\n  }\n\n  Areas {\n    string id\n    string nome\n    string descricao\n    string disponibilidade\n    int id_condominio\n  }\n\n  Comunicado {\n    string id\n    string titulo\n    string mensagem\n    datetime data_criacao\n    int id_usuario\n  }\n\n  Notificacao {\n    string id\n    string titulo\n    string mensagem\n    datetime data_evento\n    string recorrencia\n    int id_usuario\n    int id_comunicado\n    int id_area\n    int id_reserva\n  }\n\n  Ocorrencia {\n    string id\n    string titulo\n    string descricao\n    string tipo\n    string status_aprovacao\n    string status_resolucao\n    datetime data_criacao\n    int id_usuario\n    int id_area\n  }\n\n  Reserva {\n    string id\n    datetime data_reserva\n    datetime data_criacao\n    int id_usuario\n    int id_area\n  }\n\n  SessaoVotacao {\n    string id\n    string titulo\n    string descricao\n    datetime dt_inicio\n    datetime dt_fim\n    int id_condominio\n  }\n\n  Voto {\n    string id\n    string escolha\n    datetime data\n    int id_sessaoVotacao\n  }\n\n```\n\n## Documentação:\n\nA documentação completa da API está disponível no nosso Notion, com descrições mais detalhadas sobre o nosso processo, desde a ideação até o desenvolvimento: [Notion da ARGUS](https://www.notion.so/ARGUS-Memorial-de-Desenvolvimento-1135144534ed804b81bcf1912b0613e7?pvs=4)\n\n### Sobre o Cronograma e a arquitetura\n\nAtualmente estamos trabalhando com o seguinte cronograma:\n\n```mermaid\ngantt\n  title Cronograma de Desenvolvimento dos CRUDs\n  dateFormat  YYYY-MM-DD\n  section CRUDs\n  Usuários e Condominios: 2024-11-01, 1d\n  Comunicados: 2024-11-02, 1d\n  Áreas e Reservas: 2024-11-03, 1d\n  Notificações: 2024-11-04, 1d\n  Sessão de Votação e Voto: 2024-11-05, 1d\n\n```\n\nEsse cronograma pode sofrer alterações, seja por conta de atrasos ou por conta da necessidade da adição de novas funcionalidades.\n\nPara ter uma visão mais clara da arquitetura do projeto, acesse esse diagrama: [ARQUITETURA](./docs/Arquitetura.md)\n\n## Como Executar:\n\n### Como instalar o Java Development Kit\n\n1. Acesse a página do download:\n\n    [DONWLOAD O JDK17](https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.exe)\n\n    Esse arquivo já é um instalador padrão para o Windows, então é só seguir com o passo a passo da instalação.\n\n### Como instalar o Apache Maven\n\n1. Baixe o arquivo compactado do Maven\n\n    É só acessar esse link aqui: [DOWNLOAD DO .zip DO MAVEN](https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip)\n\n2. Escolha uma pasta onde descompactar o arquivo .zip\n\n    Pode ser qualquer pasta, mas é bom ter um local adequado, eu recomendo deixar dentro da pasta de arquivos de programas do seu computador (C:\\Program Files\\Maven\\apache-maven-3.9.9)\n\n3. Acrescentando o Maven nas variáveis de ambiente do sistema\n\n    Vá no seu menu iniciar e pesquise por \"Sistema\", dentro das configurações do sistema procure pela opção \"Configurações avançadas do sistema\". Uma nova janela se abrirá e nela você deve procurar pela opção \"Variáveis de ambiente\", uma nova janela deverá se abrir.\n\n    Na seção inferior da nova janela ficarão as variáveis de ambiente para o seu computador, parte de cima ficam as variáveis somente para o seu usuário atual, você deve procurar pela variável \"Path\" e editá-la. No menu de edição, selecione \"Novo\" e cole o endereço até a pasta \"bin\" do Maven. Para mim ficou dessa forma \"C:\\Program Files\\Maven\\apache-maven-3.9.9\\bin\".\n\n    Depois disso teste a instalação usando o comando a seguir no terminal:\n\n    ```\n    mvn -v\n    ```\n\n### Clone este repositório:\n\n1. Escolha uma pasta para armazenar o projeto e use esse comando, caso você já possua o git instalado:\n\n```\ngit clone https://github.com/ProjetoARGUS/ArgusAPI.git\n```\n\n2. Acesse o diretório do projeto:\n\n```\ncd ArgusAPI\n```\n\n\n3. Execute o comando a seguir para testar se está tudo certo com a aplicação:\n\n```\nmvn test\n```\n\n4. Execute este comando para rodar o projeto:\n\n```\nmvn spring-boot:run\n```\n---\n\n## Como Contribuir\n\nAgradecemos o seu interesse em contribuir com o projeto ARGUS! Se você deseja participar do desenvolvimento, siga os passos abaixo:\n\n1. Fork do Projeto:\n\n   Acesse o repositório do projeto no GitHub: [API-PROEJTO-ARGUS](https://github.com/ProjetoARGUS/ArgusAPI/).\n\n   Clique no botão \"Fork\" no canto superior direito da página.\n   Agora você possui uma cópia do repositório em sua própria conta do GitHub.\n\n2. Para fazer o clone do Projeto abra seu terminal e execute o comando:\n\n```\ngit clone https://github.com/ProjetoARGUS/ArgusAPI.git\n```\n\nIsso criará uma cópia local do projeto em seu computador.\n\n3. Faça o Commit de Mudanças:\n\n   Edite os arquivos do projeto e faça as suas alterações.\n\n   Adicione as alterações ao staging area:\n\n```\ngit add [nome dos arquivos alterados]\n```\n\nOu então faça dessa forma para colocar todo os arquivos modificados na sessão de staged:\n\n```\ngit add .\n```\n\nFaça um commit das alterações:\n\n```\ngit commit -m \"[descrição concisa das suas alterações]\"\n```\n\n4. Crie um Pull Request:\n\n   Acesse o repositório do projeto em sua própria conta do GitHub.\n\n   Vá até a branch onde você fez as alterações.\n\n   Clique no botão \"New pull request\".\n\n   Compare sua branch com a branch \"main\" do repositório original.\n\n   Insira uma descrição detalhada de suas alterações no pull request.\n\n   Clique em \"Create pull request\".\n\n### Observações:\n\n1. Revise seu código antes de enviar um pull request: Verifique se as alterações estão funcionando corretamente e se seguem os padrões de codificação do projeto.\n2. Siga as diretrizes de contribuição: Se houver diretrizes específicas para o projeto, siga-as cuidadosamente.\n3. Seja paciente: O processo de revisão de pull requests pode levar algum tempo.\n\n*Agradecemos a sua contribuição!* 🎉\n\n-----\n\n## Licença:\n\n[GNU General Public License v3.0](./LICENSE.md)\n\nEquipe de Desenvolvimento:\n\n- Ailton Francisco da Silva Neto\n- Breno do nascimento santos\n- Derick Germano de Oliveira\n- Francisco Macedo de Santiago Neto\n- Luan carlos wanderley da silva\n- Ronaldo Rodrigues de Moura Júnior\n\n---\n\n## Agradecimentos:\n\nAgradecemos ao programa START pela oportunidade de desenvolver este projeto.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojetoargus%2Fargusapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojetoargus%2Fargusapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojetoargus%2Fargusapi/lists"}