Dashboard de analytics do YouTube com análise de sentimentos de comentários e gestão de assinaturas.
- Dashboard com métricas do YouTube (visualizações, likes, inscritos)
- Análise de sentimentos de comentários
- Login com Google OAuth2
- Gestão de assinaturas e planos
- Interface responsiva e moderna
- Backend: Django 5.2.8
- Banco de Dados: PostgreSQL
- Autenticação: Google OAuth2 (social-auth-app-django)
- APIs: YouTube Data API v3, YouTube Analytics API
- Análise de Sentimentos: TextBlob
- Servidor de Produção: Gunicorn
- Arquivos Estáticos: Whitenoise
- Conta no Railway
- Conta no Google Cloud Console com credenciais OAuth2
- Repositório no GitHub com o código do projeto
Certifique-se de que seu repositório contém os seguintes arquivos:
├── Procfile # Comando de inicialização
├── railway.json # Configurações do Railway
├── requirements.txt # Dependências Python
├── runtime.txt # Versão do Python
└── nixpacks.toml # Configurações do Nixpacks
- Acesse railway.app e faça login
- Clique em "New Project"
- Selecione "Deploy from GitHub repo"
- Autorize o Railway a acessar seu GitHub (se ainda não fez)
- Selecione o repositório do projeto
- No painel do projeto Railway, clique em "+ New"
- Selecione "Database" → "Add PostgreSQL"
- Aguarde a criação do banco de dados
- O Railway automaticamente criará a variável
DATABASE_URL
- Clique no serviço do seu app (não no banco de dados)
- Vá na aba "Variables"
- Adicione as seguintes variáveis:
| Variável | Descrição | Exemplo |
|---|---|---|
SECRET_KEY |
Chave secreta do Django (gere uma nova) | sua-chave-secreta-muito-longa-aqui |
DEBUG |
Modo debug (False em produção) | False |
ALLOWED_HOSTS |
Domínios permitidos | seu-app.up.railway.app |
CSRF_TRUSTED_ORIGINS |
Origens confiáveis para CSRF | https://seu-app.up.railway.app |
GOOGLE_OAUTH2_KEY |
Client ID do Google OAuth | xxxxx.apps.googleusercontent.com |
GOOGLE_OAUTH2_SECRET |
Client Secret do Google OAuth | GOCSPX-xxxxxxx |
EMAIL_HOST_USER |
Email para envio (opcional) | seu-email@gmail.com |
EMAIL_HOST_PASSWORD |
Senha de app do Gmail (opcional) | xxxx xxxx xxxx xxxx |
# Execute no terminal Python:
from django.core.management.utils import get_random_secret_key
print(get_random_secret_key())Ou use um gerador online: https://djecrety.ir/
- Acesse Google Cloud Console
- Crie um novo projeto ou selecione um existente
- Vá em "APIs & Services" → "Credentials"
- Clique em "Create Credentials" → "OAuth client ID"
- Selecione "Web application"
https://seu-app.up.railway.app/auth/complete/google-oauth2/
https://seu-app.up.railway.app
- Copie o Client ID e Client Secret para as variáveis de ambiente
- YouTube Data API v3
- YouTube Analytics API
- O Railway fará o deploy automaticamente ao detectar as mudanças
- Acompanhe o progresso na aba "Deployments"
- Após o deploy, o Railway executará automaticamente:
- Instalação das dependências
- Migrações do banco de dados
- Coleta de arquivos estáticos
- Inicialização do servidor Gunicorn
- Vá na aba "Settings" do serviço
- Em "Domains", clique em "Generate Domain"
- Copie o domínio gerado (ex:
seu-app.up.railway.app) - IMPORTANTE: Atualize as seguintes variáveis com o domínio correto:
ALLOWED_HOSTSCSRF_TRUSTED_ORIGINS
- Atualize as URIs de redirecionamento no Google Cloud Console
- Acesse o domínio do seu app
- Teste o login com Google
- Verifique se o dashboard carrega corretamente
- Clone o repositório:
git clone https://github.com/seu-usuario/mediascope.git
cd mediascope- Crie e ative um virtualenv:
python -m venv .venv
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windows- Crie o arquivo
.env:
SECRET_KEY=sua-secret-key-aqui
DEBUG=True
GOOGLE_OAUTH2_KEY=sua-chave-api-aqui
GOOGLE_OAUTH2_SECRET=sua-chave-secreta-aqui
DB_NAME=MediaScope
DB_USER=postgres
DB_PASSWORD=sua-senha-aqui
DB_HOST=localhost
DB_PORT=5432
EMAIL_HOST_USER=your-email-here
EMAIL_HOST_PASSWORD=your-password-here- Instale dependências:
pip install -r requirements.txt- Configure o banco de dados:
python manage.py migrate
python manage.py createcachetable- Rode o servidor:
python manage.py runserver 0.0.0.0:5000# Rodar migrações
python manage.py migrate
# Criar tabela de cache
python manage.py createcachetable
# Coletar arquivos estáticos
python manage.py collectstatic --noinput
# Rodar servidor de desenvolvimento
python manage.py runserver 0.0.0.0:5000
# Criar superusuário
python manage.py createsuperuser├── accounts/ # App de autenticação e usuários
├── analytics/ # App principal de analytics
├── core/ # App de páginas públicas (landing, planos)
├── subscriptions/ # App de assinaturas
├── config/ # Configurações do Django
├── static/ # Arquivos estáticos (CSS, JS, imagens)
├── staticfiles/ # Arquivos estáticos coletados (produção)
├── manage.py # Utilitário do Django
├── requirements.txt # Dependências Python
├── Procfile # Comando de produção
├── railway.json # Configurações Railway
├── nixpacks.toml # Configurações Nixpacks
└── runtime.txt # Versão do Python
- Verifique se
CSRF_TRUSTED_ORIGINScontém a URL correta do seu app - O formato deve ser:
https://seu-app.up.railway.app
- Atualize as URIs de redirecionamento no Google Cloud Console
- A URI deve ser:
https://seu-app.up.railway.app/auth/complete/google-oauth2/
- Verifique se
whitenoiseestá instalado e configurado noMIDDLEWARE - Execute
python manage.py collectstatic --noinput
- Verifique se o PostgreSQL está conectado ao serviço
- Verifique se
DATABASE_URLestá configurado nas variáveis
- Adicione o domínio correto em
ALLOWED_HOSTS
- Nunca versionar o
.envcom chaves reais - Use variáveis de ambiente para credenciais
- Mantenha o
DEBUG=Falseem produção - Implemente logs para monitorar erros
Este projeto é privado e de uso exclusivo do proprietário.