- Catálogo de carros — Listagem com busca por modelo
- Detalhes do veículo — Foto, placa, ano, preço e descrição gerada por IA
- CRUD completo — Cadastrar, editar e excluir carros
- Autenticação — Registro, login e logout
- Descrição inteligente — Geração automática de textos de venda com Google Gemini
- Inventário automático — Contagem e valor total atualizados via signals
- Upload de fotos — Suporte a JPEG, PNG e AVIF
- Admin Django — Gerenciamento completo pelo painel administrativo
| Tecnologia | Versão |
|---|---|
| Python | 3.13 |
| Django | 5.2 |
| Google Gemini | google-genai 2.7 |
| Bulma | 0.9.4 |
| Font Awesome | 6.5 |
| SQLite | — |
| Pillow | 11.2 |
| pillow-avif-plugin | 1.5 |
| python-dotenv | 1.2 |
git clone https://github.com/seu-usuario/carros.git
cd carrospython -m venv venv
# Windows
venv\Scripts\activate
# Linux / macOS
source venv/bin/activatepip install -r requirements.txtCrie um arquivo .env na raiz do projeto:
GOOGLE_API_KEY=sua_chave_aqui
DJANGO_SECRET_KEY=seu_secret_key_aquiGere um
DJANGO_SECRET_KEYcom:python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"Gere uma
GOOGLE_API_KEYem Google AI Studio
python manage.py migratepython manage.py createsuperuserpython manage.py runserverAcesse: http://127.0.0.1:8000/cars/
Ao cadastrar um carro sem descrição (bio), o sistema automaticamente gera um texto de venda usando o Google Gemini 2.5 Flash Lite com informações de modelo, marca e ano.
Sempre que um carro é adicionado ou removido, um registro de inventário é criado com a quantidade total de veículos e o valor total da frota.
- Valor mínimo do veículo: R$ 15.000
- Ano de fabricação mínimo: 1960
- Placa nos formatos brasileiro (
AAA-0000) ou Mercosul (AAA0A00) - Foto obrigatória no cadastro
| URL | Função |
|---|---|
/cars/ |
Listagem de carros |
/new_car/ |
Cadastrar novo carro |
/car/<id>/ |
Detalhes do carro |
/car/<id>/update |
Editar carro |
/car/<id>/delete |
Excluir carro |
/register/ |
Cadastro de usuário |
/login/ |
Login |
/logout/ |
Logout |
/admin/ |
Painel administrativo |

