Giter VIP home page Giter VIP logo

simulador-banco's Introduction

Build Status codecov

Simulador de Operações Bancárias

Um projeto de treinamento para preparar o(a) estagiário(a) para que o mesmo consiga desenvolver features reais.

Pré-requisitos

O que você precisa para instalar o software e instalá-lo

Os links dos referidos softwares ensinam como deve ser feita a instalação em casa caso particular.

Link dos testes no postman

Comandos auxiliares para o docker

Após o docker e do docker-compose instalados, é preciso entrar no diretorio do projeto, e executar os seguintes comandos. O primeiro para startar o docker

systemctl start docker.service

Para iniciar os containers utiliza-se o comando, para mais informações sobre o comando

docker-compose up

Para deletar o banco de dados é preciso executar o seguinte comando, é importante lembrar que para ele ser executado é preciso estar no diretorio do projeto.

docker-compose down

Para sair do docker-compose up, é só dar Ctrl+c

Motivação

O projeto tem como objetivo treinar e desenvolver os seguintes tópicos.

  • Maven
  • Git
  • TDD
  • Spring MVC
  • Spring Boot
  • Mock MVC
  • Kotlin
  • Docker-Compose
  • Postgresql
  • Spring Data

Desafio

Objetivo:

Criar um sistema que simule um Banco

Descrição:

O sistema deve permitir cadastrar cliente/conta. Após o cliente cadastrado deve ser possível realizar as seguintes operações:

  • Depósito;
  • Saque;
  • Transferência;
  • Saldo;
  • Extrato.
Regras de négocio
  • O saldo da conta nunca poderá ser negativo;
  • Não pode ser possível realizar saque ou transferência quando o saldo na conta é insuficiente;
  • A conta de destino deve ser válida;
  • O cliente só poderá ter uma conta (validar por CPF por exemplo);
  • Ao criar a conta na resposta de sucesso deverá constar o Id da conta para futuras movimentações;
  • Ao solicitar um extrato, deverá constar toda movimentação da conta, como transferência, depósito e saque;
  • Ao solicitar transferência tanto a conta de destino quanto a de origem devem ser válidas;
  • Não pode ser possível realizar uma transferência para você mesmo, ou seja, conta de origem não pode ser igual a conta de destino;
Requisitos técnicos
  • Os serviços devem ser expostos via REST com as respostas em Json;
  • O gerenciamento das dependências do projeto deve ser feita utilizando Maven;
  • A linguagem utilizada deve ser JAVA/KOTLIN;
  • O sistema deve ser inicializado usando Spring Boot;
  • O projeto deverá estar "commitado" em seu GitHub;
  • A cobertura de testes deve ser de no mínimo 60% (Utilizar o codecov no GitHub);
  • Criar um docker compose para subir um Postgres;
  • Criar o DER (Diagrama de entidade e relacionamento);
  • Criar a persistência no banco Postgres;
  • Separar em módulos (módulo para API, módulo para o Controller, módulo service, módulo para o domain e um módulo para o repository);
  • Migrar para Kotlin, caso o projeto tenha sido desenvolvido em JAVA;
  • Colocar testes integrados para o Controller;
  • Criação das collections no Postman;
  • Criar o README utilizando Markdown com detalhes do projeto, DER, regras de negócio e como inicializar e testar seu projeto;
  • Refactor nos testes;

simulador-banco's People

Contributors

thaynarasilvapinto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.