Aplicação que tem como objetivo realizar transações financeiras entre contas de usuários da plataforma. Nela pode-se realizar registro de novos usuários, login, transferência de valores, verificar histórico de transações. Projeto realizado para um desafio técnico.
- NodeJs v16
- Banco de dados PostgresSQL
- *Opicional: Docker e Docker-compose
- NodeJs
- NestJs
- Prisma
- Postgres
- JWT - Json Web Token
- Bcrypt
- Swagger Ui Express
- NextJs
- Tailwind CSS
- Axios
- js-cookie
- Registro de novos usuários
- Login na aplicação
- Realizar transferência de valores
- Verificar histórico de transaçoes
git clone git@github.com:eemr3/desafio-ng-cash.git
cd desafio-ng-cash
Instalar as dependencias
npm install
- Observação: Se ocorreru um erro de permisão para o o arquivo
app_install.sh
rode o comando abaixo no terminal, isso para o sitema operacional Linux:
chmod +x apps_install.sh
Variáveis de Ambiente Entre na pasta
cd apps/server
E renomei o arquivo
.env.example para .env
Subir containers
- Volte para a pasta
desafio-ng-cash
e rode o comando abaixo
npm run compose:up
Criar banco de dados
npm run database
A aplicação roda na porta:
http://localhost:3000
Você deverá cadastrar usuários na aplicação para relizar transações.
Para realizar transações é necessário ter 2 contas pelo menos. Para criar contas dever ter nome de usuário
e senha
nome de usuário
tem que ter no minimo 3 caracteressenha
tem que ter no mínimo 8 caracteres, sendo que pelo menos um número e uma letra minúscula e uma maiúscula.
Exemplo:
username: jonh
senha: a123456B
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env
-
Renomei o arquivo
.env.exemple
para.env
-
Altere os valores das variáveis para os valores que você usa no banco de dados que esta instalado na sua máquina
DATABASE_URL=
SECRET_KEY=
Após feito os primeiros passos de entar na pasta, instalar as dempendências, subir os container. Acesse o seu navegador e digite ou copie e cole o seguinge:
http://localhost:3001/api
E tera ascesso a Documentação da API criada utilizando o Swagger Ui Express