Sobre • Diferencial • Instruções para rodar a aplicação • End Points • License
Estruturar uma aplicação web Fullstack, Dockerizada, cujo objetivo seja possibilitar que usuários consiga realizar transferências, visualizar o saldo da sua conta e fazer filtragem das transações por tipo e data da transação.
🖥️ Tecnologias Utilizadas no Backend
- Node.js
- Express
- Typescript
- PostgresSql
- Docker
- Jsonwebtoken
- Swagger
- Zod
- Cors
- Bcrypt
- ESLint
🖥️ Tecnologias Utilizadas no FrontEnd
- React js
- Typescript
- Styled components
- Docker
- Axios
- Yup
- React hook form
- React toastfy
- Phosphor React
- ESLint
Essa é a minha Obra Prima, me dediquei muito a construir o backend e front-end, e ele foi feito com perfeição, usando um único handler de erro capaz de administrar erros de vários tipos, foi feito completamente em Typescript pensando em escalabilidade, todo código é extremamente legível e resumido, todas as funções são bem ferramentadas por necessidade, toda estrutura do Back-end feita em MSC é pensada para o código principal só rodar depois de todas as validações passarem, de fato, uma obra de arte.
Este projeto é divido em duas partes:
- Backend (API)
- Frontend
💡O Backend deve estar rodando em sua máquina para que o frontend seja renderizado
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode
Será necessário que a porta 3000 e 3001 estejam disponíveis para a aplicação, Postgresql usará a porta 5432
1 - Clone o repositório em uma pasta de sua preferencia
$ git clone [email protected]:JoaoAlberto20/transfer-ngcash.git
$ cd transfer-ngcash
2 - E suba o dockercompose, todas as depêndencias serão automaticamente instaladas
## este comando ira derrubar todas aplicações node no seu dispositivo recomendo rodar ele para continuar o processo
$ killall node
$ npm run compose:up:dev // para subir a aplicação
3 - E entra na terminal do backend e rode o seguinte comando para subir as migrations
$ docker exec -it backend bash
$ npx prisma migrate dev
$ exit // este comando é pra sair do terminal do docker
4 - Após rodar os comando, aguarde um pouco que a aplicação irá ficar disponivel nas seguintes rotas:
- Front End: http://localhost:3000
- Back End: http://localhost:3001
- Back End documentação : http://localhost:3001/api-docs
5 - E para parar a aplicação por completo rode o seguinte comando
$ npm run compose:down:dev
Método | Funcionalidade | URL |
---|---|---|
POST |
Realiza o login do usuário | http://localhost:3001/users |
GET |
Verifica se o usuário possui um token valido | http://localhost:3001/users |
Nessa requisição POST é necessário informar o seguinte JSON:
{
"username": "Username do usuário",
"password": "senha_secreta"
"confirmPassword": "e confirmação da senha_secreta"
}
Método | Funcionalidade | URL |
---|---|---|
POST |
Realiza o login do usuário | http://localhost:3001/login |
Nessa requisição POST é necessário informar o seguinte JSON:
{
"username": "Username do usuário",
"password": "senha_secreta"
}
Método | Funcionalidade | URL |
---|---|---|
GET |
Retorna o balanço da conta do usuário | http://localhost:3001/balance |
Método | Funcionalidade | URL |
---|---|---|
POST |
Criação de uma transação | http://localhost:3001/transactions |
GET |
Retorna todos as transações que o usuário participou | http://localhost:3001/transactions |
GET |
Filtra as transação por tipo e/ou data da transação | http://localhost:3001/transactions/filter?type=type&date=date |
Nessa requisição POST é necessário informar o seguinte JSON:
{
"username": FulanoDeTal, // Esse valor e referente para qual usuário que você ira enviar a transação
"value": 25.25, // O valor da transação deve ser em decimal ou Inteiro.
}
e na requisição GET para FILTRAR as transações você deve passar as seguintes QUERY:
{
"type": all || cash-in || cash-out,
"date": Data da criação da transação
}