Ce repository contient une plateforme complĂšte combinant :
backend/app/)backend/frontend/ qui consomme lâAPI FastAPIbackend/app/src/Pour une vue dâensemble du fonctionnement et des Ă©tapes dâimplĂ©mentation (local + dĂ©ploiement), voir COMMENT_CA_MARCHE_ET_IMPLEMENTATION.md.
/backend/app/ â Jekyll (frontend statique) + Flask legacyDeux 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 FastAPIbackend/
âââ main.py # Point d'entrĂ©e FastAPI
âââ routers/ # health, api_v1
âââ rate_limiter.py
âââ app/ # Legacy Jekyll + Flask
/frontend/ - UI Flaskfrontend/
âââ app.py
âââ templates/
âââ static/
/scripts/ - Scripts UtilitairesVoir 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/
âââ ...
backend/app/_config.yml : Configuration principale Jekyllbackend/app/Gemfile : DĂ©pendances Rubybackend/app/staticman.yml : Configuration commentairesbackend/app/requirements.txt : DĂ©pendances Flask legacybackend/requirements-api.txt : DĂ©pendances FastAPIbackend/app/pyproject.toml : Configuration tooling Pythonbackend/app/run.py : Point dâentrĂ©e Flask legacy.github/workflows/jekyll-pages.yml : Workflow GitHub Pages.pre-commit-config.yaml : Hooks pre-commitmonitoring/docker-compose.observability.yml : Stack observabilitĂ© localebackend/app/Dockerfile : Image Docker backend legacyLes fichiers suivants sont ignorĂ©s par Git (voir .gitignore) :
backend/app/_site/ : Build output Jekyll__archives/backend_app/site/ : ancien build output deplace pour nettoyage.venv/, venv/ : Environnements virtuels Python__pycache__/ : Cache Python.env* : Variables dâenvironnement*.log : Fichiers de logs*.db, *.sqlite : Bases de donnĂ©es localescd backend/app && bundle exec jekyll serveuvicorn backend.main:app --reload --port 8080flask --app frontend.app run --port 3000main dĂ©clenche le workflowhttps://smdlabtech.github.io/