No description
Find a file
2026-09-18 11:11:18 +02:00
config Création du site 2026-09-18 11:11:18 +02:00
public Création du site 2026-09-18 11:11:18 +02:00
src Création du site 2026-09-18 11:11:18 +02:00
.gitignore Création du site 2026-09-18 11:11:18 +02:00
README.md Création du site 2026-09-18 11:11:18 +02:00

🚗 Voitures API Client - Architecture MVC PHP

Application web développée en PHP 8 / HTML5 / CSS3 / JavaScript suivant le patron de conception MVC (Modèle - Vue - Contrôleur), spécialement adaptée pour consommer l'API REST de gestion de véhicules disponible sur VoituresApi-API.


🚀 Connexion à l'API locale

  • URL de l'API locale : http://localhost:8888
  • Fichier de configuration : config/config.php
  • Authentification : Jeton Bearer (Authorization: Bearer <token> et X-API-KEY: <token>) stocké en session après connexion via POST /auth/login.

🔑 Comptes de démonstration préconfigurés dans l'API :

Rôle Identifiant Mot de passe Accès
Admin admin adminpassword Accès total à tous les véhicules, entretiens et notes
Utilisateur user userpassword Gestion de ses propres véhicules, entretiens et notes

(Sur la page de connexion /login, deux boutons de raccourci permettent de vous connecter en 1 clic avec ces comptes).


📁 Architecture du projet MVC

voituresAPI-Front/
├── config/
│   └── config.php          # Base URL (http://localhost:8888), timeouts & constantes
│
├── public/                 # Dossier public exposé par le serveur web
│   ├── .htaccess           # Redirection Apache vers index.php
│   ├── index.php           # Front Controller (point d'entrée unique & déclaration des routes)
│   └── assets/
│       ├── css/
│       │   └── style.css   # Feuille de style (plaques style FR, onglets, badges, responsive)
│       └── js/
│           └── main.js     # Recherche dynamique sans rechargement, alertes flash, confirmations
│
├── src/                    # Cœur du code MVC
│   ├── Core/
│   │   ├── Autoloader.php  # Autoloader PSR-4 interne
│   │   └── Router.php      # Routeur HTTP avec regex pour routes dynamiques (/cars/{id}...)
│   │
│   ├── Controllers/
│   │   ├── BaseController.php  # Méthodes de rendu, redirections et messages flash
│   │   ├── AuthController.php  # Connexion, inscription et déconnexion via l'API
│   │   └── CarController.php   # CRUD véhicules, relevés km, entretiens et notes
│   │
│   ├── Models/
│   │   └── Car.php             # Modèle Car correspondant exactement aux données de l'API
│   │
│   ├── Services/
│   │   └── ApiService.php      # Client HTTP cURL (GET, POST, PUT, DELETE, Bearer token)
│   │
│   └── Views/
│       ├── layout/
│       │   ├── header.php  # Navigation, statut connecté/déconnecté, recherche de plaque
│       │   └── footer.php  # Pied de page
│       ├── cars/
│       │   ├── index.php   # Grille des véhicules, plaques, propriétaires, filtres
│       │   ├── show.php    # Fiche détaillée avec onglets (km, entretiens, notes)
│       │   └── form.php    # Formulaire d'ajout / modification
│       ├── auth/
│       │   ├── login.php   # Page de connexion avec raccourcis 1-clic admin/user
│       │   └── register.php# Page d'inscription
│       └── errors/
│           └── 404.php     # Page d'erreur 404
│
├── .gitignore
└── README.md

🛣️ Routes de l'application Front

Méthode Route Action correspondante Accès
GET / ou /cars Liste tous les véhicules (GET /cars) Public
GET /cars?mine=1 Liste mes véhicules (GET /cars/mes-voitures) Authentifié
GET /cars/{id} Fiche détaillée avec km et entretiens (GET /cars/{id}) Public
GET /cars/create Formulaire d'ajout d'un véhicule Authentifié
POST /cars/create Envoi à l'API (POST /cars) Authentifié
GET /cars/{id}/edit Formulaire d'édition Propriétaire / Admin
POST /cars/{id}/edit Mise à jour dans l'API (PUT /cars/{id}) Propriétaire / Admin
POST /cars/{id}/delete Suppression (DELETE /cars/{id}) Propriétaire / Admin
POST /cars/{id}/kilometrage Ajout relevé km (POST /cars/{id}/kilometrage) Propriétaire / Admin
POST /cars/{id}/maintenance Ajout entretien (POST /cars/{id}/maintenance) Propriétaire / Admin
POST /cars/{id}/notes Ajout note de suivi (POST /cars/{id}/notes) Propriétaire / Admin
GET /login / POST /login Connexion (POST /auth/login) Public
GET /register / POST /register Inscription (POST /auth/register) Public
GET /logout Déconnexion (POST /auth/logout) Authentifié

💻 Démarrage du serveur

Assurez-vous que l'API tourne sur http://localhost:8888.

Lancez le serveur PHP pour le front-end depuis la racine de voituresAPI-Front :

php -S localhost:8000 -t public

Rendez-vous sur votre navigateur à l'adresse : http://localhost:8000