Skip to content

luanmarcosdev/expenses-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expenses Control

Descrição

O Expenses Control é uma API RESTful desenvolvida em Nodejs com Express, destinada ao controle de despesas, permitindo que usuários gerenciem categorias e despesas atribuindo elas a uma entidade, com autenticação via JWT e persistência em banco MySQL. O objetivo é disponibilizar uma API backend robusta e escalável, pronta para produção e projetada para integração eficiente com aplicações web ou mobile.

Tecnologias Utilizadas

  • Node.js
  • Express
  • MySQL
  • JWT
  • Sequelize
  • Docker + Docker Compose
  • Jest + Supertest
  • Swagger

Arquitetura

A aplicação segue uma arquitetura em camadas, promovendo separação de responsabilidades e facilitando testes:

  • database → Configurações do Sequelize ORM (models, migrations, seeders e config)
  • routes → Recebem as requisições HTTP
  • controllers → Validam entrada e direcionam para o service
  • services → Contêm regras de negócio
  • repositories → Comunicação com o banco via ORM
  • middlewares → Autenticação, validação e error handling
  • errors → Erros personalizado com padronização de respostas
  • test → Testes unitários e de integração

Requisitos

  • Node.js versão 18+ ou superior
  • Docker/Docker Compose
  • NPM ou Yarn

Instalação

git clone https://github.com/luanmarcosdev/expenses-control.git
cd expenses-control
npm install

Configuração e criação de ambiente

Suba o container Docker

docker-compose up --build

Crie um arquivo .env na raiz do projeto com as seguintes variáveis:

PORT=3000
DB_HOST=localhost
DB_PORT=3307
DB_USER=root
DB_DATABASE=expenses
DB_PASSWORD=password
JWT_SECRET=secret_jwt_secret

Ajuste as portas ou credenciais do container e env conforme necessário

Rode as Migrations e Seeds

npx sequelize db:migrate
npx sequelize db:seed:all

Rodando o projeto

Iniciando servidor local

npm run dev

Testes

npm run test

Contém mais de 90% de test coverage em testes unitários e de integração utilizando Jest + Supertest.

Tests coverage

Autenticação

A API utiliza JWT no padrão Bearer Token. Após login, envie o token no header:

Authorization: Bearer <seu_token>

Documentação dos Endpoints

A documentação completa está disponível via Swagger:

http://localhost:3000/api-docs/

Swagger

About

Node.js API featuring JWT Auth, Docker, Unit/Integration Tests, and Swagger Documentation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors