Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/danilomeneghel/fluxo-caixa

Desafio Fluxo de Caixa
https://github.com/danilomeneghel/fluxo-caixa

docker docker-compose h2-database java-17 junit5 lombok maven mockito model-mapper mysql-database spring-boot spring-data-jpa spring-rest-api swagger-ui

Last synced: about 22 hours ago
JSON representation

Desafio Fluxo de Caixa

Awesome Lists containing this project

README

        

# 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.

http://localhost:8000

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 -p

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

![Screenshots](diagrama_er.png)

## Licença

Projeto licenciado sob The MIT License (MIT).

Desenvolvido por

Danilo Meneghel

[email protected]

http://danilomeneghel.github.io/