Skip to content

🔐SentinelPi est un projet d'Ă©quipe, IoT full-stack, permettant la sĂ©curisation des accĂšs par reconnaissance d’empreintes digitales sur Raspberry Pi, avec serrure Ă©lectrique contrĂŽlĂ©e localement. Une gestion des utilisateurs par un admin est disponible via l’interface web dĂ©ployĂ©e sur le cloud

Notifications You must be signed in to change notification settings

BaptFr/sentinelPi-IoT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IT-Akademy logo

Project Project Session

Open Project IoT




Pitch


SentinelPi est une solution d'accĂšs et de contrĂŽle d’accĂšs nouvelle gĂ©nĂ©ration, alliant sĂ©curitĂ© renforcĂ©e, simplicitĂ© et confidentialitĂ©.


Basé sur un Raspberry Pi, le systÚme permet l'ouverture de la serrure connectée par reconnaissance d'empreintes digitales, ainsi qu'un contrÎle à distance par un administrateur qui a la possibilité de modifier les accÚs, gérer les utilisateurs mais aussi de suivre les entrées ou tentatives via un historique.




🌍 Interface web accessible de partout : grĂące Ă  un tableau de bord administrateur dĂ©ployĂ© dans le cloud, le superviseur peut consulter l’historique, gĂ©rer les utilisateurs et surveiller les accĂšs depuis n’importe oĂč.

đŸ‘„ Gestion des utilisateurs : ajout de personnes, modification ou suppression des autorisations Ă  l'accĂšs depuis le dashboard de l'administrateur.

📊 Suivi intelligent en temps rĂ©el : chaque tentative d’accĂšs (acceptĂ©e ou refusĂ©e) sur la serrure est horodatĂ©e, tracĂ©e et immĂ©diatement visible Ă  distance par le superviseur. Lorsqu’un accĂšs est validĂ©, la personne est identifiĂ©e clairement sur le dashboard, garantissant une traçabilitĂ© sans transit des donnĂ©es biomĂ©triques.

🔒 ConfidentialitĂ© et sĂ©curitĂ© : les donnĂ©es biomĂ©triques restent strictement locales et ne quittent jamais l’appareil. Les informations utilisateurs, elles, sont stockĂ©es sur le cloud sans les empreintes, garantissant une sĂ©paration totale entre identitĂ© et biomĂ©trie.

En combinant fiabilitĂ© matĂ©rielle, sĂ©curitĂ© logicielle et ergonomie web, SentinelPi propose une solution "clĂ©" en main pour un contrĂŽle d’accĂšs moderne et robuste.




Infos

  • AccĂšs pour Login Ă  l'interface Admin sur https://www.sentinelpi.tech .

  • Interface et Dashboard Admin consultables dans la vidĂ©o de DĂ©monstration en bas de page (ou accĂšs fournis sur demande).

  • Code du Raspberry ajoutĂ© dans la branche "raspberry" du repo.




Features

  • Interface web admin sĂ©curisĂ© accessible depuis n'importe oĂč.

  • Gestion des utilisateurs Ă  distance (ajout / suppression / modification).

  • Suivi des accĂšs en temps rĂ©el et historiques des accĂšs ou tentatives d'accĂšs avec horodatage.

  • SĂ©curitĂ© renforcĂ©e par la sĂ©paration des donnĂ©es : donnĂ©es biomĂ©triques locales sans donnĂ©es utilisateurs / DonnĂ©es utilisateurs cloud sans images biomĂ©triques.

  • AccĂšs sĂ©curisĂ©s par reconnaissance d'empreintes digitales.

  • SystĂšme polyvalent adaptable Ă  plusieurs supports d'accĂšs (portes, casiers, coffres...).

  • Jusqu'Ă  300 utilisateurs reconnus par serrure.




Stack



Frontend - Interface web admin pour la gestion des utilisateurs et la visualisation des accĂšs

HTML CSS JavaScript

  • Langages : Pour la Verison 1 HTML, CSS, JavaScript
  • Communication : RequĂȘtes HTTPS pour interagir avec le backend (REST API)



Raspberry Pi 4 / Dispositif embarqué

Raspberry Pi Linux Python WebSocket

  • SystĂšme : Linux
  • Langage : Python 3
  • Gestion du capteur d’empreintes digitales : pyfingerprint
  • ContrĂŽle matĂ©riel : RPi.GPIO
  • Communication avec le backend : WebSocket sĂ©curisĂ© (WSS, protocole chiffrĂ©)



Backend / API Server

Python Pydantic v2

API SQLAlchemy SQLite WebSocket DigitalOcean

OAuth2 bcrypt Passlib

  • Langage : Python 3
  • Framework web : FastAPI + Starlette
  • Base de donnĂ©es relationnelle : PostgreSQL via SQLAlchemy (V1). Migration possible vers la base PostgreSQL de l’hĂ©bergeur.
  • Validation et modĂ©lisation des donnĂ©es : Pydantic
  • Authentification et sĂ©curitĂ© : JWT (python-jose), hashage (bcrypt, passlib), OAuth2
  • DĂ©ploiement : Serveur cloud Ubuntu (DigitalOcean) – 2 vCPUs, 8 GB RAM, 25 GB stockage, 4 TB trafic
  • Gestion du domaine : Tech Domain (.tech) avec DNS management


📩 Installer facilement l'ensemble des dĂ©pendances nĂ©cessaires au projet

Le fichier requirements.txt inclus Ă  la racine du projet sert Ă  lister toutes les dĂ©pendances Python du projet afin que n’importe qui puisse les installer facilement avec pip (pip estinclus dans Python).

Etapes et commandes Bash:

1. Créer un environnement virtuel


2. Installer les dépendances

pip install -r requirements.txt

3. Ajouter un package

pip install nom_du_package
pip freeze > requirements.txt

4. Ne pas pas upgrade requirement.txt

Le fichier requirement.txt sert aussi à figer les dépendance pour éviter une mise à jour des dépendances cassant le code en créant des incompatibilités (pip freeze > requirements.txt).



Documentation

En cours ...



Team & organisation


Jawad LAMHAOURKI

Ludivine THINET

Robin ZAFRANI

Baptiste SALAZAR


Méthodes et outils d'organisation:

Travail en commun, partages de documents:

  • Google Drive , Google Doc
  • ContrĂŽle de versions: git
  • Bonnes pratiques communes GitHub dans le repo: fichier CONTRIBUTING.md

Demo

Lien vers vidéo de démonstration fonctionnelle:

About

🔐SentinelPi est un projet d'Ă©quipe, IoT full-stack, permettant la sĂ©curisation des accĂšs par reconnaissance d’empreintes digitales sur Raspberry Pi, avec serrure Ă©lectrique contrĂŽlĂ©e localement. Une gestion des utilisateurs par un admin est disponible via l’interface web dĂ©ployĂ©e sur le cloud

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published