Skip to content

RubyIoSpace/dashboard-api

Repository files navigation

Dashboard API

🧠 API com exemplo para o projeto Dashboard


🚀 Tecnologias Principais

  • 🟢 Node.js v22
  • 🛠️ NestJS (Framework)
  • 🐬 MySQL 8 com Drizzle ORM
  • 🐳 Docker + Docker Compose
  • 📂 .env (Baseado em .env.sample)

📦 Primeiros Passos (Setup local)

1. Pré-requisitos

  • Node.js v22
  • Docker + Docker Compose
  • MySQL Client (opcional)

🔑 Configuração de Ambiente (.env)

  • Copie o arquivo de exemplo:
cp .env.sample .env
  • Personalize conforme necessário (ex.: conexões, JWT secret, etc).

2. Instalação de dependências

npm install

3. Criar network docker (uma vez apenas)

docker network create dashboard-network

4. Subir banco de dados MySQL

docker compose up -d db
  • 📍 Banco estará acessível em: localhost:8000

5. Rodar a API (modo desenvolvimento)

docker compose up api

Durante a subida, as migrations são aplicadas automaticamente.


⚙️ Comandos úteis de desenvolvimento

✅ Gerar novas migrations:

docker compose exec -it api npm run migration:generate

✅ Executar as migrations manualmente:

docker compose exec -it api npm run migration:run

🧹 Padrão de Código e Lint (Prettier + ESLint)

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

🔌 Configuração Recomendada para o VS Code

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.


🗂️ Estrutura de Pastas e Finalidade

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

👥 Sobre o Projeto

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.


🏆 Time RubyIO

Desenvolvido com ❤️ por RubyIO.

About

API do Dashboard com exemplos de login, crud, gerenciamento de arquivos e etc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published