O Environmental Reporting Portal é uma Aplicação Web robusta (API REST + Interface), para um Portal de Denúncias Ambientais, que permite reportar situações que prejudicam o meio ambiente. Sua API REST construída em Java e Ecossistema Spring, prioriza código limpo e implementação de princípios SOLID, além de Design Patterns para criar um software flexível, escalável e de fácil manutenção. A interface feita com HTML, CSS e Javascript é amigável e intuitiva para proporcionar maior usabilidade ao usuário. Utiliza tecnologias como MongoDB, JWT, JUnit, Mockito e log4j2 para garantir a qualidade e eficiência do sistema.
Assista ao vídeo demonstrativo: https://youtu.be/aoaOdXzpXEY
O Environmental Reporting Portal foi utilizado para o funcionamento do projeto ECOAR (Espaço de Concientização e Ação Ambiental Responsável). O sistema foi apresentado na 7º Engetec – Encontro de Gestão e Tecnologia, um evento científico organizado e sediado pela FATEC Zona Leste (Faculdade de Tecnologia da Zona Leste)
Este software visa resolver a falta de um canal seguro, eficiente e organizado para a denúncia e o monitoramento de problemas ambientais, proporcionando uma plataforma acessível para cidadãos e autoridades reportarem e acompanharem questões que afetam o meio ambiente, como poluição e infrações ambientais, com funcionalidades que garantem transparência, segurança e gestão eficaz das denúncias.
- Login seguro com JWT.
- Postagem de denúncias com fotos.
- Cadastro de Usuários e Administradores.
- Opção de comentar postagens de denúncias.
- Envio de e-mail ao usuário com atualizações de status.
- Classificação das denúncias por gravidade, tipo e status.
- Relatórios gráficos para acompanhamento de estatísticas.
Diagrama Entidade-Relacionamento
Back-end:
- Java 17
- Spring Boot
- Spring Data MongoDB
- Spring Security
- JWT
- Junit
- Mockito
Front-end:
- HTML5
- CSS3
- Javascript
- Charts.js
Banco de Dados:
- MongoDB
- MongoDB Compass
Documentação da API: a documentação completa da API pode ser acessada localmente ao executar a aplicação e visitar http://localhost:8080/api/v1/swagger-ui/index.html#. Esta interface interativa, gerada pelo Swagger, fornece detalhes sobre cada endpoint, parâmetros de solicitação, respostas esperadas e exemplos práticos de uso.
Siga as etapas abaixo para configurar e executar o projeto Java com Spring localmente:
-
Certifique-se de ter o Java 17 JDK instalado. Caso não tenha, faça o download e a instalação a partir do site oficial da Oracle.
-
Clone o repositório do projeto:
git clone https://github.com/rogeriobgregorio/environmental-reporting-portal
- Acesse o diretório do projeto:
cd environmental-reporting-portal
- Execute o projeto:
./mvnw spring-boot:run
Caso prefira, abra o projeto em uma IDE, como IntelliJ por exemplo, e execute o projeto.
Após concluir essas etapas, o seu servidor Spring estará em execução localmente na porta 8080.
A interface para consumir a API esta localizada na pasta "front-end".
-
Abra a página index.html no browser utilizando um servidor, como live server por exemplo.
-
Importante: você deve atribuir valores nas variáveis de ambiente do projeto JWT_SECRET e PASSWORD_SECRET.
-
Para logar como administrador utilize o usuário [email protected], a senha será o valor que você atribui à variável PASSWORD_SECRET no passo anterior.
-
Spring Framework: consulte a documentação oficial do Spring Framework para obter informações detalhadas sobre o framework utilizado no backend. Esta referência abrange conceitos fundamentais, configurações avançadas e as melhores práticas recomendadas pela comunidade Spring.
-
Charts.js: biblioteca de JavaScript utilizada para a criação de gráficos interativos e visualizações de dados em páginas web. Popular devido à sua simplicidade de uso e ao fato de ser baseada em HTML5 canvas, o que permite gerar gráficos em tempo real, mesmo em dispositivos móveis.
-
Swagger Documentation: o Swagger é integrado à API para facilitar a compreensão e interação. Obtenha mais informações sobre o Swagger em https://swagger.io/.
- Linkedin: linkedin.com/in/rogeriogregorio
- Email: [email protected]