# đ żïž Smart Parking > SystĂšme complet de gestion de parking intelligent avec authentification, rĂ©servation et paiement QR code ## đ FonctionnalitĂ©s ### đ Authentification - Inscription avec nom, email, tĂ©lĂ©phone et mot de passe - Connexion sĂ©curisĂ©e - Gestion de profil - Deux rĂŽles : Client et Administrateur ### đșïž Carte du Parking - **10 places** visuelles (modifiable par l'admin) - 3 Ă©tats : Libre â , OccupĂ©e đ, RĂ©servĂ©e đ - Mise Ă jour en temps rĂ©el - DĂ©tails de chaque place au clic ### đ SystĂšme de RĂ©servation - SĂ©lection de la place - Choix de la date et heure - DurĂ©e : 30min, 1h, 2h, 4h, JournĂ©e - Saisie de la plaque d'immatriculation ### đł Paiement QR Code - GĂ©nĂ©ration de QR code unique - Code de paiement affichĂ© - Confirmation du paiement ### đ€ Espace Client - Consulter la carte des places - Voir les tarifs - Faire une rĂ©servation - Voir l'historique des rĂ©servations - GĂ©rer son profil ### âïž Panel Admin - Voir toutes les statistiques - Modifier le nombre de places - GĂ©rer l'Ă©tat de chaque place - Voir tous les utilisateurs - Voir toutes les rĂ©servations - Annuler/terminer des rĂ©servations - Voir l'historique complet ## đ° Tarifs | DurĂ©e | Prix | |-------|------| | 30 minutes | 2⏠| | 1 heure | 3⏠| | 2 heures | 5⏠| | 4 heures | 8⏠| | JournĂ©e (8h) | 15⏠| ## đ Installation ### PrĂ©requis - Node.js 18+ - npm ### Ătape 1 : Installer les dĂ©pendances ```bash cd server npm install ``` ### Ătape 2 : DĂ©marrer le serveur ```bash npm start ``` Pour le dĂ©veloppement (avec redĂ©marrage automatique) : ```bash npm run dev ``` ### Ătape 3 : AccĂ©der au site Ouvrir un navigateur et aller sur : ``` http://localhost:3000 ``` ## đ Compte par dĂ©faut **Administrateur :** - Email : `admin@smartparking.fr` - Mot de passe : `admin123` ## đ Structure du projet ``` smart-parking/ âââ index.html # Page de connexion/inscription âââ css/ â âââ style.css # Styles globaux â âââ auth.css # Styles authentification â âââ dashboard.css # Styles dashboard âââ js/ â âââ auth.js # Gestion authentification â âââ dashboard.js # Gestion dashboard â âââ map.js # Carte des places â âââ reservation.js # SystĂšme de rĂ©servation â âââ admin.js # Panel admin âââ pages/ â âââ dashboard.html # Dashboard principal âââ server/ â âââ package.json # DĂ©pendances Node.js â âââ server.js # Serveur principal â âââ db/ â â âââ database.js # Gestion SQLite â âââ middleware/ â â âââ auth.js # Middleware JWT â âââ routes/ â âââ api.js # Routes API âââ README.md # Ce fichier ``` ## đ API REST ### Authentification | MĂ©thode | Endpoint | Description | |---------|----------|-------------| | POST | `/api/register` | Inscription | | POST | `/api/login` | Connexion | ### Utilisateurs | MĂ©thode | Endpoint | Description | |---------|----------|-------------| | GET | `/api/users` | Liste des utilisateurs (admin) | | DELETE | `/api/users/:id` | Supprimer un utilisateur (admin) | ### Places | MĂ©thode | Endpoint | Description | |---------|----------|-------------| | GET | `/api/spots` | Liste des places | | PUT | `/api/spots/:id/status` | Modifier le statut | | POST | `/api/spots/init` | RĂ©initialiser les places (admin) | ### RĂ©servations | MĂ©thode | Endpoint | Description | |---------|----------|-------------| | GET | `/api/reservations` | Mes rĂ©servations | | GET | `/api/reservations/all` | Toutes les rĂ©servations (admin) | | POST | `/api/reservations` | CrĂ©er une rĂ©servation | | PUT | `/api/reservations/:id/cancel` | Annuler une rĂ©servation | ### Statistiques | MĂ©thode | Endpoint | Description | |---------|----------|-------------| | GET | `/api/stats` | Statistiques du parking | | GET | `/api/history` | Historique (admin) | ## đ ïž Technologies utilisĂ©es ### Frontend - HTML5 - CSS3 (responsive) - JavaScript vanilla - Chart.js (graphiques) - QRCode.js (gĂ©nĂ©ration QR) ### Backend - Node.js - Express.js - SQLite3 - JWT (authentification) - bcryptjs (hashage mots de passe) ## đ± Fonctionnement ### Pour les clients : 1. CrĂ©er un compte ou se connecter 2. Consulter la carte des places disponibles 3. Choisir une place libre 4. SĂ©lectionner date, heure et durĂ©e 5. Scanner le QR code pour payer 6. La place est rĂ©servĂ©e ! ### Pour l'administrateur : 1. Se connecter avec le compte admin 2. AccĂ©der au panel Admin 3. Voir toutes les statistiques 4. GĂ©rer les places (cliquer pour changer l'Ă©tat) 5. Modifier le nombre total de places 6. GĂ©rer les utilisateurs et rĂ©servations ## đ SĂ©curitĂ© - Mots de passe hashĂ©s avec bcrypt - Authentification JWT - Protection des routes sensibles - Validation des donnĂ©es ## đ Notes - Les donnĂ©es sont stockĂ©es dans SQLite (`server/db/smart-parking.db`) - Le systĂšme fonctionne aussi en mode offline (stockage local) - La simulation automatique change l'Ă©tat des places toutes les 5 secondes ---
đ żïž Smart Parking - BTS CIEL IR 2025 đ żïž