Minhas finanças

Requisitos

  • Java 8+

  • Utilizar Maven ou Gradle

  • Seguir os padrões REST

  • Banco de dados H2

  • Descrever as instruções para rodar o projeto no README.md

  • Utilizar Git

  • Utilizar Springboot versão 2.1.0

Avaliação

  • Clean Code

  • Implementação da especificação

  • README.md bem escrito

  • Commits bem escritos

Importante, nessa ordem:

  • Criar testes automatizados (teste unitário e teste de integração)

  • Fazer uso de bibliotecas auxiliares

  • CircleCI ou TravisCI

  • Documentar a API com Swagger

Especificação

Criar uma API Rest que ira gerenciar as finanças dos seus usuários. A API deve conter endpoints para:

  • Criar um usuário

  • Visualizar todos os usuários

  • Ver detalhes de um usuário

  • Criar um lançamento financeiro

  • Buscar todos os lançamentos de um determinado usuário

  • Buscar um determinado lançamento pelo usuário e pelo id

  • Criar entidades para um usuário

  • Visualizar entidades de um usuário

  • Criar contas para um usuário

  • Visualizar todas as contas de um usuário

  • Visualizar uma determinada conta de um usuário

  • Visualizar todos os lançamento de uma determinada conta de um determinado usuário

  • Baixar uma determinada conta de um determinado usuário

  • Estornar uma determina conta de um determinado usuário

Endpoints

Usuários

Criar usuário

POST http://localhost:8080/financas/usuario

Request Body

Name
Type
Description

object

{ "nome": "Exemplo", "email": "exemplo@exemplo.com", "status": "ATIVO" }

Buscar todos os usuários

GET http://localhost:8080/financas/usuario

Buscar usuário por id

GET http://localhost:8080/financas/usuario/:id

Lançamento Financeiro

Um lançamento financeiro pode ser:

  • A Pagar

  • A Receber

Criar um lançamento financeiro

POST http://localhost:8080/financas/usuario/:id/entidade/:id/lancamento

Request Body

Name
Type
Description

object

{ "descricao": "Lanchonete", "observacao": "Esqueci o cartão", "valor": 16.50, "tipo": "RECEBER" }

Buscar todos os lançamentos de um usuário

GET http://localhost:8080/financas/usuario/:id/lancamento

Buscar um lançamento por id

GET http://localhost:8080/financas/usuario/:id/lancamento/:id

Entidade

Uma entidade pode ser do tipo:

  • Cliente

  • Fornecedor

Criar uma entidade

POST http://localhost:8080/financas/usuario/:id/entidade

Path Parameters

Name
Type
Description

object

{ "nome": "Advocacia S.A", "tipo": "FORNECEDOR" }

Buscar todas as entidades de um usuário

GET http://localhost:8080/financas/usuario/:id/entidade

Buscar entidade por id

GET http://localhost:8080/financas/usuario/:id/entidade:id

Conta

Criar uma conta

POST http://localhost:8080/financas/usuario/:id/conta

Request Body

Name
Type
Description

string

{ "nome": "Banco do Brasil" }

Buscar todos os lançamento de uma conta

GET http://localhost::8080/financas/usuario/:id/conta/:id/lancamentos

Path Parameters

Name
Type
Description

string

Buscar todas as contas de um usuário

GET http://localhost:8080/financas/usuario/:id/conta

Buscar conta por id

GET http://localhost:8080/financas/usuario/:id/conta/:id

Baixar um lançamento

POST http://localhost:8080/financas/usuario/:id/conta/:idconta/:idlancamento?do=baixar

Path Parameters

Name
Type
Description

do

string

Baixar

Estornar um lançamento

POST http://localhost:8080/financas/usuario/:id/conta/:idconta/:idlancamento?do=estornar

Path Parameters

Name
Type
Description

string

Last updated

Was this helpful?