Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafios DIO de Sistema Bancario

Este workspace agora contem duas entregas diferentes do tema bancario:

  1. Uma versao em console com programacao orientada a objetos.
  2. Uma API bancaria assincrona com FastAPI e autenticacao JWT.

Projeto 1: sistema bancario em console

Arquivo principal: sistema_bancario.py

Funcionalidades

  • Cadastro de clientes
  • Criacao de contas correntes
  • Deposito
  • Saque com limite por operacao e quantidade de saques
  • Extrato
  • Listagem de contas

Como executar

python sistema_bancario.py

Ou, no Windows com o ambiente virtual deste projeto:

c:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe sistema_bancario.py

Projeto 2: API bancaria assincrona com FastAPI

Entrada da aplicacao: api/main.py

Recursos implementados

  • Cadastro de usuario com CPF e senha
  • Login com JWT
  • Criacao e listagem de contas do usuario autenticado
  • Deposito e saque com validacoes de saldo, limite por saque e quantidade maxima de saques
  • Consulta de transacoes e extrato por conta
  • Documentacao automatica em /docs

Estrutura da API

  • api/main.py: inicializacao da aplicacao FastAPI
  • api/domain.py: entidades e regras de negocio
  • api/storage.py: armazenamento em memoria
  • api/auth.py: hash de senha e tokens JWT
  • api/schemas.py: modelos de entrada e saida
  • api/routes/: rotas da API

Instalar dependencias

c:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe -m pip install -r requirements.txt

Executar a API

c:/Users/moise/OneDrive/Documentos/Dio/.venv/Scripts/python.exe -m uvicorn api.main:app --reload

Fluxo sugerido de teste

  1. Acesse http://127.0.0.1:8000/docs.
  2. Use POST /auth/register para cadastrar um usuario.
  3. Use POST /auth/login com username=CPF e password=senha.
  4. Copie o access_token retornado e clique em Authorize na documentacao.
  5. Crie uma conta com POST /accounts/.
  6. Execute deposito, saque e consultas de extrato.

Observacoes

  • A API usa armazenamento em memoria para simplificar a entrega.
  • Ao reiniciar o servidor, os dados cadastrados serao perdidos.
  • O projeto em console foi mantido intacto como referencia do desafio anterior.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages