O CineMatch é uma plataforma inteligente de recomendação de filmes. O sistema usa inteligência artificial para entregar sugestões personalizadas de acordo com as preferências, ano de lançamento e avaliações inseridas pelos usuários.
-
Frontend: React, TypeScript, Tailwind CSS, Lucide Icons, Bun
-
Backend: Fastify, Drizzle ORM, PostgreSQL, Bun, Docker
-
Inteligência Artificial: Python, Uvicorn, FastAPI
Antes de começar, você precisará ter instalado em sua máquina:
- Docker & Docker Compose (Para o Banco de Dados)
- Python 3.10+ (Para o módulo de IA)
- Bun (Gerenciador de pacotes e runtime JS) -> Baixar Bun
O projeto é dividido em três partes que devem ser executadas na seguinte ordem:
O backend necessita do Docker para rodar o banco de dados e do Bun para rodar os scripts de sementes (seeds).
# Entre na pasta do backend
cd backend
# Suba os containers do banco de dados PostgreSQL
docker compose -f docker-compose.dev.yml up -d --build
# Para instalar dependencias
bun install
# Execute as migrações do Drizzle Kit para estruturar as tabelas
bunx drizzle-kit migrate
# Popule o banco com os gêneros e filmes iniciais
bun run db:seed:genres
bun run db:import:movies
# Entre na pasta da IA
cd ../ai
# Crie o ambiente virtual do Python
python -m venv venv
# Ative o ambiente virtual
source venv/bin/activate
# Instale as dependências de machine learning e API
pip install -r requirements.txt
# Inicie o servidor de inferência
uvicorn main:app --host 0.0.0.0 --port 8000# Abra um novo terminal e entre na pasta do frontend
cd frontend
# Instale as dependências de interface
bun install
# Inicie o servidor de desenvolvimento do React
bun run devApós iniciar todos os serviços com sucesso, as seguintes URLs locais estarão disponíveis para acesso:
-
Interface Web (Frontend): http://localhost:5173
-
API do Servidor (Backend): http://localhost:3000
-
Serviço de Inferência (IA): http://localhost:8000
💡 Nota: Certifique-se de preencher corretamente os arquivos
.envna raiz do/backende da/aicom suas credenciais do banco e chaves de API necessárias (como o token do TMDB) antes de rodar os comandos.