CineMatch é uma aplicação web projetada para auxiliar usuários na seleção de filmes, oferecendo diversos filtros personalizados para proporcionar uma experiência intuitiva e responsiva.
🚀 O objetivo do CineMatch é otimizar o tempo gasto na escolha de filmes, ao mesmo tempo em que sugere títulos inéditos ao usuário.
O projeto é desenvolvido utilizando as seguintes tecnologias:
- Python (3.8 ou superior) – Backend com Flask
- JavaScript (ES6 ou superior) – Frontend dinâmico
- HTML – Estruturação da interface
- CSS – Estilização da aplicação
- Flask – Construção da API
- Pytest (Última versão) – Testes unitários
- React (Última versão recomendada) – Construção da interface de usuário
- React Router DOM – Gerenciamento de rotas
- Axios – Requisições HTTP para APIs
- Node.js (Versão 16 ou superior) – Gerenciamento de pacotes e execução do frontend
- Vite API (^6.0.3) – Build otimizado do projeto
- Vite Test (^3.0.6) – Testes do frontend
Antes de rodar o projeto, certifique-se de ter instalado:
- Python 3.8+
- Node.js 16+
- Gerenciador de pacotes (npm ou yarn)
git clone https://github.com/Labourguignonn/cinematch.git
cd cinematchpython -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windowspip install -r requirements.txtflask runcd frontend
npm install # ou yarn install
npm run build # ou yarn dev- Cadastre-se no site da OpenAI e gere uma chave de API.
- Abra o arquivo
main.pye localize a classeAPI. - No método
__init__, adicione sua chave de API da OpenAI:
class API:
def __init__(self):
self.api_key = "SUA_API_KEY_AQUI" # Substitua pela sua chavecd backend
python3 main.py # Linux/Mac
python main.py # Windowscd frontend/app
npm run devCineMatch/
├── Backend/ # Código do backend (API e banco de dados)
│ ├── BancoFilmes.py # Comunicação com API do TMDb
│ ├── crud.py # Operações CRUD para manipulação de dados
│ ├── IntegracaoAPI.py # Comunicação com API da OpenAI
│ ├── main.py # Ponto de entrada da API (Flask/FastAPI)
│ ├── teste_db.py # Testes unitários para banco de dados
│ ├── testes_backend/ # Pasta de testes automatizados do backend
│ │ ├── test_crud.py
│ │ ├── test_integracaoAPI.py
│ │ ├── test_main.py
│ │ ├── test_movieDB.py
│ ├── usuarios.db # Banco de dados SQLite
│ └── __pycache__/ # Cache de compilação do Python (IGNORAR)
│
├── Frontend/ # Código do frontend (React + Vite)
│ ├── App.css # Estilos globais
│ ├── App.jsx # Componente principal do React
│ ├── main.jsx # Arquivo de inicialização do React
│ ├── assets/ # Imagens e ícones utilizados no projeto
│ │ ├── movie posters # Imagens dos filmes
│ │ ├── Login_register/ # Imagens usadas na tela de login e registro
│ ├── components/ # Componentes reutilizáveis do frontend
│ │ ├── BackButton.jsx
│ │ ├── NextButton.jsx
│ │ ├── ErrorMessage/
│ │ ├── Footer/
│ │ └── Navbar/
│ ├── pages/ # Páginas do site
│ ├── services/ # Configuração de API e requisições
│ ├── test/ # Testes unitários e de integração do frontend
│ ├── package.json # Dependências do frontend
│ ├── vite.config.js # Configuração do Vite para build
│
├── test-results/ # Resultados de testes automatizados
├── requirements.txt # Lista de dependências do backend (Python)
├── vercel.json # Configuração para deploy no Vercel (se aplicável)
├── README.md # Documentação principal do projeto
└── README copy.md # Backup do README (pode ser removido)