Popcorn Galaxy é uma aplicação web completa para descoberta de filmes, gestão de watchlists e recomendações personalizadas baseadas em Inteligência Artificial.
O projeto combina um frontend moderno em React, um backend robusto em Node.js/Express e um microserviço de recomendação em Python (Flask) que utiliza algoritmos de similaridade (Cosine Similarity) para sugerir filmes com base nas avaliações do utilizador.
- Catálogo de Filmes: Consulta os filmes em tendência (Trending) via API do TMDB.
- Pesquisa Inteligente: Pesquisa filmes por título.
- Sistema de Autenticação: Registo e Login seguros com JWT (JSON Web Tokens).
- Avaliações (Ratings): Classifica filmes de 1 a 5 estrelas.
- Watchlist: Adiciona e remove filmes da tua lista de "Para Ver".
- Recomendações AI: Recebe sugestões personalizadas baseadas no teu histórico de avaliações e géneros favoritos.
- Perfil de Utilizador: Visualiza o histórico de filmes vistos, a watchlist e recomendações.
- React (Vite)
- CSS3 (Custom Styling & Animations)
- React Router DOM
- Node.js & Express (API Principal)
- Python & Flask (Serviço de Recomendação AI)
- PostgreSQL (Base de Dados Relacional)
- Docker (Containerização)
- TMDB API (The Movie Database)
- Docker Desktop instalado e a correr.
- Node.js (v18 ou superior).
O backend (Node.js, Python e PostgreSQL) é orquestrado via Docker.
- Navegue para a pasta raiz do projeto (onde está o
docker-compose.yml). - Crie um ficheiro
.envna pastabackendcom as chaves necessárias (ver secção Variáveis de Ambiente). - Execute o comando para levantar os serviços:
docker compose up -dIsto irá iniciar:
- Base de dados PostgreSQL (porta 5432)
- Backend Node.js (porta 8080)
- Serviço de Recomendação Python (porta 8000)
-
Abra um novo terminal e navegue para a pasta do frontend:
cd frontend -
Instale as dependências:
npm install
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Aceda à aplicação no browser (geralmente em
http://localhost:5173).
DB_HOST=db
DB_USER=postgres
DB_PASSWORD=tua_password
DB_NAME=ase_project
JWT_SECRET=tua_chave_secreta_jwt
TMDB_API_KEY=tua_chave_api_tmdb
EXPRESS_URL=http://backend:8080VITE_API_URL=http://localhost:8080
VITE_TMDB_KEY=tua_chave_api_tmdb- Carlos Jordão
- Hugo Barro
- Miguel Pereira
- Nuno Vasques
- Olek Sander