À propos du Projet
Notre projet est porté sur une analyse de données e-commerce notre but ici sera de analyser et de visualiser les performances commerciales à travers différents KPIs.Pour ce projet nous utilisons MongoDB pour le stockage des données mais aussi la gestion de données , FastAPI pour le developpement de notre application et interagir avec la base de données , et Streamlit pour la visualisation des données.
- MongoDB - Base de données NoSQL
- FastAPI - Framework API REST
- Streamlit - Framework de visualisation de données
- Python - Langage de programmation
- Pandas - Manipulation de données
- Plotly - Création de graphiques
- Uvicorn - Serveur ASGI performant
| Composant | Technologie | Rôle | Avantages |
|---|---|---|---|
| Base de données | MongoDB | Stockage NoSQL | • Flexibilité du schéma • Bonnes performances en lecture • Facilité des requêtes complexes |
| API Framework | FastAPI | Serveur API REST | • Performance élevée • Documentation automatique • Support async natif |
| Serveur ASGI | Uvicorn | Serveur d'application | • Très performant • Support async • Rechargement automatique |
| ORM/Driver | PyMongo | Connexion DB | • Interface native MongoDB • Support async • Simple d'utilisation |
| Composant | Technologie | Rôle | Avantages |
|---|---|---|---|
| Framework UI | Streamlit | Interface utilisateur | • Développement rapide • Widgets prêts à l'emploi • Intégration Python native |
| Visualisation | Plotly | Graphiques | • Interactivité • Nombreux types de graphiques • Personnalisation poussée |
| HTTP Client | Requests | Appels API | • Simple d'utilisation • Standard de facto • Bonne documentation |
| Composant | Technologie | Rôle | Avantages |
|---|---|---|---|
| Base de données | PostgreSQL | SGBD relationnel | • ACID compliant • Mature et stable • Support JSON natif |
| API Framework | Django REST | Framework complet | • Écosystème riche • Admin interface • Sécurité robuste |
| Serveur WSGI | Gunicorn | Serveur production | • Stable • Facile à configurer • Performant |
| ORM | Django ORM | Couche d'abstraction DB | • Intégration native • Migrations automatiques • Requêtes puissantes |
| Composant | Technologie | Rôle | Avantages |
|---|---|---|---|
| Framework UI | Dash | Application web | • Composants professionnels • Hautement personnalisable • Basé sur React |
| Visualisation | Bokeh | Graphiques avancés | • Visualisations complexes • Grande interactivité • Support grands volumes |
| HTTP Client | Axios | Appels API | • Promesses • Intercepteurs • Gestion erreurs avancée |
Ces commandes permettent de créer, basculer sur une branche, ajouter des modifications, les valider et les pousser vers un dépôt distant.
- Créer une nouvelle branche ou basculer sur une branche existante**
git branch <nom-de-la-branche> git checkout <nom-de-la-branche>
- Ajouter les nouveaux fichiers ou fichiers modifiés
git add
- Valider les changements avec un message de commit
git commit -m "Message de commit pour indiquer l'ajout ou la modification » - Pousser les modifications vers le dépôt distant
git push origin <nom-de-la-branche>
pip install pymongo
pip install pandas
pip install fastapi
pip install uvicorn
pip install streamlit
pip install matplotlib.pyplot
- Collecte des données
Importation de bibliothèques et modules
from fastapi import FastAPI
from pymongo import MongoClient
import uvicorn
import requests
import plotly.express
import pandas - Traitement Backend
# Exemple de pipeline MongoDB avec une requête d'agrégation pour relier deux collections ; Orders & Customers
@app.get("/orders-with-details")
def get_orders_with_details():
pipeline = [
{
'$lookup': {
'from': 'Customers',
'localField': 'Customer ID',
'foreignField': 'Customer ID',
'as': 'CustomerDetails'
}- Affichage Frontend
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)streamlit run app.pypuis éxécuter le main
