Somos o app financeiro da Nova Geração! Uma plataforma tecnológica com tudo o que é necessário para dar início à uma vida financeira responsável e controlada. Nosso propósito é fazer com que a GenZ se torne a geração mais independente com relação ao seu dinheiro, estando preparada para enfrentar todo e qualquer desafio que venha a aparecer!
Estruturar uma aplicação web fullstack, dockerizada, cujo objetivo seja possibilitar que usuários da NG consigam realizar transferências internas entre si.
Clone o projeto e acesse a pasta
$ git clone https://github.com/ganimedes96/NG.CASH && cd NG.CASH
Siga as etapas abaixo para instalar as dependências necessárias
# Install the dependencies web
# Aplicacao web esta rodando na porta 3000
$ npm install
# Install the dependencies server
# Aplicacao server esta rodando no porta 3001
$ npm install
1.26.0
por 1.29.2
.
ℹ️ Rode os serviços docker com o comando
docker-compose up -d --build
.
- O postgres esta usando a porta padrão (
5432
), ou adapte, caso queria fazer uso da aplicação localmente; - Esses serviços irão inicializar um container chamado
NG.CASH-FrondEnd
e outro chamadoprisma-postgres-api
; - Depois rode os comandos
npm run dev
para inicar a aplicacaoweb
e o mesmo comando vale para iniciar oserver
Página para realizar o cadastro na plataforma e necessário informar username e password seguindo as seguintes regras, USERNAME: no minimo tres caracteres PASSWORD: no minimo 8 caracters e 1 letra Maiúscula, 1 Caracteres especial e 1 numero
- Nessa pagina e apresentado ao cliente um header com boas vindas e um botao de Logout
- Um botao de Nova transacao por onde o cliente irar fazer as transações
- Tres cartoes informando um resumo de suas transacoes entrada, saida e saldo
- Uma tabela mostrando todas as transacoes que o cliente participou
Nessa rota e esperado um JSON no seguinte formato
#Rota POST http://localhost:3001/users/register
{
"username": "John Doe",
"password": "Jhondoe@123"
}
Nessa rota e esperado um JSON no seguinte formato
#Rota POST http://localhost:3001/login
{
"username": "John Doe",
"password": "Jhondoe@123"
}
Nessa rota e retornado um JSON no seguinte formato
#Rota GET http://localhost:3001/users/account
{
"id": "clay3tj0b0000uxz0vcsiem6k",
"username": "John Doe",
"accountId": "clay3tj0b0001uxz0ixlptwxm",
"Account": {
"balance": 100
}
}
Nessa rota e esperado um JSON no seguinte formato
#Rota POST http://localhost:3001/transactions
{
"recipient": " Jane Doe",
"value": 50
}
Nessa rota e retornado um JSON no seguinte formato
#Rota GET http://localhost:3001/transactions/filter
[
{
"id": "clb6kl6lt0001ux68gf72ejao",
"debitedAccountId": "clay3tj0b0001uxz0ixlptwxm",
"creditedAccountId": "clay1c2bt0001ux988uyyvftu",
"value": 10,
"createdAt": "2022-12-02T13:57:09.408Z",
"debitAccount": {
"id": "clay3tj0b0001uxz0ixlptwxm",
"User": [
{
"id": "clay3tj0b0000uxz0vcsiem6k",
"username": "Jhon Doe"
}
]
},
"creditAccount": {
"id": "clay1c2bt0001ux988uyyvftu",
"User": [
{
"id": "clay1c2bs0000ux982s40jahp",
"username": "Jone Doe"
}
]
}
},
]
date: "YYYY-MM-DD"
filter: 'cash-in' ou 'cash-out'