🧠 API com exemplo para o projeto Dashboard
- 🟢 Node.js v22
- 🛠️ NestJS (Framework)
- 🐬 MySQL 8 com Drizzle ORM
- 🐳 Docker + Docker Compose
- 📂 .env (Baseado em
.env.sample
)
- Node.js v22
- Docker + Docker Compose
- MySQL Client (opcional)
- Copie o arquivo de exemplo:
cp .env.sample .env
- Personalize conforme necessário (ex.: conexões, JWT secret, etc).
npm install
docker network create dashboard-network
docker compose up -d db
- 📍 Banco estará acessível em: localhost:8000
docker compose up api
- 📍 API disponível em: http://localhost:8001
Durante a subida, as migrations são aplicadas automaticamente.
docker compose exec -it api npm run migration:generate
docker compose exec -it api npm run migration:run
Este projeto utiliza o Prettier para formatação de código e ESLint para lint e verificação de padrões.
✅ Antes de commitar ou fazer PRs, certifique-se de rodar o formatador e o linter:
npm run format
npm run lint
- Instale as extensões oficiais:
A pasta .vscode
possui a configuração necessária para executar a formatação e o lint automaticamente durante o desenvolvimento ao salvar os arquivos.
Abaixo, um descritivo das principais pastas do projeto e um exemplo de arquivo de cada:
Pasta | Finalidade | Exemplo de Arquivo |
---|---|---|
.vscode | Configurações específicas de workspace recomendadas para o time. | (Por exemplo: settings.json para o Prettier e ESLint) |
src | Arquivos de bootstrap da aplicação. | main.ts , app.module.ts , health-check.controller.ts |
src/config | Contém configurações globais da aplicação, como configurações de banco de dados. | database.config.ts |
src/database | Módulo de injeção de dependência e inicialização do banco. | database.module.ts |
src/database/migrations | Scripts de migrations gerados automaticamente via Drizzle. | (Gerados via comando de migration) |
src/database/schema | Definições das entidades (tabelas) e tipagens do banco usando Drizzle ORM. | user.ts |
src/modules/account | Módulo geral da feature, onde os componentes são agrupados. | account.module.ts |
src/modules/account/controllers | Controllers responsáveis pelas rotas e endpoints da feature Account. | account.controller.ts |
src/modules/account/dto | Data Transfer Objects: definem os contratos de entrada/saída da API para a feature Account. | create-account.dto.ts |
src/modules/account/usecases | Implementações da regra de negócio (application layer) para a feature Account. | create-account.usecase.ts |
src/modules/auth | Inclui funcionalidades de autenticação (JWT) | (Em desenvolvimento) |
src/modules/shared | Funcionalidades reutilizadas por toda a aplicação. | |
src/modules/shared/types | Tipos e enums reutilizáveis em toda a aplicação. | enum.ts |
src/modules/shared/utils | Funções utilitárias reutilizáveis. | hash-password.util.ts |
.env.sample | Exemplo de arquivo de configuração de variáveis de ambiente. | .env.sample |
Este repositório é dedicado exclusivamente ao backend da plataforma dashboard, produto oficial da RubyIO.
📌 ATENÇÃO: Este projeto não é um monorepo e não compartilha código com outras APIs RubyIO.
Desenvolvido com ❤️ por RubyIO.