Blog et portfolio : Data Science, Business Intelligence, IA & Technologies.
Contenu informatif, tutoriels et retours dâexpĂ©rience.
backend/ et frontend/. Jekyll + Flask monolith : sources dans backend/app/ (migration depuis lâancien dossier app/ Ă la racine).Ports en local : Backend â 8080 (http://localhost:8080/docs · http://localhost:8080/health) · Frontend â 3000 (http://localhost:3000). Tout lancer dâun coup : ./scripts/dev/run-all.sh ou make run-all.
| RĂŽle | Dossier | Port | Commande |
|---|---|---|---|
| Frontend (site statique) | backend/app/ (Jekyll) |
4000 | make run-jekyll ou cd backend/app && bundle exec jekyll serve |
| Frontend (UI Flask) | frontend/ |
3000 | ./scripts/dev/run-frontend.sh ou make run-frontend (aprĂšs backend) |
| Backend API | backend/ (FastAPI) |
8080 | ./scripts/dev/run-backend.sh ou make run-backend |
| Backend monolith (Flask) | backend/app/ (run.py + package src/) |
8080 | ./scripts/dev/launch_app.sh ou make run-flask |
Backend (port 8080) : API â http://localhost:8080/docs · Health â http://localhost:8080/health
Le frontend au sens « ce que voit lâutilisateur » peut ĂȘtre : (1) le site Jekyll sur le port 4000 (backend/app/), ou (2) lâapp Flask dans frontend/ sur le port 3000 (elle appelle le backend FastAPI sur 8080).
| Domaine | Détail |
|---|---|
| Performance | CSS/JS en bundles, PWA (Service Worker), lazy loading |
| Qualité | Tests pytest, pre-commit (black, flake8, isort), CI unifiée |
| Observabilité | Prometheus, Grafana, health checks, métriques |
| DX | Script de test avant prod, docs centralisées dans docs/ |
| Sécurité | Headers OWASP, CORS configurable, rate limiting |
frontend/ (templates + assets), consommant le backend via BACKEND_URL.backend/ (/api/v1/*, /health, /metrics, rate limit multi-tier).backend/app/ conservé pour compatibilité.backend/data/ + DB optionnelle selon environnement..env en dev), Secret Manager en prod (Cloud Run). Pas de clés en dur.CORS_ORIGINS (liste de domaines en prod, * en dev).LOG_LEVEL), corrélation possible via request_id / correlation_id si ajouté au middleware./metrics (Prometheus). Health : /health, /health/ready, /health/live.debug: true), artefacts (coverage, trivy)../scripts/dev/run-backend.sh (8080)./scripts/dev/run-frontend.sh (3000)./scripts/dev/run-all.sh (attend /health)GCP_PROJECT_ID + GCP_REGION (variables Actions)SECRET_KEY, DATABASE_URL./shut-down-all-ports.shcurl -f http://localhost:8080/health./scripts/i18n/validate_translations.sh . backend/app/translations./scripts/i18n/compile-translations.sh backend/app/translationsflowchart LR
U[Utilisateur]
FE[Frontend Flask]
API[Backend FastAPI]
DB[(SQL/DB)]
REDIS[(Redis)]
QDRANT[(Qdrant)]
LLM[OpenAI / Gemini]
OBS[Observabilité: Logs / Metrics / Alerts]
U --> FE
FE --> API
API --> DB
API --> REDIS
API --> QDRANT
API -.-> LLM
FE --> OBS
API --> OBS
âââ backend/ # FastAPI â API REST (un seul backend, port 8080)
â âââ main.py # Point d'entrĂ©e : uvicorn backend.main:app
â âââ config.py
â âââ routers/ # health, api_v1 (articles, projects, experiences)
â âââ app/ # Legacy (Flask + Jekyll) â voir docs/MERGE_BACKEND_BACKEND_OLD.md
âââ frontend/ # Flask â pages et templates (appelle le backend)
â âââ app.py
â âââ templates/
â âââ static/
âââ backend/app/ # Legacy conservĂ© : Jekyll + Flask (run.py + src/)
â âââ _config.yml # Jekyll
â âââ src/ # Flask legacy
â âââ ...
âââ scripts/ # dev, quality, build, i18n, ops, lib (voir scripts/README.md)
âââ tests/ # Pytest
âââ docs/ # CONTRIBUTING, MIGRATION_FASTAPI_FLASK, etc.
âââ .github/workflows/ # CI/CD
Voir docs/MIGRATION_FASTAPI_FLASK.md pour la migration Backend FastAPI + Frontend Flask. Fusion backend + backend_old : docs/MERGE_BACKEND_BACKEND_OLD.md. Comparaison backend/app vs backend/app/src : docs/COMPARAISON_BACKEND_APP_SRC.md.
# Terminal 1 â Backend API (port 8080)
pip install -r backend/requirements.txt
uvicorn backend.main:app --reload --port 8080
# Terminal 2 â Frontend (port 3000)
pip install -r frontend/requirements.txt
export BACKEND_URL=http://localhost:8080
flask --app frontend.app run --port 3000
# â http://localhost:3000
# Tests + build Jekyll (legacy)
./backend/app/scripts/test-local.sh
# Site Jekyll
cd backend/app && bundle install && bundle exec jekyll serve
# â http://localhost:4000
# Flask monolith (backend/app/)
./scripts/dev/launch_app.sh
# â http://localhost:8080
Makefile : make help pour lister les cibles ; ex. make setup, make test, make run-flask, make run-jekyll, make validate-i18n, make health.
Environnement : copier env.example en .env si vous utilisez Flask. Voir docs/ENV_VARIABLES.md.
| Contexte | Action |
|---|---|
| Run locally | ./scripts/dev/setup_complete.sh puis ./scripts/dev/launch_app.sh (Flask) ; ou ./scripts/build/launch_jekyll.sh --livereload (Jekyll). |
| Tests | make test (Flask) ; PYTHONPATH=. python3 -m pytest tests/test_backend_fastapi.py -v (backend FastAPI). |
| Deploy | Push sur main déclenche CI (tests Flask + backend, build Jekyll, deploy Pages + optionnellement build Docker / Cloud Run). Voir .github/workflows. |
| Troubleshooting | Vérifier .env, instance/, logs Flask. Health : curl http://localhost:8080/health. Traductions : ./scripts/i18n/validate_translations.sh. Rate limit : curl http://localhost:8080/api/rate-limit. |
Daya â Data scientist, passionnĂ© par le foot et le basket.
Partage de la programmation en Python, R, SQL, Power BI et Excel VBA.
Section centralisée pour inventorier tous les fichiers Markdown (.md) du dépÎt (hors .venv, dépendances installées et caches locaux).
Inventaire compact pour lecture rapide. Lâinventaire exhaustif est dans docs/MARKDOWN_INVENTORY.md.
Inventaire complet maintenu dans docs/MARKDOWN_INVENTORY.md.
| N° | Nom fichier | Description | Emplacement |
|---|---|---|---|
| 1 | CODE_OF_CONDUCT.md |
Code de conduite | CODE_OF_CONDUCT.md |
| 2 | README.md |
Documentation principale du projet | README.md |
| 3 | README.md |
README du dossier backend |
backend/README.md |
| 4 | README.md |
README du dossier backend/public |
backend/public/README.md |
| 5 | README.md |
README du dossier backend/public/cv |
backend/public/cv/README.md |
| 6 | README.md |
README du dossier backend/src |
backend/src/README.md |
| 7 | about.md |
about | backend/src/about.md |
| 8 | privacy.md |
privacy | backend/src/privacy.md |
| 9 | business-intelligence.md |
Page tag/catégorie | backend/src/tags/business-intelligence.md |
| 10 | data-analytics.md |
Page tag/catégorie | backend/src/tags/data-analytics.md |
| 11 | data-engineering.md |
Page tag/catégorie | backend/src/tags/data-engineering.md |
| 12 | data-science.md |
Page tag/catégorie | backend/src/tags/data-science.md |
| 13 | intelligence-artificielle.md |
Page tag/catégorie | backend/src/tags/intelligence-artificielle.md |
| 14 | ANALYSE_ET_AMELIORATIONS.md |
Document de référence: analyse et ameliorations | docs/ANALYSE_ET_AMELIORATIONS.md |
| 15 | COMMENT_CA_MARCHE_ET_IMPLEMENTATION.md |
Document de référence: comment ca marche et implementation | docs/COMMENT_CA_MARCHE_ET_IMPLEMENTATION.md |
| 16 | COMPARAISON_BACKEND_APP_SRC.md |
Document de référence: comparaison backend app src | docs/COMPARAISON_BACKEND_APP_SRC.md |
| 17 | CONTRIBUTING.md |
Document de référence: contributing | docs/CONTRIBUTING.md |
| 18 | DEPLOYMENT_MAP.md |
Document de référence: deployment map | docs/DEPLOYMENT_MAP.md |
| 19 | ENV_VARIABLES.md |
Document de référence: env variables | docs/ENV_VARIABLES.md |
| 20 | IDEES_AMELIORATIONS.md |
Document de référence: idees ameliorations | docs/IDEES_AMELIORATIONS.md |
| 21 | IMPROVEMENTS.md |
Document de référence: improvements | docs/IMPROVEMENTS.md |
| 22 | MARKDOWN_INVENTORY.md |
Document de référence: markdown inventory | docs/MARKDOWN_INVENTORY.md |
| 23 | MERGE_BACKEND_BACKEND_OLD.md |
Document de référence: merge backend backend old | docs/MERGE_BACKEND_BACKEND_OLD.md |
| 24 | MIGRATION_FASTAPI_FLASK.md |
Document de référence: migration fastapi flask | docs/MIGRATION_FASTAPI_FLASK.md |
| 25 | NETTOYAGE_2025.md |
Document de référence: nettoyage 2025 | docs/NETTOYAGE_2025.md |
| 26 | RATE_LIMITING.md |
Document de référence: rate limiting | docs/RATE_LIMITING.md |
| 27 | STRUCTURE.md |
Document de référence: structure | docs/STRUCTURE.md |
| 28 | TESTER_AVANT_PROD.md |
Document de référence: tester avant prod | docs/TESTER_AVANT_PROD.md |
| 29 | README.md |
README du dossier frontend |
frontend/README.md |
| 30 | DEVOPS_BEST_PRACTICES.md |
Documentation monitoring: devops best practices | monitoring/DEVOPS_BEST_PRACTICES.md |
| 31 | PORTS.md |
Documentation monitoring: ports | monitoring/PORTS.md |
| 32 | QUICK_START.md |
Documentation monitoring: quick start | monitoring/QUICK_START.md |
| 33 | README.md |
README du dossier monitoring |
monitoring/README.md |
| 34 | SETUP_PROMETHEUS.md |
Documentation monitoring: setup prometheus | monitoring/SETUP_PROMETHEUS.md |
| 35 | CHANGELOG.md |
Documentation monitoring: changelog | monitoring/alertmanager/CHANGELOG.md |
| 36 | README.md |
README du dossier monitoring/alertmanager |
monitoring/alertmanager/README.md |
| 37 | README.md |
README du dossier monitoring/prometheus |
monitoring/prometheus/README.md |
| 38 | README.md |
README du dossier scripts |
scripts/README.md |
| 39 | README_SCRIPTS.md |
Documentation scripts: readme scripts | scripts/README_SCRIPTS.md |
MIT â voir LICENSE.
Fait avec â€ïž par smdlabtech