Daya

📁 Structure du Repository

Vue d’ensemble

Ce repository contient une plateforme complĂšte combinant :

Pour une vue d’ensemble du fonctionnement et des Ă©tapes d’implĂ©mentation (local + dĂ©ploiement), voir COMMENT_CA_MARCHE_ET_IMPLEMENTATION.md.

Structure Détaillée

/backend/app/ – Jekyll (frontend statique) + Flask legacy

Deux logiques distinctes — voir backend/app/README.md pour le dĂ©tail.

backend/app/
├── _config.yml, _layouts/, _includes/, _posts/, assets/, data/
│   → Jekyll (site statique, GitHub Pages)
├── run.py                   # Point d'entrĂ©e Flask
├── src/                     # Toute la logique Flask (un seul endroit)
│   ├── __init__.py          # create_app(), enregistrement des blueprints
│   ├── config/              # base, development, production, testing
│   ├── routes/              # Routes web + API (main, blog, admin, api_routes, export_routes)
│   ├── api/v1/              # articles, projects, experiences
│   ├── services/            # blog_service, cache_service, etc.
│   ├── database/            # models, extensions
│   ├── monitoring/          # health, metrics
│   ├── templates/           # Jinja2 (base, index, about, blog/, api/, errors/)
│   ├── static/
│   ├── rate_limiting.py
│   └── ...
├── blueprints/              # DĂ©prĂ©ciĂ© — code dĂ©placĂ© dans src/routes/
├── scripts/                 # test-local.sh, etc.
└── _archive/                # Anciens CSS/JS (exclus du build)

/.github/workflows/ - CI/CD

.github/workflows/
├── ci.yml                  # Pipeline unifiĂ© (tests, lint, build, deploy)
├── jekyll-pages.yml        # DĂ©ploiement Jekyll sur GitHub Pages
└── deploy.yml              # DĂ©ploiement Flask (Cloud Run)

/backend/ - API FastAPI

backend/
├── main.py                  # Point d'entrĂ©e FastAPI
├── routers/                 # health, api_v1
├── rate_limiter.py
└── app/                     # Legacy Jekyll + Flask

/frontend/ - UI Flask

frontend/
├── app.py
├── templates/
└── static/

/scripts/ - Scripts Utilitaires

Voir scripts/README.md pour l’organisation complùte.

scripts/
├── dev/                    # Setup, .env, DB, lancement Flask
├── quality/                # Tests, quick_test, validate_translations
├── build/                  # Jekyll (setup_jekyll, launch_jekyll)
├── i18n/                   # compile-translations, validate_translations
├── ops/                    # healthcheck
├── lib/                    # logging.sh, require.sh, common.sh
└── README.md

/monitoring/ - Observabilité

monitoring/
├── docker-compose.observability.yml
├── monitoring/
│   ├── prometheus/
│   ├── grafana/
│   ├── loki/
│   └── alertmanager/
└── ...

Fichiers de Configuration

Configuration Jekyll

Configuration Python

Configuration CI/CD

Configuration Docker

Fichiers Ignorés

Les fichiers suivants sont ignorés par Git (voir .gitignore) :

Workflow de Développement

  1. Développement Local
    • Jekyll : cd backend/app && bundle exec jekyll serve
    • API FastAPI : uvicorn backend.main:app --reload --port 8080
    • Frontend Flask : flask --app frontend.app run --port 3000
  2. Commit
    • Pre-commit hooks vĂ©rifient le code
    • Tests automatiques
  3. Déploiement
    • Push sur main dĂ©clenche le workflow
    • Jekyll build et dĂ©ploiement sur GitHub Pages
    • Site disponible sur https://smdlabtech.github.io/

Bonnes Pratiques