listafilmes

🎬 Movie Favorites Manager

Aplicação full stack para pesquisar filmes na TMDb, assistir trailers do YouTube, montar múltiplas listas de favoritos e compartilhá-las. O frontend foi construído com React + Vite e o backend com Django + Django REST Framework.

🧭 Visão Geral

🎯 Principais Funcionalidades

Interface Web

API Backend

🚀 Como Executar Localmente

Pré-requisitos

1. Backend (Django)

cd backend
python -m venv venv  # opcional
venv\Scripts\activate  # Windows
pip install -r requirements.txt
cp .env.example .env  # ou copie manualmente e informe a DJANGO_SECRET_KEY
python manage.py migrate
python manage.py runserver 9000

O backend sobe em http://localhost:9000.

2. Frontend (React + Vite)

cd frontend
npm install
npm run lint  # conferindo lint
npm run dev

O frontend roda em http://localhost:5173.

3. Scripts Rápidos (Windows)

🔑 Configuração de APIs

TMDb

  1. Crie uma chave da API em https://www.themoviedb.org/settings/api.
  2. Copie frontend/env.example para frontend/.env.
  3. Defina VITE_TMDB_API_KEY=<sua_chave>.

YouTube Data API v3 (Opcional para trailers)

  1. Acesse o Google Cloud Console
  2. Crie um novo projeto ou selecione um existente
  3. Ative a API do YouTube Data API v3
  4. Crie uma chave de API
  5. Adicione ao seu .env:
    VITE_YOUTUBE_API_KEY=<sua_chave_do_youtube>
    

Nota: Sem a chave da TMDb, as requisições serão bloqueadas. Sem a chave do YouTube, apenas os trailers disponíveis diretamente da TMDb serão exibidos.

☁️ Publicar em Produção

Para instruções detalhadas de como fazer o deploy da aplicação em produção, consulte o guia completo em DEPLOY.md.

Visão Geral do Deploy

Variáveis de Ambiente Necessárias

🔗 Endpoints Principais

Método Rota Descrição
POST /api/save/ Salva uma nova lista de favoritos e retorna a lista completa, incluindo link de compartilhamento
GET /api/lists/ Retorna todas as listas salvas ordenadas do mais recente ao antigo
GET /api/<uuid>/ Detalha uma lista específica
DELETE /api/<uuid>/ Remove uma lista e retorna mensagem de sucesso
GET /api/shared/<id>/ Recupera uma lista pública via link compartilhável

📁 Estrutura Simplificada

projeto002/
├── backend/
│   ├── movie_api/
│   │   ├── models.py
│   │   ├── serializers.py
│   │   ├── views.py
│   │   └── urls.py
│   ├── movie_project/
│   │   ├── settings.py
│   │   └── urls.py
│   └── manage.py
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── services/
│   │   └── styles/
│   └── vite.config.js
├── INSTRUÇÕES.md
└── README.md

✅ Checklist de Funcionalidades

🧪 Testes & Ferramentas