Pular para o conteúdo principal
Versão: Versão Cestas

Configuração do Ambiente de Desenvolvimento

Este guia mostrará como configurar seu ambiente local para desenvolver o Sistema Divino Alimento.

Requisitos do Sistema

Software Necessário

  • Node.js (versão 18.x ou superior)
  • npm (versão 9.x ou superior)
  • PostgreSQL (versão 14.x ou superior)
  • Docker e Docker Compose (recomendado)
  • Git (versão 2.x ou superior)
  • Editor de código (VS Code, Sublime, etc.)

Verificar Instalações

node --version    # v18.x.x ou superior
npm --version # 9.x.x ou superior
docker --version # Docker version 20.x ou superior
git --version # git version 2.x ou superior

Opção 1: Configuração com Docker (Recomendado)

Passo 1: Clonar o Repositório

# Clone seu fork
git clone https://github.com/SEU-USUARIO/divino-alimento.git

# Entre no diretório
cd divino-alimento

# Adicione o repositório original como upstream
git remote add upstream https://github.com/tekopora/divino-alimento.git

Passo 2: Configurar Variáveis de Ambiente

# Copie o arquivo de exemplo
cp .env.example .env

# Edite o arquivo .env com suas configurações
nano .env

Variáveis importantes:

# Banco de Dados
DB_HOST=postgres
DB_PORT=5432
DB_NAME=divino_alimento_dev
DB_USER=postgres
DB_PASSWORD=postgres

# Google OAuth (obtenha em https://console.cloud.google.com)
GOOGLE_CLIENT_ID=seu_client_id_aqui
GOOGLE_CLIENT_SECRET=seu_client_secret_aqui
GOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/callback

# Sessão
SESSION_SECRET=sua_chave_secreta_aleatoria_aqui

# Ambiente
NODE_ENV=development
PORT=3000

Passo 3: Iniciar com Docker Compose

# Construir e iniciar containers
docker-compose up -d

# Verificar se os containers estão rodando
docker-compose ps

# Ver logs da aplicação
docker-compose logs -f app

Passo 4: Executar Migrações e Seeds

# Entrar no container da aplicação
docker-compose exec app bash

# Executar migrações
npx sequelize-cli db:migrate

# (Opcional) Executar seeds para dados de teste
npx sequelize-cli db:seed:all

# Sair do container
exit

Passo 5: Acessar a Aplicação

Abra seu navegador em: http://localhost:3000

Opção 2: Configuração Manual (Sem Docker)

Passo 1: Clonar o Repositório

git clone https://github.com/SEU-USUARIO/divino-alimento.git
cd divino-alimento
git remote add upstream https://github.com/tekopora/divino-alimento.git

Passo 2: Instalar Dependências

npm install

Passo 3: Configurar PostgreSQL Local

# Criar banco de dados
createdb divino_alimento_dev

# Ou via psql
psql -U postgres
CREATE DATABASE divino_alimento_dev;
\q

Passo 4: Configurar Variáveis de Ambiente

cp .env.example .env
nano .env

Ajuste para PostgreSQL local:

DB_HOST=localhost
DB_PORT=5432
DB_NAME=divino_alimento_dev
DB_USER=seu_usuario_postgres
DB_PASSWORD=sua_senha_postgres

# ... restante das configurações

Passo 5: Executar Migrações

npx sequelize-cli db:migrate
npx sequelize-cli db:seed:all

Passo 6: Iniciar Aplicação

# Modo desenvolvimento (com auto-reload)
npm run dev

# Ou modo normal
npm start

Acesse: http://localhost:3000

Configurar Google OAuth

Para testar autenticação localmente, você precisa criar credenciais OAuth:

Passo 1: Google Cloud Console

  1. Acesse Google Cloud Console
  2. Crie um novo projeto ou selecione um existente
  3. Navegue até APIs & Services > Credentials

Passo 2: Criar Credenciais OAuth 2.0

  1. Clique em Create Credentials > OAuth client ID
  2. Tipo de aplicação: Web application
  3. Nome: Divino Alimento - Dev
  4. Authorized JavaScript origins:
    • http://localhost:3000
  5. Authorized redirect URIs:
    • http://localhost:3000/auth/google/callback
  6. Clique em Create

Passo 3: Copiar Credenciais

Copie o Client ID e Client Secret e adicione ao seu .env:

GOOGLE_CLIENT_ID=seu_client_id_aqui.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=seu_client_secret_aqui

Passo 4: Reiniciar Aplicação

# Se usando Docker
docker-compose restart app

# Se rodando localmente
# Ctrl+C e depois
npm run dev

Comandos Úteis

Docker

# Iniciar containers
docker-compose up -d

# Parar containers
docker-compose down

# Ver logs
docker-compose logs -f

# Reconstruir containers
docker-compose up -d --build

# Entrar no container
docker-compose exec app bash

# Limpar tudo (CUIDADO: apaga dados)
docker-compose down -v

NPM

# Instalar dependências
npm install

# Rodar em modo desenvolvimento
npm run dev

# Rodar testes
npm test

# Verificar estilo de código
npm run lint

# Formatar código
npm run format

Sequelize (Migrações)

# Executar migrações pendentes
npx sequelize-cli db:migrate

# Reverter última migração
npx sequelize-cli db:migrate:undo

# Reverter todas as migrações
npx sequelize-cli db:migrate:undo:all

# Executar seeds
npx sequelize-cli db:seed:all

# Criar nova migração
npx sequelize-cli migration:generate --name nome-da-migracao

Verificar Instalação

Após configurar, verifique se tudo está funcionando:

1. Acesso à Aplicação

  • http://localhost:3000 carrega a página inicial
  • Login com Google funciona
  • Redireciona para área logada

2. Banco de Dados

  • Tabelas foram criadas
  • Seeds executados (se aplicável)
  • Conexão estabelecida

3. Ambiente de Desenvolvimento

  • Hot reload funcionando (alterações refletem automaticamente)
  • Logs aparecem no console
  • Sem erros críticos no startup

Problemas Comuns

Porta 3000 já em uso

# Encontrar processo usando a porta
lsof -i :3000

# Matar processo
kill -9 PID

Erro de conexão com PostgreSQL

# Verificar se PostgreSQL está rodando
sudo systemctl status postgresql

# Ou com Docker
docker-compose ps

Erro no OAuth

  • Verifique se as URLs de callback estão corretas
  • Certifique-se que o projeto Google está configurado corretamente
  • Verifique se .env tem as credenciais corretas

Erro em migrações

# Reverter e executar novamente
npx sequelize-cli db:migrate:undo:all
npx sequelize-cli db:migrate

Próximos Passos

Agora que seu ambiente está configurado:

  1. Arquitetura do Sistema - Entenda a estrutura do projeto
  2. Padrões de Código - Siga as convenções do projeto
  3. Guia de Contribuição - Aprenda o fluxo de trabalho

Bom desenvolvimento! 🚀