🔹 Un Proof-of-Concept (PoC) innovant visant à simplifier la prise de notes médicales grâce à une application mobile connectée à un back-end sécurisé et intégrant une intelligence artificielle (simulée pour l’instant).
💡 Objectif : Permettre à un professionnel de santé d’enregistrer une consultation, d’envoyer l’audio pour traitement, et d’afficher une transcription ainsi qu’un résumé structuré.
- ✨ Fonctionnalités
- 🛠️ Technologies Utilisées
- 📌 Prérequis
- ⚙️ Installation
- 📂 Structure du Projet
- 🚀 CI/CD
- 📈 Améliorations Futures
- 🤝 Contribuer
- 📧 Contact
✔️ Endpoint RESTful /upload
(POST) acceptant un fichier audio via multipart/form-data
.
🔒 Gestion des fichiers audio :
- 📥 Sauvegarde temporaire sur le serveur.
- 🔐 Chiffrement basique (AES-256) simulant la protection des données.
- ❌ Suppression du fichier en clair après chiffrement.
📝 Traitement de l’audio :
- 🔊 Transcription simulée : Génération d’un texte fictif.
- 🤖 Résumé structuré via IA (simulée) : Catégorisation en anamnèse, diagnostic, traitement.
📤 Réponse JSON :
{
"transcription": "Ceci est une transcription simulée.",
"summary": "Résumé structuré ici.",
"encrypted_file_path": "/secured/audio.enc"
}
🎙️ Enregistrement audio : Interface utilisateur simple via Expo & React Native.
📤 Envoi du fichier audio : Transmission vers /upload
.
📑 Affichage des résultats : Récupération et affichage du résumé et transcription.
📌 Front-end : Expo, React Native, Restyle, Redux Toolkit
📌 Back-end : Express.js, MySQL
📌 CI/CD : GitHub Actions
✅ Node.js (v14+ recommandé)
✅ npm ou yarn
✅ MySQL Server
✅ Expo CLI (pour le développement mobile)
✅ Git
- Cloner le dépôt :
git clone <repository-url> cd <repository-directory>/backend
- Installer les dépendances :
npm install
- Configurer les variables d’environnement :
Créez un fichier.env
et ajoutez :PORT=3000 DB_HOST=localhost DB_USER=root DB_PASSWORD=yourpassword DB_NAME=notes_db ENCRYPTION_KEY=your_secret_encryption_key_here
- Démarrer le serveur :
npm start
- Aller dans le répertoire du front-end :
cd ../frontend
- Installer les dépendances :
npm install
- Démarrer Expo :
npm start
📁 project-root
├── 📂 backend
│ ├── 📁 controllers # Logique des requêtes
│ ├── 📁 routes # Définition des endpoints REST
│ ├── 📁 utils # Fonctions utilitaires (ex: chiffrement)
│ ├── 📄 app.js # Point d’entrée du serveur
│ ├── 📄 package.json # Dépendances backend
│ └── 📄 .env # Variables d’environnement
├── 📂 frontend
│ ├── 📁 src
│ │ ├── 📁 features # fonctionnalités principales (écrans)
│ │ ├── 📁 shared # dossiers contenant des composants, services, styles, ... reutilisables
│ │ ├── 📁 navigations # navigations dans l'application
│ │ ├── 📁 theme # theme de l'application
│ │ ├── 📁 store # contenant les configurations de base redux-toolkit
│ │ ├── 📁 config # config de l'application
│ │ └── 📄 App.js # Point d’entrée de l’app mobile
│ ├── 📄 package.json # Dépendances frontend
│ └── 📄 app.json # Configuration Expo
└── 📄 README.md # Ce fichier
✅ GitHub Actions est utilisé pour :
- Linting & tests avant chaque push.
- Déploiement automatique du back-end en cas de build réussi.
Le fichier de workflow est dans .github/workflows/ci.yml
.
✨ Renforcement du chiffrement et de la sécurité des fichiers.
✨ Tests unitaires et intégration pour le back-end & front-end.
✨ Déploiement en production.
🎯 Vous souhaitez contribuer ? Voici comment :
- Fork ce dépôt.
- Créez une branche (
feature/nom-de-la-fonctionnalité
). - Faites une Pull Request avec une description détaillée.
Merci pour votre aide ! 🚀
Pour toute question ou suggestion, ouvrez une issue sur GitHub ou contactez :
📩 Email : [email protected]
💙 Merci d’utiliser et de contribuer à ce projet !