Desafio Fluxo de Caixa
Desenvolvimento de uma simples API REST para controle de Fluxo de Caixa.
Recursos
- Cadastro, alteração e exclusão de Produto
- Listagem de Produtos
- Cadastro, alteração e exclusão de Lançamento
- Listagem de Lançamentos
- Visualização de Saldo
Características
- CRUD
- API REST
- Validation
- Exception
- Enum
Requisitos
- Java JDK 17
- Apache Maven >= 3.8.6
- MySql 8
- Docker (Opcional)
Tecnologias
- Java
- JPA
- Maven
- Spring
- Lombok
- Model Mapper
- H2
- Swagger
- JUnit
- Mockito
- Docker
Instalação
Docker
Para rodar o projeto via Docker-Compose, basta executar o comando:
$ docker-compose up
Aguarde baixar as dependências e carregar todo o projeto, esse processo é demorado.
Caso conclua e não rode pela primeira vez, tente novamente executando o mesmo comando.
Aguarde carregar todo o serviço web.
Após concluído, digite o endereço abaixo em seu navegador.
Para encerrar tudo digite:
$ docker-compose down
OBS: É necessário ter o Docker e docker-compose instalado. Caso não tenha instalado o Docker ou dê alguma falha na instalação, tente com os comandos abaixo.
MySql
Crie um banco de dados com o nome "fluxocaixa" no seu Mysql.
Abra o arquivo .env e efetue a configuração correta para conexão do seu banco de dados.
$ mysql -u<seu usuário> -p<sua senha>
mysql> create database `fluxocaixa`;
Maven
Para rodar o projeto com Maven, é necessário ter a versão 3.8.6 instalada.
Além disso, é preciso ter o Java 17 e o MySql 8 instalado.
Tendo tudo instalado e rodando localmente, basta executar o seguinte comando:
$ git clone https://github.com/danilomeneghel/fluxo-caixa.git
$ cd fluxo-caixa
$ mvn clean spring-boot:run -Dspring-boot.run.profiles=dev
Swagger
Documentação da API REST:
http://localhost:8000/swagger-ui.html
Testes
Para realizar os testes unitários, execute o seguinte comando no terminal:
$ cd fluxo-caixa
$ mvn test
Diagrama ER
Licença
Projeto licenciado sob The MIT License (MIT).
Desenvolvido por
Danilo Meneghel
danilo.meneghel@gmail.com
http://danilomeneghel.github.io/