Files
garagemanager/README.md
T

4.5 KiB

🔧 GarageManager

Application de gestion de garage automobile — suivi véhicules, interventions et pièces.

Python FastAPI Docker


Fonctionnalités

  • Véhicules — Enregistrement complet (immatriculation, VIN, kilométrage, marque/modèle/année)
  • Interventions — Historique par véhicule avec date, kilométrage, technicien, coûts main d'œuvre
  • Pièces — Suivi par intervention avec référence, marque, prix, quantité et photo optionnelle
  • Clients — Gestion des propriétaires de véhicules
  • Infos & Notes — Ajout de textes, URLs et photos sur chaque véhicule
  • Dashboard — Vue d'ensemble : stats globales, dernières interventions

🎨 Design

Thème sombre futuriste inspiré du projet location de Perco :

  • Fond noir (#0a0f1a) avec dégradés subtils cyan/jaune
  • Accents électriques : cyan #00d4ff et volt #facc15
  • Police Outfit + JetBrains Mono pour les références/immatriculations
  • Sidebar dark avec navigation intuitive

🚀 Démarrage rapide

# Lancer le service
cd /opt/container/garagemanager
docker compose up -d

# Rebuild complet (après modif templates/code)
docker compose build --no-cache && docker compose up -d

# Logs
docker compose logs -f

🏗️ Architecture

garagemanager/
├── app/
│   ├── __init__.py
│   └── main.py          # FastAPI routes + SQLite logic
├── templates/           # Jinja2 templates (thème dark)
│   ├── base.html        # Layout sidebar + variables CSS
│   ├── dashboard.html   # Stats cards + tableau récent
│   ├── vehicules.html   # Liste véhicules
│   ├── vehicule_form.html
│   ├── vehicule_detail.html   # Interventions + pièces + infos
│   ├── interventions.html
│   ├── intervention_form.html
│   ├── intervention_detail.html  # Détail + gestion pièces
│   ├── clients.html
│   ├── client_form.html
│   └── client_detail.html
├── data/
│   └── garage.db        # Base SQLite (volume Docker)
├── Dockerfile
├── docker-compose.yml
└── requirements.txt

🔌 API REST

FastAPI génère automatiquement la documentation :

Endpoints principaux

Méthode Route Description
GET / Dashboard
GET /vehicules Liste des véhicules
POST /vehicules/new Créer un véhicule
GET /vehicules/{id} Détail véhicule
GET /interventions Liste des interventions
POST /interventions/new Créer une intervention
POST /interventions/{id}/pieces/add Ajouter une pièce

🗃️ Modèle de données (SQLite)

-- Clients
CREATE TABLE clients (
    id TEXT PRIMARY KEY,
    nom TEXT NOT NULL,
    prenom TEXT NOT NULL,
    telephone TEXT,
    email TEXT,
    adresse TEXT,
    created_at TEXT
);

-- Véhicules
CREATE TABLE vehicules (
    id TEXT PRIMARY KEY,
    immatriculation TEXT NOT NULL,
    marque TEXT NOT NULL,
    modele TEXT NOT NULL,
    annee INTEGER,
    kilometrage INTEGER,
    vin TEXT,
    client_id TEXT REFERENCES clients(id),
    created_at TEXT
);

-- Interventions
CREATE TABLE interventions (
    id TEXT PRIMARY KEY,
    vehicule_id TEXT NOT NULL REFERENCES vehicules(id),
    description TEXT NOT NULL,
    date_intervention TEXT,
    kilometrage_intervention INTEGER,
    cout_main_oeuvre REAL DEFAULT 0,
    technicien TEXT,
    notes TEXT,
    created_at TEXT
);

-- Pièces
CREATE TABLE pieces (
    id TEXT PRIMARY KEY,
    intervention_id TEXT NOT NULL REFERENCES interventions(id),
    nom TEXT NOT NULL,
    reference TEXT,
    marque TEXT,
    prix REAL DEFAULT 0,
    quantite INTEGER DEFAULT 1,
    photo TEXT,
    created_at TEXT
);

⚙️ Configuration

Variable d'env Défaut Description
DB_PATH /data/garage.db Chemin vers la base SQLite

🌐 Accès


Développé par l'équipe Perco — Design Luca, Backend intégré FastAPI