API RESTful do Cofrinho, uma plataforma para organização e controle de despesas compartilhadas entre grupos, com integração ao Open Finance. Desenvolvido em Node.js com Express e Sequelize, seguindo os princípios da Clean Architecture.
🔗 O frontend do projeto está disponível em: github.com/Cofrinho/mobile
- 👤 Gerenciamento de usuários (registro, login, atualização, reativação)
- 🔐 Autenticação com JWT (access + refresh tokens)
- ✅ Verificação de e-mail e recuperação de senha com código
- 💳 Integração com instituições via Open Finance (saldo, recarga, contas)
- 👥 Criação e gerenciamento de grupos e participantes
- 💰 Lançamento e divisão de despesas entre membros
- 📲 Notificações internas
- 📘 Documentação Swagger interativa
-
Node.js – versão 20.18.0 Baixe em: https://nodejs.org/en
-
NPM – versão 10.8.2 (já vem com o Node.js)
-
Docker – para rodar o banco de dados PostgreSQL em ambiente isolado Baixe em: https://www.docker.com/products/docker-desktop/
-
Git – para clonar o repositório Baixe em: https://git-scm.com/
💡 Alternativamente ao Docker, você pode ter o PostgreSQL instalado localmente (versão 17+ recomendada).
- Node.js
- Express
- Sequelize + PostgreSQL
- JWT para autenticação
- Zod para validações
- Axios para integrações externas
- Nodemailer para envio de e-mails
- Swagger UI
swagger-jsdoc
para geração automática dos endpoints
- ESLint e Prettier para padronização de código
- Nodemon para hot-reload
.
├── docker-compose.yml
├── src/
│ ├── application/
│ │ ├── dtos/ # Objetos de Transferência de Dados
│ │ └── services/ # Lógica de negócio
│ ├── domain/
│ │ ├── models/ # Modelos de entidades
│ │ └── repositories/ # Acesso a dados
│ ├── http/
│ │ ├── controllers/ # Manipulação de requisições
│ │ ├── middlewares/ # Middlewares (ex: autenticação)
│ │ ├── routes/ # Definição de rotas
│ │ └── validations/ # Validações de entrada
│ ├── infra/
│ │ ├── db/ # Migrações e seeders do banco
│ │ └── external/ # Integrações externas
│ ├── shared/
│ │ ├── config/ # Configurações
│ │ ├── errors/ # Erros personalizados
│ │ └── utils/ # Utilitários (JWT, hash, etc)
│ ├── swagger/ # Documentação da API
│ ├── server.js # Ponto de entrada
│ └── app.js
├── .env.example
└── package.json
Siga estes passos para configurar e executar a aplicação:
- Clonar o repositório e acessar a pasta:
git clone https://github.com/Cofrinho/backend.git
cd backend/
- Configurar variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações (banco de dados, etc)
- Iniciar o banco de dados (PostgreSQL):
# Usando Docker:
docker-compose up -d
# Ou usando Podman:
podman-compose up -d
- Instalar dependências:
npm install
- Executar migrações e seeders do banco:
npm run migrate
npm run seed
- Iniciar o servidor de desenvolvimento:
npm run dev
O servidor estará disponível em: http://localhost:3000
Documentação Swagger: http://localhost:3000/api-docs
O Cofrinho foi desenvolvido como projeto final do estágio na Compass UOL, com o objetivo de aplicar conceitos de clean architecture, segurança e integração via Open Finance. O Cofrinho é uma plataforma pensada para facilitar o controle de despesas compartilhadas entre grupos, permitindo a conexão com múltiplas instituições financeiras por meio do ecossistema aberto do Open Finance.
O projeto demonstra na prática como é possível unir organização financeira colaborativa com tecnologias modernas de integração bancária, oferecendo uma base sólida para soluções financeiras inovadoras.