zkt26/z1/webapp
2026-03-31 19:33:15 +02:00
..
config project assignment 1 docker push 2026-03-31 19:33:15 +02:00
img project assignment 1 docker push 2026-03-31 19:33:15 +02:00
middleware project assignment 1 docker push 2026-03-31 19:33:15 +02:00
public project assignment 1 docker push 2026-03-31 19:33:15 +02:00
routes project assignment 1 docker push 2026-03-31 19:33:15 +02:00
views project assignment 1 docker push 2026-03-31 19:33:15 +02:00
.dockerignore project assignment 1 docker push 2026-03-31 19:33:15 +02:00
Dockerfile project assignment 1 docker push 2026-03-31 19:33:15 +02:00
index.js project assignment 1 docker push 2026-03-31 19:33:15 +02:00
package-lock.json project assignment 1 docker push 2026-03-31 19:33:15 +02:00
package.json project assignment 1 docker push 2026-03-31 19:33:15 +02:00
query project assignment 1 docker push 2026-03-31 19:33:15 +02:00
Rapport_Projet_WEB_GIG2_Groupe5.pdf project assignment 1 docker push 2026-03-31 19:33:15 +02:00
README.md project assignment 1 docker push 2026-03-31 19:33:15 +02:00
user.sql project assignment 1 docker push 2026-03-31 19:33:15 +02:00

🌐 Projet Web - Smart Building (Maison Connectée)

Bienvenue dans le projet web de gestion d'une maison connectée réalisé dans le cadre de notre formation.

Ce projet permet de gérer différents objets connectés dun bâtiment (lumières, climatiseurs, thermostats, etc.) avec des rôles utilisateurs, une interface de connexion, de gestion et de visualisation.

📦 Prérequis Assurez-vous davoir les outils suivants installés : Node.js (version 18 ou + recommandée) npm un serveur local avec phpMyAdmin et MySQL

⚙️ Installation du projet Si vous arrivez à lire ce README vous avez donc réussi à cloner le lien github.

Ouvrir un terminal dans le dossier du projet : cd projetWEB

⚙️ Installer les dépendances Node.js : npm install

Cela installera notamment : - express - ejs - bcrypt / bcryptjs - multer - mysql - nodemon - express-session - path

📁 Configuration de la base de données Démarrer MySQL et phpMyAdmin (avec les pc de cy tech sur ubuntu normalement l'identifiant est root et le mot de passe est cytech0001)

Créer une base de données nommée user dans phpMyAdmin Importer le fichier SQL : Aller dans phpMyAdmin > Base user > Importer Sélectionner le fichier SQL fourni (user.sql) Valider

⚠️ Vérifiez que toutes les tables ont bien été créées (utilisateur, objet, etc.)

🚀 Lancement du serveur Lancer le serveur local avec nodemon : npm run dev

Le serveur démarrera sur : 👉 http://localhost:3000 Structure de navigation du site : / → Accueil /connexion → Connexion utilisateur /inscription → Formulaire dinscription/objets → Liste des objets connectés (accès selon statut) /admin → Dashboard administrateur (vous n'y avez accès que si vous êtes connecté en tant qu'admin) /admin → Dashboard administrateur (vous n'y avez accès que si vous êtes connecté en tant que complexe) /profil → Modification du profil /membres → Liste des utilisateurs (selon rôle)

👤 Rôles utilisateurs :

visiteur → accès limité, simple visite et visualisation des objets et des membres et aucune modification possible

simple → peut consulter et modifier les objets en cliquant sur l'engrenage dans la page objets connectés (si vous voulez vous connecter à un compte utilisateur simple vous pouvez utiliser comme identifiant garricastres et comme mot de passe 1234)

complexe → accès complet à la gestion dobjets à l'aide d'un petit dashboard (si vous voulez vous connecter à un compte utilisateur simple vous pouvez utiliser comme identifiant clement_cx et comme mot de passe 1234)

administrateur → contrôle total à l'aide d'un dashboard (ajout/suppression utilisateurs et objets) (si vous voulez vous connecter à un compte utilisateur simple vous pouvez utiliser comme identifiant admin et comme mot de passe 1234)

📸 Upload des photos Les photos de profil sont stockées dans le dossier /img

🧪 Scripts utiles Dans un terminal se mettre au niveau du dossier projetWEB démarrer avec nodemon : npm run dev démarrer sans nodemon : node index.js

💡 Développement Technos utilisées :

Node.js + Express pour le backend EJS comme moteur de vues MySQL comme base de données Multer pour le téléchargement de fichiers bcrypt pour sécuriser les mots de passe

🧑‍🏫 Projet réalisé par : Guillaume Arricastres, Zoe Artigas, Augustin Contal, Lucas Coquet, Thomas Kluczny

Cytech GI Groupe 2 Année 2025

Merci pour votre attention