Files
metabloom/README.md
T
AI Company 16dccd2f76
MetaBloom CI / app (push) Canceled after 0s
MetaBloom CI / api (push) Canceled after 0s
feat: integrate Peg AI wellness coach
2026-07-21 21:15:19 +00:00

121 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MetaBloom
MetaBloom est un compagnon métabolique mobile-first, francophone et non culpabilisant pour les personnes concernées par le surpoids, le prédiabète ou le diabète de type 2. Une seule base Expo cible iOS, Android et le Web.
> **Statut : produit en développement, usage éducatif et bien-être uniquement.** MetaBloom ne diagnostique pas, ninterprète pas une mesure, ne calcule pas de dose et ne modifie jamais un traitement. En cas durgence, contactez les services durgence.
## Fonctionnalités disponibles
- onboarding avec objectif, parcours et consentement informatif ;
- parcours Prévention, Perte de poids, Diabète type 2 et GLP-1 ;
- dashboard quotidien responsive avec données réellement dynamiques ;
- journal enrichi : poids, glycémie facultative, eau, pas, sommeil, repas et humeur ;
- validation des valeurs et gestion mg/dL/mmol/L ;
- graphiques et moyennes calculés sur les sept derniers jours ;
- coaching comportemental et micro-leçons sans recommandations thérapeutiques ;
- **Peg**, coach IA conversationnel relié au backend et compatible Ollama/OpenAI ;
- préférences, rappels préparés, export CSV et effacement local ;
- persistance hors ligne via AsyncStorage ;
- backend FastAPI/PostgreSQL auto-hébergeable avec JWT, consentement, CRUD, export et suppression de compte ;
- préparation UI pour scan de repas, Apple Santé et Health Connect.
## Captures
Les captures mobiles sont disponibles dans [`screenshots/`](./screenshots/).
## Stack
| Couche | Technologie |
|---|---|
| Application | Expo SDK 57, React Native 0.86, React 19, TypeScript |
| Design system | Icônes vectorielles Lucide, composants accessibles, zones tactiles 44 px minimum |
| Stockage local | AsyncStorage |
| API | FastAPI, SQLAlchemy, Pydantic |
| Données serveur | PostgreSQL en production, SQLite en développement |
| Sécurité API | JWT expirant, Argon2, isolation par utilisateur |
## Démarrer lapplication
Prérequis : Node.js 20+ et npm.
```bash
npm install
npm run web
```
```bash
npm run android
npm run ios
npm run typecheck
npm run build:web
```
Les cibles Android/iOS fonctionnent avec Expo Go pour ce prototype. HealthKit/Health Connect nécessiteront un development build natif et des comptes développeur Apple/Google.
## Démarrer lAPI
```bash
cd server
python -m venv .venv
. .venv/bin/activate
pip install -r requirements-dev.txt
uvicorn app.main:app --reload
```
Documentation OpenAPI : `http://localhost:8000/docs`. Voir [`server/README.md`](./server/README.md) pour PostgreSQL, Docker et les règles de sécurité.
Pour connecter lapplication à lAPI :
```bash
EXPO_PUBLIC_API_URL=http://localhost:8000 npm run web
```
Au premier message, lapplication crée une session invitée pseudonyme et conserve son jeton sous `metabloom-auth-token`. Le moteur, le modèle et lURL IA sont configurés uniquement côté serveur. Aucun secret ne doit être placé dans lapplication.
## Architecture
```text
App.tsx Expérience Expo multiplateforme
assets/ Icônes et splash screen
server/app/ API, modèles, validation et sécurité
server/tests/ Tests dintégration API
server/docker-compose... PostgreSQL + API auto-hébergeables
screenshots/ Captures produit
.gitea/workflows/ Contrôles CI
```
Lapplication fonctionne actuellement en mode local-first. LAPI est prête séparément ; la prochaine étape dintégration est une file de synchronisation idempotente avec gestion explicite des conflits.
## Sécurité et réglementation
- aucune donnée nest envoyée par lapplication tant que lAPI nest pas configurée ;
- les conversations Peg ne sont pas persistées par le backend et lhistorique transmis est limité ;
- Peg filtre les urgences, diagnostics, dosages et modifications de traitement avant et après le modèle ;
- lAPI impose un consentement avant lenregistrement de données de santé ;
- les mots de passe sont hachés avec Argon2 et les données isolées par utilisateur ;
- les secrets dexemple ne doivent jamais être utilisés en production ;
- AsyncStorage nest pas chiffré : il doit être remplacé par SQLite + SecureStore avant production ;
- une AIPD/RGPD, une analyse HDS, un audit OWASP et une qualification MDR sont obligatoires avant usage réel ;
- aucun conseil GLP-1, seuil glycémique ou traitement nest produit par lapplication.
## État des fonctionnalités avancées
- **Backend/auth/export/suppression :** implémentés et isolés dans `server/`.
- **Synchronisation multi-appareil :** architecture définie, connexion client/API restante.
- **Notifications :** préférences fonctionnelles ; branchement natif restant.
- **Scan alimentaire :** expérience préparée ; source nutritionnelle et confirmation utilisateur restantes.
- **HealthKit/Health Connect :** préparation produit ; dépendances natives et autorisations stores restantes.
- **IA :** volontairement non branchée avant gouvernance clinique et corpus validé.
## Tests
```bash
npm run typecheck
npm run build:web
cd server && pytest -q
```
## Licence
MIT — voir [`LICENSE`](./LICENSE).