Este projeto é uma API criada com FastAPI para recomendação de produtos baseada no histórico de compras de usuários e preferências como categorias e tags.
- Criação de usuários: Cadastro de novos usuários.
- Cadastro de produtos: Cadastro de produtos com nome, categoria e tags.
- Histórico de compras: Adicionar produtos ao histórico de compras de um usuário.
- Recomendações de produtos: Recomendação de produtos com base no histórico de compras e preferências do usuário.
- Python 3.9+
- FastAPI
- Pydantic
- Uvicorn (para rodar o servidor)
- Pytest (para testes automatizados)
-
Clone o repositório:
git clone https://github.com/uranolais/boas-praticas-python-curso01.git cd recomendacao-produtos
-
Crie um ambiente virtual:
python -m venv venv
-
Ative o ambiente virtual:
- No Windows:
venv\Scripts\activate
- No macOS/Linux:
source venv/bin/activate
- No Windows:
-
Instale as dependências:
pip install -r requirements.txt
-
Execute o servidor:
uvicorn app.main:app --reload
-
Acesse a documentação interativa da API: Abra o navegador e acesse
http://127.0.0.1:8000/docs
para visualizar e testar as rotas da API.
.
├── app
│ ├── main.py # Arquivo principal que inicia o FastAPI
│ ├── models # Modelos Pydantic usados pela API
│ │ ├── models_produtos.py
│ │ └── models_usuarios.py
│ ├── routers # Arquivos contendo os roteadores de usuários e produtos
│ │ ├── routers_produtos.py
│ │ └── routers_usuarios.py
├── tests
│ └── test_api.py # Testes para a API
├── venv # Ambiente virtual
├── README.md # Instruções sobre o projeto
└── requirements.txt # Dependências do projeto
- POST /usuarios/
{ "nome": "Usuário Teste" }
- POST /produtos/
{ "nome": "Produto Teste", "categoria": "Eletrônicos", "tags": ["tecnologia", "novo"] }
- POST /historico_compras/{usuario_id}
{ "produtos_ids": [1, 2] }
- POST /recomendacoes/{usuario_id}
{ "categorias": ["Eletrônicos"], "tags": ["novo"] }
Para rodar os testes unitários:
pytest tests/
Contribuições são bem-vindas! Sinta-se à vontade para abrir um pull request ou relatar um problema.