Skip to content

Carmelo237/Dev_backend_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dev_backend_python

image

À 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.

Les KPI'S

Construit avec

  • MongoDB - MongoDB - Base de données NoSQL
  • FastAPI - FastAPI - Framework API REST
  • Streamlit - Streamlit - Framework de visualisation de données
  • Python - Python - Langage de programmation
  • Pandas - Pandas - Manipulation de données
  • Plotly - Plotly - Création de graphiques
  • Uvicorn - Uvicorn - Serveur ASGI performant

Comparaison des Architectures Web pour l'Analytics E-commerce

Architecture Actuelle du Projet

Backend

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

Frontend

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

Architecture Alternative

Backend

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

Frontend

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

Descrption du projet

Pré-requis‼️

⚠️ Utilisation avancée (Git - Gestion des branches) Travailler avec des branches Git

Ces commandes permettent de créer, basculer sur une branche, ajouter des modifications, les valider et les pousser vers un dépôt distant.

  1. Créer une nouvelle branche ou basculer sur une branche existante**
    git branch <nom-de-la-branche>
    git checkout <nom-de-la-branche>
    
  2. Ajouter les nouveaux fichiers ou fichiers modifiés
    git add 
    
  3. Valider les changements avec un message de commit
    git commit -m "Message de commit pour indiquer l'ajout ou la modification »
    
  4. Pousser les modifications vers le dépôt distant
    git push origin <nom-de-la-branche>

Installation⚙️

pip install pymongo
pip install  pandas
pip install  fastapi
pip install  uvicorn
pip install  streamlit
pip install matplotlib.pyplot

Flux de données📥

  1. 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 
  1. 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'
            }
  1. Affichage Frontend
if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Déploiement🪄

streamlit run app.py

puis éxécuter le main

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages