Skip to content

Igorjr19/agtech

Repository files navigation

TMDigital

Monorepo com backend NestJS, frontend Angular e PostgreSQL + PostGIS.

📋 Pré-requisitos

🚀 Início Rápido

1. Setup Inicial

# Clone o repositório
git clone https://github.com/Igorjr19/tmdigital.git
cd tmdigital

# Configure o ambiente e instale dependências
make setup

O comando setup irá:

  • Criar o arquivo .env a partir do .env.example
  • Instalar todas as dependências do projeto

2. Iniciar o Ambiente de Desenvolvimento

# Inicia todos os serviços (PostgreSQL, Backend, Frontend)
make up

A aplicação estará disponível em:

3. Configurar Banco de Dados

Após iniciar os containers, você precisa rodar as migrações para criar as tabelas:

make migration-run

O seed (dados iniciais) roda automaticamente ao reiniciar o backend se a variável SEED_ENABLED=true estiver definida (padrão no setup).

📦 Comandos Disponíveis

Docker

make up          # Inicia todos os containers
make down        # Para e remove todos os containers
make restart     # Reinicia todos os containers
make build       # Rebuild das imagens Docker
make rebuild     # Rebuild completo (down + build + up)

Logs

make logs              # Exibe logs de todos os containers
make logs-backend      # Exibe logs do backend
make logs-frontend     # Exibe logs do frontend
make logs-db           # Exibe logs do banco de dados

Shell e Banco de Dados

make shell-backend     # Acessa shell do container backend
make shell-frontend    # Acessa shell do container frontend
make shell-db          # Acessa shell do container postgres
make psql              # Acessa PostgreSQL via psql
make psql              # Acessa PostgreSQL via psql
make db-reset          # Reseta o banco de dados (apaga todos os dados)
make migration-run     # Executa migrações pendentes
make migration-revert  # Reverte a última migração
make seed              # Reinicia backend para rodar seed

Desenvolvimento Local (sem Docker)

make dev-backend       # Executa backend localmente
make dev-frontend      # Executa frontend localmente

Nota: Para desenvolvimento local sem Docker, você precisará configurar o PostgreSQL manualmente.

Testes

make test              # Executa todos os testes
make test-backend      # Executa testes do backend
make test-frontend     # Executa testes do frontend
make test-watch        # Executa testes em modo watch

Qualidade de Código

make lint              # Executa linter
make lint-fix          # Executa linter e corrige automaticamente
make format            # Formata o código com Prettier

Limpeza

make clean             # Remove node_modules, dist e cache
make clean-docker      # Para containers e remove imagens
make clean-all         # Limpeza completa (código + Docker + volumes)

🏗️ Estrutura do Projeto

tmdigital/
├── apps/
│   ├── backend/          # API NestJS
│   ├── frontend/         # Aplicação Angular
├── docker-compose.yml    # Configuração Docker
├── Makefile             # Comandos de desenvolvimento
├── .env.example         # Variáveis de ambiente de exemplo
└── package.json         # Dependências do workspace

🔧 Configuração

Variáveis de Ambiente

Copie .env.example para .env e ajuste as variáveis conforme necessário:

# GENERAL
NODE_ENV=development

# BACKEND
POSTGRES_HOST=postgres
POSTGRES_DB=tmdigital
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_PORT=5432
SEED_ENABLED=true

# FRONTEND
BACKEND_HOST=localhost
BACKEND_PORT=3000
FRONTEND_PORT=4200

🐢 Executando sem Make

Caso você não tenha o make instalado ou prefira rodar os comandos manualmente, siga estes passos:

1. Setup

# Copie o arquivo de variáveis de ambiente
cp .env.example .env

2. Rodar a Aplicação

# Inicie os containers em background
docker compose up -d

3. Banco de Dados

# Rode as migrações (necessário na primeira execução)
docker compose exec backend pnpm --filter @tmdigital/backend migration:run

# Para reverter a última migração
docker compose exec backend pnpm --filter @tmdigital/backend migration:revert

# Opcional: Acessar o banco via psql
docker compose exec postgres psql -U postgres -d tmdigital

4. Logs e Limpeza

# Logs
docker compose logs -f

# Parar tudo
docker compose down

💡 Dicas

  • Use make help para ver todos os comandos disponíveis
  • Os volumes Docker garantem hot reload durante o desenvolvimento
  • O banco de dados persiste entre reinicializações dos containers
  • Use make logs para debug em tempo real

📚 Documentações Externas

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages