- Vue 61.4%
- Python 33.3%
- TypeScript 2.5%
- Dockerfile 1.7%
- CSS 0.6%
- Other 0.5%
| back | ||
| doc | ||
| front | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
IoT Projet 1
Rappel du sujet
L'objectif de ce projet est de concevoir et réaliser une plateforme web qui se met à jour automatiquement à partir de sources ouvertes et gratuites, afin d'informer les utilisateurs sur les vulnérabilités pertinentes aux objets connectés, de prioriser celles qui représentent le plus grand risque, et de proposer des mesures de mitigation concrètes.
Nous avons choisi de se concentrer sur le fabriquant Netgear qui est un fabriquant d'équipement réseaux. Ce choix a été fait car les équipements réseaux sont centraux dans les systèmes IoT, et sont souvent sujet à des vulnérabilités.
Installation
Pour exécuter notre projet, il faut:
- Cloner le projet.
git clone https://forge.piair.dev/UQAC/IoT-Projet1 && cd IoT-Projet1
- Modifier les fichiers d'environement avec les valeurs voulues.
cp front/.env{.example,} && vim front/.env
cp back/.env{.example,} && vim back/.env
- Lancer Docker compose.
docker compose up
- Visiter le site web.
Fonctionnement technique.
L'exécution du docker compose va créer 3 conteneurs:
- Une base de données Postgres
iot-database - Le frontend
iot-web - Le backend
iot-api
La description du fonctionnement du backend est décrit dans un fichier README dédié. Le Front end fait des requêtes API vers ce dernier afin d'afficher les informations à l'utilisateur.
Dépendances
Frontend
Les dépendances du frontend sont celle d'un projet VueJs. Voici un extrait du fichier package.json
"@vueuse/core": "^14.2.0",
"axios": "^1.13.5",
"ts-node": "^10.9.2",
"vue": "^3.5.27",
"vue-router": "^5.0.2"
Backend
Les dépendances du backend sont axées sur les deux opérations: servir une api (avec fastAPI) et faire des requêtes en arrière plan (avec asyncio et requests). Voici un extrait du fichier pyproject.toml
"asyncio>=4.0.0",
"fastapi>=0.128.2",
"psycopg>=3.3.2",
"python-dotenv>=1.2.1",
"requests>=2.32.5",
"sqlalchemy>=2.0.46",
"uvicorn>=0.40.0",