GithubHelp home page GithubHelp logo

on21-imersao-js-s7-projeto-oop's Introduction

logo reprograma

Tema da Aula

Turma Online 21 - Imersão JavaScript | Semana 7 | 2022 | Professora Ana Morita

Instruções

Antes de começar, vamos organizar nosso setup.

  • Fork esse repositório
  • Clone o fork na sua máquina (Para isso basta abrir o seu terminal e digitar git clone url-do-seu-repositorio-forkado)
  • Entre na pasta do seu repositório (Para isso basta abrir o seu terminal e digitar cd nome-do-seu-repositorio-forkado)
  • [Add outras intrucoes caso necessario]

Objetivo

Praticar os conceitos de OO e TDD aprendidos nas aulas anteriores

Módulo 7 - Projeto Prático OO

Objetivo: Projeto com foco em design de classes. Iniciar as funcionalidades do zero, pensando em como modelar os objetos e como separar os métodos de forma a aplicar os quatro pilares da POO, podendo também aplicar o padrão de composição em vez de herança se for o caso.

Orientações

O objetivo do projeto é utilizar o que foi aprendido em OO e em testes. Todas as entregas devem ter minimamente testes unitários e contemplar as funcionalidades essenciais do sistema. Nesse projeto, as alunas não devem se preocupar com casos de borda, implementação de interfaces, nem com autenticação/autorização.

Sistema Bancário

Você foi contratado para fazer uma versão inicial de um sistema bancário. Nessa versão o sistema conta com as seguintes funcionalidades:

  • cadastro de clientes de acordo com a categorização do tipo de conta
  • cadastro de chave pix (email, telefone e cpf)
  • transações permitidas:
    • saque
    • transferência
    • pix
    • depósito

Clientes

Os clientes do nosso banco são divididos de acordo com a sua renda mensal em 3 categorias de conta:

Standard

Clientes com conta standard são os clientes base do banco, são pessoas com até R$4999,99 de renda mensal. Eles também tem limite de transação de 1000 reais por dia.

Gold

Clientes com conta Gold são so clientes intermediários do banco com renda mensal de R$5000,00 até R$17.999,99. Eles também tem limite de transação de 5000 reais por dia.

Premium

Clientes com conta premium são aqueles que possuem renda mensal a partir de R$18.000,00. Eles não tem limite de transação por dia.

Operações

As transações permitidas por nosso banco no momento são: Lembrar que para todas as transações é necessário verificar se o cliente possui saldo disponível para realizá-la.

PIX

Podemos cadastrar chaves pix para nossos clientes, no momento apenas chaves de e-mail, telefone e cpf para simplificar nosso exercício. Com as chaves pix é possível transferir dinheiro para outra conta de nosso banco. Para realizar a transação é necessário ter a chave pix de quem irá receber e o valor a ser transferido via pix.

Saque

O cliente pode optar por sacar dinheiro em uma dos nossos caixas eletrônicos e para isso basta solicitar o saque e o valor a ser retirado.

Transferência

Temos também a opção por transferência, para realizar esta operação é necessário ter a conta do banco do destinatário, CPF e valor a ser transferido.

Depósito

O cliente também pode depositar dinheiro em sua conta, passando apenas o valor a ser depositado.


Links Úteis

Desenvolvido com 💜

on21-imersao-js-s7-projeto-oop's People

Contributors

anabemorita avatar analuizasampaio avatar

Watchers

 avatar  avatar  avatar

on21-imersao-js-s7-projeto-oop's Issues

Como fazer um campo dinâmico

Prof, eu refiz o create PixKey e queria fazer um campo dinâmico, ao invés de usar o switch , colocar a linha this.pixKeys.email = KeyValue; como this.pixKeys.KeyType = KeyValue; mais não consegui , tentei de diversas formas , criei uma const variavel = this.pixKeys.${KeyType} e tbm não funcionou. Seria possivel?

createPixKey(KeyValue, KeyType) {
if (this.validatePix(KeyValue, KeyType))
{
switch(KeyType){
case 'email' :
this.pixKeys.email = KeyValue;
return Chave pix ${KeyType} criado com sucesso.;
case 'cpf':
this.pixKeys.cpf = KeyValue;
return Chave pix ${KeyType} criado com sucesso.;
case 'telefone':
this.pixKeys.telefone = KeyValue;
return Chave pix ${KeyType} criado com sucesso.;
default:
return "Tipo de chave inexistente";

  }
}
 else
 { return "Tipo de chave inexistente"; }

}

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.