Efficiency Now é uma aplicação Spring Boot projetada para calcular economias de energia ao substituir lâmpadas tradicionais por lâmpadas LED mais eficientes e otimizar o uso de ar condicionados.
- Calcular economias de energia ao substituir lâmpadas fluorescentes, incandescentes e halógenas por lâmpadas LED.
- Calcular consumo de energia e economias para aparelhos de ar condicionado com base em BTU e temperatura.
- Autenticação de usuários utilizando AVL Tree para armazenamento e busca eficiente.
- Java
- Spring Boot
- Gradle
- PostgreSQL
- Docker
- Java 17
- Gradle
- Docker
- PostgreSQL
-
Clone o repositório:
git clone https://github.com/giovannibraaga/efficiencynow.git cd efficiencynow
-
Configure o banco de dados em
src/main/resources/application.properties
:spring.datasource.url=jdbc:postgresql://<seu-url-do-banco>:<porta>/<nome-do-banco>?user=<usuario>&password=<senha> spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-
Build do projeto:
./gradlew build
-
Execute a aplicação:
./gradlew bootRun
Para construir e executar a aplicação usando Docker:
-
Build da imagem Docker:
docker build -t efficiencynow .
-
Execute o contêiner Docker:
docker run -p 8080:8080 efficiencynow
POST /users/login
: Autentica um usuário e retorna um token de sessão.GET /users/profile
: Obtém o perfil do usuário logado.POST /users/logout
: Encerra a sessão do usuário.
POST /lamp-economy/calc
: Calcula a economia total de energia ao substituir lâmpadas fluorescentes, incandescentes e halógenas por lâmpadas LED.
POST /ac-economy/calc-monthly-economy
: Calcula a economia mensal de energia para aparelhos de ar condicionado.
Para contribuir com este projeto, siga os passos abaixo:
- Faça um fork do repositório.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
). - Commit suas mudanças (
git commit -m 'Adiciona nova feature'
). - Faça o push para a branch (
git push origin feature/nova-feature
). - Abra um Pull Request.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.