- Python 3.11+ (recomendado)
- MySQL rodando localmente (ou ajuste o DATABASE_URL para outro banco)
- Crie/edite o arquivo
.env:DATABASE_URL(exemplo MySQL)SECRET_KEY(use uma chave forte)
- Garanta que o usuario do banco tenha permissao de acesso.
Exemplo:
DATABASE_URL=mysql+pymysql://app_user:sua_senha@localhost:3306/luxury_wheels
SQL_ECHO=false
SECRET_KEY=sua_chave_secreta
pip install -r requirements.txt
uvicorn main:app --reload
Docs: http://127.0.0.1:8000/docs
- CRUD de veiculos, clientes, reservas e formas de pagamento via API (Swagger).
- Dashboard em
/dashboardcom indicadores e alertas. - Exportacao em Excel/CSV:
/api/export/{entity_type}?file_format=xlsx|csventity_type: vehicles, clients, reservations, payments
- Veiculos em manutencao (
is_maintenance=true) ficam indisponiveis para novas reservas.
- Inicie o servidor:
uvicorn main:app --host 127.0.0.1 --port 8000
- Inicialize o banco (cria tabelas):
python scripts/init_db.py
- Se ja tiver tabelas antigas e quiser recriar tudo:
set DROP_DB=truee rode o mesmo comando novamente.
- Se nao houver veiculos, execute o seed:
python scripts/seed_data.py
- Acesse o painel admin:
http://127.0.0.1:8000/admin- Crie usuario e faca login
- O primeiro usuario registrado vira admin automaticamente
- Use as abas de Veiculos/Clientes/Reservas/Pagamentos
- Dashboard:
- Visual:
http://127.0.0.1:8000/admin-tools - API:
http://127.0.0.1:8000/dashboard
- Visual:
- Exportacao:
http://127.0.0.1:8000/api/export/vehicles?file_format=xlsxhttp://127.0.0.1:8000/api/export/vehicles?file_format=csv
- Front publico:
- Lista de carros:
http://127.0.0.1:8000/car-list - Reserva:
http://127.0.0.1:8000/reserva - Login:
http://127.0.0.1:8000/login
- Lista de carros:
pytest
- Erro
Access denied for user: usuario/senha do MySQL incorretos ou sem permissao.