Monorepo com backend NestJS, frontend Angular e PostgreSQL + PostGIS.
# Clone o repositório
git clone https://github.com/Igorjr19/tmdigital.git
cd tmdigital
# Configure o ambiente e instale dependências
make setupO comando setup irá:
- Criar o arquivo
.enva partir do.env.example - Instalar todas as dependências do projeto
# Inicia todos os serviços (PostgreSQL, Backend, Frontend)
make upA aplicação estará disponível em:
- Frontend: http://localhost:4200
- Backend: http://localhost:3000/api
- Database: http://localhost:5432
Após iniciar os containers, você precisa rodar as migrações para criar as tabelas:
make migration-runO seed (dados iniciais) roda automaticamente ao reiniciar o backend se a variável SEED_ENABLED=true estiver definida (padrão no setup).
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)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 dadosmake 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 seedmake dev-backend # Executa backend localmente
make dev-frontend # Executa frontend localmenteNota: Para desenvolvimento local sem Docker, você precisará configurar o PostgreSQL manualmente.
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 watchmake lint # Executa linter
make lint-fix # Executa linter e corrige automaticamente
make format # Formata o código com Prettiermake clean # Remove node_modules, dist e cache
make clean-docker # Para containers e remove imagens
make clean-all # Limpeza completa (código + Docker + volumes)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
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
Caso você não tenha o make instalado ou prefira rodar os comandos manualmente, siga estes passos:
# Copie o arquivo de variáveis de ambiente
cp .env.example .env# Inicie os containers em background
docker compose up -d# 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# Logs
docker compose logs -f
# Parar tudo
docker compose down- Use
make helppara 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 logspara debug em tempo real