Esse projeto foi desenvolvido com as seguintes tecnologias:
- Node.js
- ExpressJS
- Docker
- PostgreSQL
- TypeORM
- TSyringe (Injeção de dependência)
- Celebrate (Validation)
- Jest
O Ekki surgiu depois que a área de produto chegou à conclusão, após fazer diversas pesquisas com usuários, que é necessário criar uma aplicação web para reter seus clientes, onde seja possível transferir dinheiro para outras pessoas de forma fácil, objetiva e sem taxas.
- Ter o NodeJS (>=12) instalado;
- Tenha o Docker instalado;
- Execute o comando para criação do banco de dados
docker run --name ekki_pg -e POSTGRES_DB=ekki -e POSTGRES_USER=ekki -e POSTGRES_PASSWORD=ekki -p 5432:5432 -d postgres
; - Execute as migrations para criação das tabelas
yarn migration:run
; - Executa os seeds para popular o banco de dados
yarn seed:run
;
- Faça um clone desse repositório;
- Entre na pasta
cd ekki
; - Rode
yarn
dentro das pastasbackend
efrontend
para instalar as dependências ; - Na pasta
backend
executeyarn dev:server
pra iniciar o servidor de desenvolvimento; - Na pasta
frontend
executeyarn start
pra iniciar o servidor de desenvolvimento;
- Entre na pasta
backend
; - Para testes unitários, execute
yarn test:unit
;
- Na pasta
backend/docs
, está o arquivoInsomnia.json
; - Importe no Insomnia para realizar testes, se necessaário;
GET /:user_id
- Busca o usuário pelo id.
- Utilizado no frontend para buscar o usuário inicial com id fixo.
POST /
- Cadastra usuários na aplicação.
- Body: { cellphone, cpf, name, user_id? }
- Caso o user_id for informado, será cadastrado como favoricido deste usuário, senão, será criado apenas um usuário.
- Quebra do SOLID? 🧐🤨
PUT /:user_id
- Atualiza CPF, telefone e nome.
- Body: { cellphone, cpf, name }
GET /:user_id?page=1&per_page=10
- Busca todos os favorecidos do usuário.
- Parâmetros: { page, per_page }
POST /
- Inclui um favorecido na lista do usuário.
- Body: { beneficiary_id, user_id }
- Não está sendo usando pelo frontend.
DELETE /:user_id
- Remove um favorecido da lista do usuário.
GET /:user_id?page=1&per_page=10
- Busca todos as transferências do usuário.
- Parâmetros: { page, per_page }
POST /
- Realiza transferência do usuário para um favorecido.
- Body: { receive_account_number, receive_user_id, send_account_number, send_user_id, value }
Backend
- Cobrir mais cenários nos testes unitários;
- Utilizar a biblioteca faker.js para gerar valores para os testes;
- Criar testes de integração para o backend;
Frontend
- Criar componente próprio de modal;
- Criar input mask para valor da transferência;
- É criado pela lib SweetAlert e houve problemas com a customização do input
- Após a criação do modal, criar o próprio input e assim adicionar uma mask nele)
- Criar loading para utilizar nos elementos que buscam dados da API;
- Isolar botões em um componente;
- Isolar paginação em um componente;
- Criar testes E2E para o frontend;
Feito com ♥ por João Gabriel 👋