mirror of
https://github.com/BreizhHardware/projet-web-cipa4.git
synced 2026-05-09 00:07:27 +02:00
No description
- PHP 37.6%
- JavaScript 23.6%
- CSS 19.7%
- HTML 17.4%
- Bru 1%
- Other 0.7%
| .github | ||
| bruno | ||
| css | ||
| img | ||
| js | ||
| php | ||
| views | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .htaccess | ||
| 404.html | ||
| apache-config.conf | ||
| composer.json | ||
| composer.lock | ||
| Dockerfile | ||
| favicon.ico | ||
| icon.png | ||
| icon.svg | ||
| index.html | ||
| index.php | ||
| MIGRATIONS_README.md | ||
| README.MD | ||
| robots.txt | ||
| site.webmanifest | ||
| start_server.sh | ||
BlablISEN - Plateforme de Covoiturage Sécurisée en PHP Natif
Ce projet est une application de covoiturage simple implémentée avec un backend PHP (sans framework) et un frontend HTML/CSS/JS Vanilla.
Architecture
- Backend : PHP 8.x
- Structure MVC maison
- Routeur dans
index.phpqui gère/api/*et sert les fichiers statiques HTML pour les autres routes. - Base de données SQLite (fichier
db/blablISEN.db) - Sécurité : CSRF, XSS headers, sanitization des entrées, password hashing.
- Communication JSON pour toutes les routes
/api.
- Frontend : HTML5, CSS3, Javascript (Fetch API)
- Single Page Application (SPA-like) feeling mais avec des fichiers HTML distincts chargés par le routeur PHP.
- Interactions asynchrones avec l'API backend.
Installation et Démarrage
- Assurez-vous d'avoir PHP installé.
- Installez composer https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos
- Lancez l'installation des dépendances :
composer install - Lancez le serveur de développement :
Ou manuellement :./start_server.shphp -S localhost:8080 index.php - Accédez à l'application sur
http://localhost:8080
Note : La base de données est initialisée automatiquement si elle n'existe pas lors de la première requête, ou via /api/init-db.
Endpoints API
Toutes les réponses de l'API sont au format JSON.
Authentification
GET /api/csrf: Récupère un token CSRF valide.POST /api/login: Connecte un utilisateur.- Body:
{ "email": "...", "password": "...", "csrf_token": "..." }
- Body:
POST /api/register: Inscrit un nouvel utilisateur.- Body:
{ "email": "...", "password": "...", "firstname": "...", "lastname": "...", "phone": "...", "csrf_token": "..." }
- Body:
GET /api/logout: Déconnecte l'utilisateur.
Utilisateur
GET /api/user/profile: Récupère les infos du profil, les véhicules et les réservations de l'utilisateur connecté.
Trajets (Trips)
GET /api/trips?from=...&to=...&date=...: Recherche des trajets.POST /api/trips/create: Publie un nouveau trajet.- Body:
{ "departure_city": "...", "arrival_city": "...", "departure_time": "...", "seats_available": 3, csrf_token": "..." }
- Body:
Réservations (Bookings)
POST /api/book: Réserve un trajet.- Body:
{ "trip_id": 1, "seats": 1, "csrf_token": "..." }
- Body:
Notes (Ratings)
POST /api/ratings/add: Note un conducteur après un trajet.- Body:
{ "trip_id": 1, "driver_id": 2, "rating": 5, "comment": "...", "csrf_token": "..." }
- Body:
Tests API avec Bruno
Le dossier bruno/ contient la collection complète pour tester l'API.
- Ouvrez Bruno.
- Ouvrez la collection située dans le dossier
bruno/du projet. - Sélectionnez l'environnement
Local. - L'ordre recommandé pour tester est :
Auth / 01 - Get CSRF Token(Indispensable pour récupérer le token initial)Auth / Register ActionAuth / 02 - Login ActionTrips / Create TripTrips / List TripsBookings / Book Trip