/Digital-Wallet

Projeto FullStack onde o foco foi estruturar uma aplicação web, dockerizada, cujo objetivo era possibilitar que usuários de uma carteira digital conseguissem realizar transferências internas entre si, bem como outras transações, com as devidas medidas de segurança.

Primary LanguageTypeScript

Boas-vindas ao repositório do projeto Digital Wallet!

Proposta

Estruturar uma aplicação web fullstack, dockerizada, cujo objetivo seja possibilitar que usuários da Digital Wallet consigam realizar transferências internas entre si.

No backend, devem ser implementadas rotas para login, cadastro, conferência de saldo disponível, transfências entre contas e busca por data e/ou entrada e saída de valores.

No frontend, devem ser implementadas telas para login, cadastro e uma tela com seção para realização das transferências, bem como uma tabela com todas as transferências realizadas. Também deve ser possível filtrar por data e/ou entrada e saída de valores.

Configuração
  • Para rodar o projeto, é necessário ter o docker e o docker-compose instalados;
  • npm run compose:up na raiz do projeto para rodar o container;

Backend:

  • npm install na pasta 'backend' para instalar as dependências;
  • npm run db:reset na pasta 'backend' se quiser resetar o banco de dados;
  • npm run dev na pasta 'backend' se quiser rodar o servidor em modo de desenvolvimento;
  • O projeto está configurado para rodar na porta http://localhost:3001/.
  • Uma documentação do projeto em backend está disponível em https://documenter.getpostman.com/view/21539124/2s8YmSrL7v.

Frontend:

  • npm install na pasta 'frontend' para instalar as dependências;
  • npm start na pasta 'frontend' se quiser rodar o projeto em modo de desenvolvimento;
  • O projeto está configurado para rodar na porta http://localhost:3000/.

Testes:

  • npm run test na pasta 'backend' para rodar os testes.

Banco de dados:

  • Alguns usuários, contas e transações já foram criadas nos seeders.
Exemplos:
  • username: Fabio

  • password: 123Senha

  • username: Joao

  • password: 123Senha

Tecnologias utilizadas

Geral:

  • Docker
  • Docker Compose

Backend:

  • Node.js
  • TypeScript
  • Express
  • Sequelize
  • PostgreSQL
  • JWT
  • BCrypt
  • Postman

Frontend:

  • React
  • Context
  • Styled Components

Testes:

  • Chai
  • chaiHttp
  • Sinon
  • Mocha