Files
smart-house---final-/README.md
2026-05-28 11:57:16 +00:00

3.6 KiB

🏠 Smart House

Application web de tableau de bord domotique développée en PHP, permettant de surveiller et gérer une maison intelligente.


📋 Présentation

Smart House est un dashboard web qui permet de visualiser en temps réel les données de capteurs (climat, sécurité, énergie, lumière) et de gérer les utilisateurs avec un système de rôles Admin/User.


Fonctionnalités

Authentification

  • Connexion / Inscription sécurisée
  • Blocage après 3 tentatives échouées (5 minutes)
  • Déconnexion automatique après 15 minutes d'inactivité
  • Régénération de session après connexion

Gestion des utilisateurs

  • Inscription avec validation obligatoire par l'admin
  • Système de rôles : Admin / User
  • Profil utilisateur (changement de mot de passe)
  • Promotion / Rétrogradation des utilisateurs

Dashboard

  • Widget Climat (Température, Humidité, Pression, Altitude)
  • Widget Sécurité (Mouvement, Distance)
  • Widget Énergie (Puissance, Consommation)
  • Widget Lumière (Lux)
  • Graphiques Chart.js
  • Widget Alertes

Administration

  • Gestion des utilisateurs (accepter, refuser, supprimer, changer le rôle)
  • Paramètres du site (nom, tentatives max, durée session, message d'accueil)
  • Logs du dashboard

Interface

  • Mode sombre / clair
  • Design responsive (mobile, tablette, desktop)
  • Page 404 personnalisée

📁 Structure des fichiers

smart-house---final-/
    include/
        header.php          # En-tête HTML commun
        footer.php          # Pied de page commun
        nav.php             # Barre de navigation
        session_check.php   # Vérification de session
    js/
        chart.min.js        # Chart.js local
    index.php               # Page d'accueil
    login.php               # Page de connexion
    register.php            # Page d'inscription
    logout.php              # Déconnexion
    dashboard.php           # Tableau de bord
    profil.php              # Profil utilisateur
    admin_users.php         # Gestion des utilisateurs (Admin)
    admin_settings.php      # Paramètres du site (Admin)
    admin_logs.php          # Logs (Admin)
    404.php                 # Page d'erreur 404
    dashboard.js            # Scripts du dashboard
    style.css               # Styles CSS
    users.json.php          # Base de données utilisateurs
    settings.json.php       # Paramètres du site

🚀 Installation

Prérequis

  • PHP 7.4 ou supérieur
  • Serveur web (Apache, Nginx, ou serveur PHP intégré)

Lancement avec le serveur PHP intégré

php -S localhost:8000

Puis ouvrir dans le navigateur :

http://localhost:8000/

🔐 Comptes et accès

Compte Admin

  • Nom d'utilisateur : Kari
  • Mot de passe : Levasseur
  • Rôle : Admin

Compte Utilisateur

Les utilisateurs s'inscrivent via la page /register.php et doivent être validés par l'admin avant de pouvoir se connecter.


🛡️ Sécurité

  • Mots de passe hashés avec password_hash() (bcrypt)
  • Protection contre les attaques par force brute (blocage 5 min après 3 échecs)
  • Régénération de l'ID de session après connexion
  • Vérification du rôle à chaque chargement de page
  • Déconnexion automatique après inactivité
  • Protection des pages admin (redirection si non Admin)
  • Échappement des données avec htmlspecialchars()

🛠️ Technologies utilisées

  • PHP — Backend et gestion des sessions
  • HTML / CSS — Interface utilisateur
  • JavaScript — Interactions dynamiques
  • Chart.js — Graphiques
  • JSON — Stockage des données utilisateurs et paramètres

📅 Année

2026