Skip to content

bicou86/ecos-grid-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECOS Platform & Grid Generator

Plateforme complÚte pour la formation aux ECOS (Examens Cliniques Objectifs Structurés) comprenant :

  • Plateforme Web : Application React/Node.js pour la rĂ©vision interactive
  • Grid Generator : Outils de gĂ©nĂ©ration de grilles d'Ă©valuation depuis des PDFs

🚀 DĂ©marrage Rapide

Option 1 : Utiliser le script automatique (Recommandé)

./start-ecos.sh

Le script détecte automatiquement votre environnement et propose :

  1. Mode Docker (recommandé) - Configuration complÚte en containers
  2. Mode Développement Local - Backend + Frontend en local
  3. Informations systÚme - Vérifier les dépendances installées

Option 2 : Démarrage manuel

Avec Docker

cd platform
docker-compose up -d

AccĂšs :

En développement local

# Terminal 1 - Backend
cd platform/backend
npm install
npm run dev

# Terminal 2 - Frontend
cd platform/frontend
npm install
npm run dev

AccĂšs :

ArrĂȘter les services

./stop-ecos.sh

📁 Structure du Projet

ecos-grid-generator/
├── platform/                    # Plateforme web complùte
│   ├── backend/                 # API Node.js/Express + PostgreSQL
│   ├── frontend/                # Application React/Vite
│   ├── docker/                  # Configuration Docker
│   └── docker-compose.yml       # Orchestration des services
│
├── Chablon/                     # Templates et modùles
│   ├── Model - Grille ECOS.html # ModĂšle de grille d'Ă©valuation
│   ├── Model - Feuille Porte.html # Modùle de feuille-porte
│   └── Generateur_de_Grilles_ECOS.html # GĂ©nĂ©rateur automatique
│
├── json_files/                  # Fichiers JSON des cas cliniques
│   ├── AMBOSS/                  # Cas AMBOSS
│   ├── RESCOS/                  # Cas RESCOS
│   └── USMLE/                   # Cas USMLE
│
├── generated/                   # Fichiers gĂ©nĂ©rĂ©s
│   ├── grilles/                 # Grilles d'Ă©valuation HTML/PDF
│   └── feuille-porte/           # Feuilles-porte HTML/PDF
│
├── scripts/                     # Scripts d'analyse et migration
│   ├── generation/              # Scripts de gĂ©nĂ©ration
│   ├── migration/               # Scripts de migration
│   └── standardization/         # Standardisation des donnĂ©es
│
├── data-stat/                   # DonnĂ©es statistiques
│   ├── -ECOS-2013-2017.pdf     # Archive des cas ECOS
│   └── ECOS-2013-2017-final.csv # DonnĂ©es extraites (174 cas)
│
├── docs/                        # Documentation complùte
│   ├── ARCHITECTURE.md          # Architecture technique
│   ├── API_DOCUMENTATION.md     # Documentation API
│   ├── DEPLOYMENT.md            # Guide de dĂ©ploiement
│   └── reports/                 # Rapports techniques archivĂ©s
│
├── templates/                   # Templates rĂ©utilisables
│   ├── generators/              # GĂ©nĂ©rateurs
│   └── models/                  # ModĂšles de donnĂ©es
│
├── CLAUDE.md                    # Instructions pour Claude Code
└── README.md                    # Ce fichier

🎯 FonctionnalitĂ©s

Plateforme Web

  • Gestion de cas cliniques : 496+ cas ECOS structurĂ©s
  • Recherche et filtrage : Par source, spĂ©cialitĂ©, systĂšme
  • Suivi de progression : Notes, favoris, historique
  • Mode rĂ©vision : Identification des lacunes
  • Mode examen : Minuteur 13 minutes avec alertes
  • Authentification : JWT + refresh tokens
  • Paiements : IntĂ©gration Stripe
  • API RESTful : Documentation complĂšte

Grid Generator

  • Extraction PDF : Lecture automatique de cas cliniques
  • Traduction : Allemand → Français (terminologie mĂ©dicale)
  • GĂ©nĂ©ration JSON : Structure standardisĂ©e
  • Export HTML/PDF : Grilles interactives + PDFs imprimables
  • Notation dynamique : Calcul temps rĂ©el des scores
  • Codes couleur : Diagnostics, examens, commentaires

đŸ› ïž Technologies

Plateforme Web

  • Frontend : React 18, Vite, TailwindCSS, React Router
  • Backend : Node.js, Express, PostgreSQL, Redis
  • Containerisation : Docker, Docker Compose
  • Monitoring : Prometheus, Grafana (optionnel)
  • Reverse Proxy : Nginx
  • Base de donnĂ©es : PostgreSQL 15

Grid Generator

  • Templates : HTML5, CSS3, JavaScript ES6+
  • GĂ©nĂ©ration PDF : Puppeteer
  • Traduction : Claude AI
  • Parsing : pdf-parse, Custom extractors

📊 Services Docker

La plateforme utilise une architecture microservices avec Docker Compose :

Service Description Port
postgres Base de données PostgreSQL 15 5432
redis Cache et sessions 6379
backend API Node.js/Express 3000
frontend Application React 3001
nginx Reverse proxy 80, 443
adminer Gestion base de données (dev) 8080
prometheus Monitoring (optionnel) 9090
grafana Dashboards (optionnel) 3002

🔧 Configuration

Variables d'environnement

Copier .env.example vers .env et configurer :

# Base de données
DB_HOST=postgres
DB_NAME=ecos_platform
DB_USER=postgres
DB_PASSWORD=your_secure_password

# JWT
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_jwt_refresh_secret

# Stripe (optionnel)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...

# Email (optionnel)
EMAIL_HOST=smtp.gmail.com
EMAIL_USER=your@email.com
EMAIL_PASSWORD=your_password

Profils Docker

  • Standard : postgres, redis, backend, frontend, nginx
  • Dev : + adminer (gestion base de donnĂ©es)
  • Monitoring : + prometheus, grafana (mĂ©triques)

📖 Documentation Complùte

🔄 RĂ©organisation du Projet

Si le projet n'est pas encore organisé avec la nouvelle structure :

./reorganize-project.sh

Ce script :

  • CrĂ©e une structure /grid-generator/ sĂ©parĂ©e
  • Archive les anciennes versions (v1-v5)
  • Consolide la documentation
  • Nettoie les fichiers temporaires
  • CrĂ©e une sauvegarde avant toute modification

đŸ§Ș Tests

Backend

cd platform/backend
npm test
npm run test:coverage

Frontend

cd platform/frontend
npm test
npm run test:e2e

Santé de la plateforme

cd platform
./test-platform-health.sh

📈 Monitoring (Profil monitoring)

Accéder à Grafana : http://localhost:3002

  • User : admin
  • Password : admin (ou valeur de GRAFANA_PASSWORD)

Dashboards inclus :

  • MĂ©triques systĂšme (CPU, RAM, disque)
  • Performances backend (requĂȘtes/s, latence)
  • État base de donnĂ©es

🐛 DĂ©pannage

Ports déjà utilisés

# Vérifier les ports occupés
lsof -i :3000
lsof -i :3001

# ArrĂȘter les processus
./stop-ecos.sh

Erreurs Docker

# Nettoyer les containers
docker-compose -f platform/docker-compose.yml down -v

# Reconstruire
docker-compose -f platform/docker-compose.yml build --no-cache
docker-compose -f platform/docker-compose.yml up -d

Base de données

# Accéder à PostgreSQL
docker-compose -f platform/docker-compose.yml exec postgres psql -U postgres -d ecos_platform

# Réinitialiser la base
docker-compose -f platform/docker-compose.yml down -v
docker-compose -f platform/docker-compose.yml up -d

Logs

# Tous les services
docker-compose -f platform/docker-compose.yml logs -f

# Service spécifique
docker-compose -f platform/docker-compose.yml logs -f backend
docker-compose -f platform/docker-compose.yml logs -f frontend

đŸ€ Contribution

  1. Fork le projet
  2. Créez votre branche (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

📝 Conventions de Code

Git Commits

feat: Nouvelle fonctionnalité
fix: Correction de bug
docs: Documentation
style: Formatage
refactor: Refactorisation
test: Tests
chore: Maintenance

Code Style

  • JavaScript : ESLint avec configuration custom
  • React : Functional components + Hooks
  • CSS : TailwindCSS + BEM pour custom CSS
  • API : RESTful avec versioning (/api/v1)

🔐 SĂ©curitĂ©

  • Authentification JWT avec refresh tokens
  • Rate limiting sur les endpoints sensibles
  • Validation des entrĂ©es avec Joi/Zod
  • Headers de sĂ©curitĂ© (helmet.js)
  • CORS configurĂ©
  • Protection CSRF
  • Sanitization des donnĂ©es

📊 Performance

  • Backend : Cache Redis pour requĂȘtes frĂ©quentes
  • Frontend : Code splitting, lazy loading
  • Base de donnĂ©es : Index optimisĂ©s, connexion pool
  • Images : Compression et lazy loading
  • API : Pagination sur toutes les listes

📄 Licence

Ce projet est sous licence [À DÉFINIR].

đŸ‘„ Auteurs

  • Damien Fulliquet - DĂ©veloppement initial et architecture

🙏 Remerciements

  • Claude AI pour l'assistance au dĂ©veloppement
  • CommunautĂ© mĂ©dicale suisse pour les retours
  • AMBOSS, RESCOS, USMLE pour les cas cliniques

📞 Support

Pour toute question ou problĂšme :


Version : 2.0.1 Derniùre mise à jour : Novembre 2025 Status : ✅ Production Ready

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages