- Node.js 18+ instalado
- Conta no Spotify for Developers
- Conta no Supabase
- Git instalado
git clone <seu-repositorio>
cd emotify- Acesse supabase.com
- Clique em "New Project"
- Preencha os dados do projeto
- Aguarde a criação (2-3 minutos)
- No painel do Supabase, vá em "SQL Editor"
- Clique em "New Query"
- Copie todo o conteúdo do arquivo
supabase-schema.sql - Cole no editor e clique em "Run"
- Aguarde a execução (deve mostrar "Success")
- Vá em "Settings" > "API"
- Copie:
Project URL(SUPABASE_URL)anon publickey (SUPABASE_ANON_KEY)service_rolekey (SUPABASE_SERVICE_KEY) -⚠️ Mantenha seguro!
- Acesse Spotify Developer Dashboard
- Clique em "Create an App"
- Preencha:
- App name: "Emotify"
- App description: "Emotion analysis for Spotify"
- Redirect URI:
http://localhost:3001/api/auth/callback
- Aceite os termos e clique em "Create"
- Na página do app, clique em "Settings"
- Copie:
- Client ID
- Client Secret (clique em "View client secret")
# Instalar dependências
npm install
# Criar arquivo .env
cp .env.example .envAbra o arquivo .env e preencha:
# Supabase
SUPABASE_URL=https://seu-projeto.supabase.co
SUPABASE_ANON_KEY=sua_anon_key_aqui
SUPABASE_SERVICE_KEY=sua_service_key_aqui
# Spotify
SPOTIFY_CLIENT_ID=seu_client_id_aqui
SPOTIFY_CLIENT_SECRET=seu_client_secret_aqui
SPOTIFY_REDIRECT_URI=http://localhost:3001/api/auth/callback
# JWT
JWT_SECRET=gere_uma_string_aleatoria_segura_aqui
JWT_EXPIRES_IN=24h
JWT_REFRESH_EXPIRES_IN=7d
# Server
PORT=3001
NODE_ENV=development
FRONTEND_URL=http://localhost:3000Dica: Para gerar JWT_SECRET seguro:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"cd Front
# Instalar dependências
npm install
# Criar arquivo .env.local
cp .env.example .env.localNEXT_PUBLIC_API_URL=http://localhost:3001
NEXT_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=sua_anon_key_aqui# Na raiz do projeto
npm run devVocê deve ver:
🎵 Emotion Engine Backend rodando em development
📍 http://localhost:3001
🔐 Spotify OAuth integrado
cd Front
npm run devVocê deve ver:
▲ Next.js 14.1.0
- Local: http://localhost:3000
- Abra o navegador em
http://localhost:3000 - Clique em "Conectar com Spotify"
- Faça login com sua conta Spotify
- Autorize o aplicativo
- Você será redirecionado para o dashboard
- Clique em "Analisar Minhas Músicas"
- Aguarde a análise (pode levar 10-30 segundos)
- Veja seus resultados! 🎉
- Verifique se as credenciais do Spotify estão corretas no
.env - Confirme que a Redirect URI está configurada no Spotify Dashboard
- Tente fazer logout e login novamente
- Verifique se todas as variáveis SUPABASE_* estão no
.env - Confirme que o schema SQL foi executado com sucesso
- Verifique se o projeto Supabase está ativo
- Confirme que o backend está rodando na porta 3001
- Verifique se o CORS está configurado corretamente
- Limpe o cache do navegador e tente novamente
- Limpe o localStorage do navegador
- Faça logout e login novamente
- Verifique se JWT_SECRET está configurado
emotify/
├── src/ # Backend
│ ├── config/ # Configurações (Supabase, Spotify)
│ ├── controllers/ # Controladores de rotas
│ ├── middleware/ # Middlewares (auth, error handling)
│ ├── models/ # (Não usado - Supabase direto)
│ ├── routes/ # Definição de rotas
│ ├── services/ # Lógica de negócio
│ └── utils/ # Utilitários
├── Front/ # Frontend Next.js
│ ├── src/
│ │ ├── app/ # Pages e layouts
│ │ ├── components/ # Componentes React
│ │ └── lib/ # Utilitários e API client
├── supabase-schema.sql # Schema do banco de dados
├── .env.example # Exemplo de variáveis de ambiente
└── package.json # Dependências do backend
Após a instalação, você pode:
- Analisar suas músicas - Descubra seu perfil emocional
- Criar playlists - Baseadas em emoções específicas
- Ver insights - Entenda seus padrões musicais
- Explorar recomendações - Descubra novas músicas
- Configure as variáveis de ambiente
- Atualize SPOTIFY_REDIRECT_URI para URL de produção
- Atualize FRONTEND_URL para URL do frontend
- Deploy!
- Configure NEXT_PUBLIC_API_URL para URL do backend
- Configure variáveis do Supabase
- Deploy!
- Já está em produção! ✅
- Configure Row Level Security (RLS) para segurança adicional
⚠️ Nunca commite o arquivo.envou.env.local- 🔐 Mantenha o
SUPABASE_SERVICE_KEYseguro - 🎵 A API do Spotify tem rate limits - use com moderação
- 💾 O cache de tracks expira em 7 dias
- 🔄 Tokens do Spotify expiram em 1 hora (refresh automático)
Se encontrar problemas:
- Verifique os logs do backend e frontend
- Consulte a documentação do Spotify API
- Consulte a documentação do Supabase
- Abra uma issue no repositório
Agora você tem o Emotify rodando localmente! Divirta-se descobrindo as emoções por trás da sua música! 🎵❤️