{"id":26198388,"url":"https://github.com/hajaarh/facial_reco_project","last_synced_at":"2026-04-16T18:04:37.302Z","repository":{"id":273551060,"uuid":"920095235","full_name":"Hajaarh/facial_reco_project","owner":"Hajaarh","description":"Application de reconnaissance faciale","archived":false,"fork":false,"pushed_at":"2025-01-22T18:01:32.000Z","size":1771,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T00:08:38.364Z","etag":null,"topics":["deepface","docker","flask-api","html","javascript","mysql"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hajaarh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-21T14:59:15.000Z","updated_at":"2025-02-24T22:43:08.000Z","dependencies_parsed_at":"2025-01-21T16:19:53.061Z","dependency_job_id":"343db691-22fd-4047-a105-c780aad2172f","html_url":"https://github.com/Hajaarh/facial_reco_project","commit_stats":null,"previous_names":["hajaarh/facial_reco_project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hajaarh/facial_reco_project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2Ffacial_reco_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2Ffacial_reco_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2Ffacial_reco_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2Ffacial_reco_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hajaarh","download_url":"https://codeload.github.com/Hajaarh/facial_reco_project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2Ffacial_reco_project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017381,"owners_count":26086052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepface","docker","flask-api","html","javascript","mysql"],"created_at":"2025-03-12T02:52:03.169Z","updated_at":"2025-10-14T00:08:39.607Z","avatar_url":"https://github.com/Hajaarh.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reconnaissance Faciale : Approche Docker\n\n## 1. Contexte et Objectif\n\nCe projet implémente un **système de reconnaissance faciale** dont les fonctionnalités principales sont :\n- **Enregistrer** un nouvel utilisateur (stockage des informations faciales sous forme d’“embeddings”).\n- **Vérifier** l’identité d’un utilisateur (pointage) en comparant l’“embedding” de son visage à ceux présents dans la base de données.\n\nLe tout est conçu pour être **exécuté via Docker**, offrant ainsi un déploiement simplifié :\n\n1. **Installation automatique** des dépendances Python (Flask, DeepFace, etc.) à partir d’un fichier `requirements.txt`.\n2. **Création automatique** de la base de données et des tables (grâce au code Flask qui invoque `db.create_all()`).\n3. **Exposition** d’une interface web pour l’enregistrement et le pointage (via un simple front HTML/CSS/JS).\n\n---\n\n## 2. Architecture et Approche\n\n### 2.1 Architecture globale\n\n- **Docker Compose** orchestre plusieurs services :\n  - **Service MySQL** (ou PostgreSQL) pour persister les embeddings et l’historique de pointage.\n  - **Service Flask** pour l’API de reconnaissance (DeepFace, SQLAlchemy, etc.).\n\n- **Fichier `requirements.txt`** : liste l’ensemble des dépendances Python (Flask, DeepFace, SQLAlchemy, etc.).  \n  - Lors de la construction de l’image Docker pour le service Flask, un simple `pip install -r requirements.txt` installe tout le nécessaire.\n\n- **Création automatique des tables** :  \n  - Pas de script SQL manuel. Le code Flask appelle `db.create_all()` au démarrage, générant les tables (`employee`, `attendance_record`) dans la base MySQL.\n\n### 2.2 Approche en détail\n\n1. **Conteneur Flask**  \n   - Basé sur Python 3.x + le contenu de `requirements.txt`.  \n   - Contient le code de reconnaissance (appel à DeepFace) et d’expositions des routes `/register`, `/clock_in`, etc.  \n   - Par défaut, écoute sur le port 5000.\n\n2. **Conteneur MySQL**  \n   - Géré via Docker Compose, avec les variables d’environnement (user, mot de passe, nom de la base) définies.  \n   - Les tables sont créées automatiquement par l’ORM (SQLAlchemy) quand Flask démarre.\n\n3. **Communication** :  \n   - Les deux conteneurs partagent un **réseau Docker**.  \n   - L’API Flask interagit avec MySQL via l’URI (ex. `mysql+pymysql://user:password@db:3306/facial_recognition`).  \n   - L’interface HTML s’adresse à Flask sur `http://localhost:5000` (mappé par Docker).\n   \n---\n\n## 3. Installation et Lancement\n\n1. **Installer Docker** et **Docker Compose** (version \u003e= 1.29).  \n2. **Cloner** ce dépôt ou en télécharger l’archive :  \n   ```bash\n   git clone https://github.com/ton-projet/facial_recognition.git\n   cd facial_recognition\n\n3. Lancez Docker Compose pour construire et démarrer les conteneurs :\n   ```bash\n   sudo docker-compose up -d\n   ```\n\n4. Accédez à l’application via votre navigateur à l’adresse :\n   - **Local** : `http://localhost:5000`\n   - **Serveur AWS** : Remplacez `localhost` par l’adresse IP publique de votre instance EC2.\n\n---\n## 4. Configuration et Utilisation\n\n### 4.1 Configuration des conteneurs\n- **Base de données** :\n  - MySQL est automatiquement initialisé avec les tables nécessaires (`Employee` et `AttendanceRecord`).\n- **Fichier de dépendances** :\n  - Le fichier `requirements.txt` contient toutes les bibliothèques nécessaires pour le backend Python.\n\n### 4.2 Utilisation\n\n1. **Enregistrer un nouvel utilisateur** :\n   - Entrez le nom de l’utilisateur et téléchargez une photo via le formulaire prévu.\n   - Le visage est traité pour générer un « embedding », ensuite sauvegardé dans la base.\n\n2. **Pointage** :\n   - Téléchargez une photo pour vérifier la correspondance avec les utilisateurs enregistrés.\n   - Si une correspondance est trouvée (distance inférieure au seuil), le pointage est enregistré.\n\n---\n\n\n## 5. Déploiement sur AWS\n\n1. **Configuration de l'instance EC2** :\n   - Utilisez une instance avec Docker pré-installé (ex. : Amazon Linux ou Ubuntu).\n\n2. **Accès SSH** :\n   ```bash\n   ssh -i \"votre-cle.pem\" ec2-user@votre-adresse-ip\n   ```\n\n3. **Lancer l'application** :\n   - Clonez le dépôt sur l’instance, configurez Docker Compose, puis suivez les étapes d’installation.\n\n4. **Sécurisation et accès distant** :\n   - Configurez un groupe de sécurité AWS pour autoriser les connexions HTTP/HTTPS (ports 80 et 443).\n\n---\n## 7. Contributeur\n- Hajar HAILAF\n---\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhajaarh%2Ffacial_reco_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhajaarh%2Ffacial_reco_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhajaarh%2Ffacial_reco_project/lists"}