{"id":26198397,"url":"https://github.com/hajaarh/ecommerce_analytics_platform","last_synced_at":"2026-05-06T03:31:58.767Z","repository":{"id":271406321,"uuid":"913322806","full_name":"Hajaarh/eCommerce_analytics_platform","owner":"Hajaarh","description":"CRM eCommerce - Analyse et visualisation de données","archived":false,"fork":false,"pushed_at":"2025-01-09T10:57:37.000Z","size":212742,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-20T14:49:04.666Z","etag":null,"topics":["fastapi","mongodb","python","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hajaarh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-07T13:13:12.000Z","updated_at":"2025-02-24T22:32:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"d932656a-0234-4bd6-8ab8-ab1d7e00be1e","html_url":"https://github.com/Hajaarh/eCommerce_analytics_platform","commit_stats":null,"previous_names":["hajaarh/ecommerce_analytics_platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hajaarh/eCommerce_analytics_platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2FeCommerce_analytics_platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2FeCommerce_analytics_platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2FeCommerce_analytics_platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2FeCommerce_analytics_platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hajaarh","download_url":"https://codeload.github.com/Hajaarh/eCommerce_analytics_platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hajaarh%2FeCommerce_analytics_platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32677916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","mongodb","python","streamlit"],"created_at":"2025-03-12T02:52:03.676Z","updated_at":"2026-05-06T03:31:58.755Z","avatar_url":"https://github.com/Hajaarh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Documentation du Projet CRM eCommerce\n\n#### Projet CRM eCommerce : Analyse et Visualisation de données avec MongoDB, FastAPI et Streamlit.\n\nLe projet CRM eCommerce repose sur l’utilisation de technologies modernes telles que MongoDB, FastAPI, et Streamlit pour :\n\n- Importer et traiter des données clients, produits et commandes.\n- Créer une API RESTful pour exposer des KPI et des analyses avancées.\n- Visualiser ces KPI à travers un tableau de bord interactif.\n\n---\n\n## Structure de l’application\n\nL’application est divisée en deux parties principales :\n\n1. **Backend** :\n   - Développé avec le framework Python **FastAPI**.\n   - Gère les données et les calculs via **MongoDB**.\n   - Expose des endpoints pour fournir des KPI et des analyses avancées.\n\n2. **Frontend** :\n   - Conçu avec **Streamlit**.\n   - Présente les analyses et visualisations à travers un tableau de bord interactif conçu avec Streamlit et Plotly.\n\n---\n\n## Fonctionnalités principales\n\n1. **Analyse des ventes** :\n   - Total des ventes globales, par région, par produit, et par catégorie.\n\n2. **Analyse des profits** :\n   - Profits par produit et par catégorie.\n   - Identification des éléments les plus rentables.\n\n3. **Segmentation des clients (RFM)** :\n   - Classification des clients en segments (Champions, Clients récents, Clients à risque, etc.).\n\n4. **Prévisions** :\n   - Utilisation de Facebook Prophet pour prévoir les ventes futures.\n\n5. **Tableau de bord interactif** :\n   - Permet une exploration visuelle des données grâce à des graphiques et des indicateurs clairs.\n\n---\n\n## Prérequis\n\nAvant de commencer, assurez-vous d’avoir :\n\n- **Python 3.8+ installé.**\n- **MongoDB installé (avec MongoDB Compass pour une interface graphique).**\n\n---\n\n## Étapes d'installation et de configuration\n\n### 1. **Cloner le projet**\n\nTéléchargez le projet depuis GitHub :\n\n```bash\ngit clone \u003cURL_DU_RÉPÔT\u003e\ncd backend_python\n```\n\n### 2. **Créer et configurer un environnement Python**\n\nCréer un environnement virtuel :\n\n```bash\npython -m venv env\n```\n\nActiver l’environnement virtuel :\n\n- **Sur Windows** :\n\n```bash\nenv\\Scripts\\activate\n```\n\n- **Sur macOS/Linux** :\n\n```bash\nsource env/bin/activate\n```\n\nInstaller les dépendances :\n\n```bash\npip install -r requirements.txt\n```\n\nCela installera toutes les bibliothèques nécessaires, comme FastAPI, Streamlit, Pandas, et Prophet.\n\n---\n\n### 3. **Configurer MongoDB**\n\n#### 3.1 Installer MongoDB\n\n- Téléchargez MongoDB depuis [mongodb.com](https://www.mongodb.com/) et installez-le.\n- Installez également MongoDB Compass, une interface graphique pour gérer les bases de données.\n\n#### 3.2 Importer les fichiers CSV dans MongoDB avec Compass\n\n1. Ouvrez MongoDB Compass et connectez-vous à :\n\n   ```plaintext\n   mongodb://localhost:27017\n   ```\n\n2. Créez une nouvelle base de données appelée **ecommerce**.\n3. Dans cette base, créez les collections suivantes :\n\n   - **Orders**\n   - **Customers**\n   - **Products**\n\n4. Pour chaque collection :\n\n   - Cliquez sur \"Import Data\".\n   - Sélectionnez les fichiers CSV correspondants (par exemple, `orders.csv` pour **Orders**).\n   - MongoDB Compass importera automatiquement les données.\n\n---\n\n### 4. **Lancer le projet**\n\n#### 4.1 Démarrer le backend (FastAPI)\n\n1. Ouvrez une invite de commande dans le dossier `backend_python`.\n2. Lancez le serveur FastAPI avec :\n\n   ```bash\n   uvicorn main:app --reload\n   ```\n\n3. Accédez à [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) pour explorer les endpoints de l’API.\n\n#### 4.2 Démarrer le frontend (Streamlit)\n\n1. Dans un nouveau terminal, activez l’environnement virtuel :\n\n   ```bash\n   env\\Scripts\\activate\n   ```\n\n   ```bash\n   source env/bin/activate\n   ```\n\n2. Lancez l’application Streamlit :\n\n   ```bash\n   streamlit run app.py\n   ```\n\n3. Le tableau de bord s’ouvrira automatiquement dans votre navigateur à [http://localhost:8501](http://localhost:8501).\n\n---\n\n## Création de pipelines d’agrégation avec MongoDB\n\n### 1. **Qu'est-ce qu'un pipeline d'agrégation ?**\n\nLes pipelines d'agrégation de MongoDB permettent de regrouper, transformer et analyser les données en plusieurs étapes. Ils sont utiles pour créer des statistiques ou des KPI avancés à partir de vos collections MongoDB.\n\n---\n\n### 2. **Exemple de pipeline d'agrégation : Analyse des ventes**\n\nVoici un exemple de pipeline pour calculer le total des ventes par produit :\n\n```json\n[\n  {\n    \"$group\": {\n      \"_id\": \"$product_id\",\n      \"total_sales\": { \"$sum\": \"$sales\" }\n    }\n  },\n  {\n    \"$sort\": { \"total_sales\": -1 }\n  }\n]\n```\n\nCe pipeline :\n- Regroupe les documents par `product_id`.\n- Calcule la somme des ventes (`sales`) pour chaque produit.\n- Trie les produits par ventes totales de manière décroissante.\n\n---\n\n### 3. **Utiliser les pipelines avec Python**\n\nPour connecter MongoDB et exécuter un pipeline avec Python, utilisez la bibliothèque `pymongo`.\n\n#### **Exemple de connexion et exécution** :\n\n```python\nfrom pymongo import MongoClient\n\n# Connexion à MongoDB\nclient = MongoClient(\"mongodb://localhost:27017\")\ndb = client[\"ecommerce\"]\n\n# Définir le pipeline d'agrégation\npipeline = [\n    {\"$group\": {\"_id\": \"$product_id\", \"total_sales\": {\"$sum\": \"$sales\"}}},\n    {\"$sort\": {\"total_sales\": -1}}\n]\n\n# Exécuter le pipeline sur la collection \"Orders\"\nresults = db[\"Orders\"].aggregate(pipeline)\n\n# Afficher les résultats\nfor result in results:\n    print(result)\n```\n\n---\n\n### 4. **Intégration avec FastAPI**\n\nPour exposer les résultats du pipeline d’agrégation via une API FastAPI :\n\n#### **Exemple d'endpoint FastAPI** :\n\n```python\nfrom fastapi import FastAPI\nfrom pymongo import MongoClient\n\napp = FastAPI()\n\n# Connexion à MongoDB\nclient = MongoClient(\"mongodb://localhost:27017\")\ndb = client[\"ecommerce\"]\n\n@app.get(\"/kpi/total-sales\")\ndef get_total_sales():\n    pipeline = [\n        {\"$group\": {\"_id\": \"$product_id\", \"total_sales\": {\"$sum\": \"$sales\"}}},\n        {\"$sort\": {\"total_sales\": -1}}\n    ]\n    results = list(db[\"Orders\"].aggregate(pipeline))\n    return results\n```\n\nAvec cet endpoint, vous pouvez accéder au KPI `total-sales` via `http://127.0.0.1:8000/kpi/total-sales`.\n\n\n## Structure du projet\n\nVoici les fichiers et dossiers principaux :\n\n- **`app.py`** : Code du frontend pour le tableau de bord interactif avec Streamlit.\n- **`main.py`** : Backend pour gérer les API avec FastAPI.\n- **`pipelines.py`** : Pipelines MongoDB pour regrouper, nettoyer, et transformer les données.\n- **`requirements.txt`** : Liste des dépendances nécessaires au projet.\n- **`model_rfm.pkl`** : Modèle de segmentation RFM enregistré.\n- **`data/`** : Dossier contenant les fichiers CSV à importer dans MongoDB.\n\n---\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhajaarh%2Fecommerce_analytics_platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhajaarh%2Fecommerce_analytics_platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhajaarh%2Fecommerce_analytics_platform/lists"}