Sistema completo de recomendação de filmes, com backend para processamento de dados e frontend para interação com o usuário.
Esta seção cobre a configuração do servidor que coleta dados, os armazena e fornece a API de recomendações.
- Docker: Necessário para rodar o banco de dados PostgreSQL e o backend.
- Python 3.x: Para o servidor Flask e o scraper (caso deseje rodar sem Docker).
Iniciar o container PostgreSQL:
docker run --name some-postgres -e POSTGRES_PASSWORD=db_psswd -p 5432:5432 -d postgresConectar-se ao container:
docker exec -it some-postgres psql -U postgres(Use a senha db_psswd quando solicitado)
Criar banco e tabelas:
CREATE DATABASE db_name;
\c db_name
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS movies (
id SERIAL PRIMARY KEY,
title VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS ratings (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
movie_id INTEGER NOT NULL,
rating FLOAT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (movie_id) REFERENCES movies(id),
UNIQUE (user_id, movie_id)
);
\qCaso não esteja utilizando Docker, siga estas etapas para configurar o ambiente Python manualmente:
Navegue até a pasta do backend:
cd path/to/backendCriar e ativar ambiente virtual:
-
Windows:
python -m venv venv venv\Scripts\activate
-
macOS/Linux:
python3 -m venv venv source venv/bin/activate
Instalar dependências:
pip install -r requirements.txt-
Configuração do Ambiente:
- Crie um arquivo
.envna raiz do projeto (ao lado dodocker-compose.yml) com as seguintes variáveis de ambiente:
FLASK_APP=app.py FLASK_ENV=production FLASK_RUN_HOST=0.0.0.0 FLASK_RUN_PORT=5000 DB_HOST=db DB_PORT=5432 DB_NAME=db_name # Altere para o nome do banco de dados que você deseja DB_USER=postgres DB_PASSWORD=db_psswd # A senha definida no container PostgreSQL
- Crie um arquivo
-
Rodar com Docker Compose:
Na raiz do projeto, execute o comando para construir e iniciar os containers:
docker-compose up --build
O backend estará acessível em
http://localhost:5000e o banco de dados PostgreSQL estará acessível na porta5432.
Passo 1: Rodar o scraper para popular o banco de dados:
python scrap.pyPasso 2: Iniciar o servidor Flask:
python app.pyO backend estará rodando em:
http://127.0.0.1:5000
- Node.js e npm: Necessários para rodar o frontend em JavaScript.
Navegar até a pasta do frontend:
cd frontendInstalar dependências:
npm installIniciar o servidor de desenvolvimento:
npm run devO frontend estará disponível em:
http://localhost:3000(ou similar, conforme indicado no terminal)
- Docker: Necessário para criar e rodar os containers.
- Docker Compose: Usado para orquestrar os containers.
- Passo 1: Crie um arquivo
.envna raiz do projeto (ao lado dodocker-compose.yml) com as seguintes variáveis de ambiente:
FLASK_APP=app.py
FLASK_ENV=production
FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=5000
DB_HOST=db
DB_PORT=5432
DB_NAME=db_name # Altere para o nome do banco de dados que você deseja
DB_USER=postgres
DB_PASSWORD=db_psswd # A senha definida no container PostgreSQL- Passo 2: Edite o
docker-compose.ymlpara garantir que o nome do banco de dados e as variáveis de ambiente correspondam.
- Na raiz do projeto, execute o comando para construir e iniciar os containers:
docker-compose up --build- Após o processo de build, o backend estará rodando em
http://localhost:5000e o banco de dados PostgreSQL estará acessível na porta5432.
Para parar os containers, use:
docker-compose downCom o backend e o frontend rodando, abra o navegador e acesse o endereço do frontend para começar a usar o sistema de recomendação de filmes!