💻 Aplicação desenvolvida para a 4ª edição do Alura-Challenge
- Cadastro de usuário
- Cadastro de receitas e despesas
- Resumos de despesas e receitas
Esta Aplicação foi desenvolvida usando as seguintes tecnologias:
- Node.JS
- Express
- Typescript
- TypeOrm
- MySql
- Npm
- Jest
- Swagger
- Docker
- Prettier
- jsonwebtoken
- joi
- winston
Há uma versão da aplicação rodando nos servidores da Azure no endereço: https://controle-orcamento.azurewebsites.net/status
Para testes pode ser utilizado o swagger em: https://controle-orcamento.azurewebsites.net/docs
Documentação Postman: https://documenter.getpostman.com/view/16662719/VUqypESb
Aplicação de estudo criada para o Alura-Challenge, utilizando como base um serviço de controle orçamentário, onde foi implementado um sistema de cadastro de usuário com autenticação, cadastro de receitas e despesa e retorno de informações, inclusive por data e um resumo organizado por data e categoria de despesa.
Foi escolhido Node.js para desenvolvimento, utilizando Typescript, framework Express e TypeOrm para conexão com banco de dados.
Para o banco de dados utilizei um mySql hospedado na Azure. Também utilizei docker para subir a aplicação na Azure.
A aplicação possui sistema de autenticação utilizando token JWT, possui logs gerados com winston e validação de dados com joi.
Para instalação:
- Instalar as depêndiencias com o comando
npm install
. - Criar um arquivo .env na raiz do projeto conforme o exemplo que está em .env.example.
- Setar as variáveis de ambiente:
HOST_DB
- endereço do banco de dadosPORT_DB
- porta do banco de dadosUSER_DB
- usuário do banco de dadosPASSWORD_DB
- senha de acesso do banco de dadosNAME_DB
- nome do banco de dadosAPP_PORT
- porta em qual a aplicação irá rodarJWT_SECRET
- palavar-segredo para geração do token JWTJWT_EXPIRES
- tempo de expiração do token JWT
- Criar um banco de dados com o mesmo nome contido na váriavel
NAME_DB
. - Efetuar o comando
npm run start
Não é necessário rodar as migrações se o arquivo ./src/datasource.ts
estiver com a propriedade synchronize
setada como true
, mas caso deseje poderá setar essa propriedade para flase
, e efetuar o comando npm run migration:up
, após a criação do banco de dados.
- start - Realiza a build da aplicação e roda os arquivos em Javascript.
- build - Realiza a build da aplicação e cria uma pasta dist para os arquivos.
- dev - Roda a aplicação sem precisar realizar a build.
- test - Roda todos os testes unitários.
- docker:build - Cria uma imagem docker da aplicação, conforme o arquivo dockerfile. Gera a partir da build.
- docker:run - Serve a aplicação de acordo com a imagem criada. está configurada para utilizar as mesmas váriaveis de ambiente do arquivo .env.
- migration:create - Cria uma migration vazia em
.src/migrations
. - migration:generate - Gera uma migration de acordo com modificações efetuadas nas entidades.
- migration:up - Roda as migrations.
- migration:down - Reverte a última migration.
Utilize o npm run
antes dos scripts.