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
- Acesse Google Cloud Console
- Crie um novo projeto ou selecione um existente
- Navegue até APIs & Services > Credentials
Passo 2: Criar Credenciais OAuth 2.0
- Clique em Create Credentials > OAuth client ID
- Tipo de aplicação: Web application
- Nome:
Divino Alimento - Dev - Authorized JavaScript origins:
http://localhost:3000
- Authorized redirect URIs:
http://localhost:3000/auth/google/callback
- 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:3000carrega 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
.envtem 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:
- Arquitetura do Sistema - Entenda a estrutura do projeto
- Padrões de Código - Siga as convenções do projeto
- Guia de Contribuição - Aprenda o fluxo de trabalho
Bom desenvolvimento! 🚀