Skip to content

jocha28/ecom-front-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

E-Commerce Platform 🛒

Une plateforme e-commerce complète avec backend Django REST Framework et frontend HTML/CSS/JavaScript.

🚀 Technologies Utilisées

Backend

Python Django Django REST Framework SQLite

Frontend

HTML5 CSS3 JavaScript

Outils & Bibliothèques

Pillow CORS Headers Pipenv

📋 Description du Projet

Cette plateforme e-commerce offre une solution complète pour gérer un marketplace en ligne avec des fonctionnalités avancées pour les vendeurs et les clients.

✨ Fonctionnalités Principales

Pour les Vendeurs

  • 📝 Gestion de profil : Profil complet avec photo de profil, photo de couverture, bio
  • 🛍️ Gestion des produits : Ajout, modification et suppression de produits
  • 📸 Média : Support d'images et vidéos pour les produits
  • 💬 Intégration sociale : Liens WhatsApp et Facebook
  • Système d'avis : Réception et gestion des avis clients

Pour les Clients

  • 👤 Profil utilisateur : Gestion de compte avec photo de profil
  • 🛒 Panier et commandes : Système de commandes complet
  • ❤️ Liste de souhaits : Sauvegarde de produits favoris
  • 👥 Système d'amis : Suivre des vendeurs préférés
  • Avis et notes : Évaluation des produits et vendeurs
  • 🔔 Notifications : Système de notifications en temps réel

Gestion E-commerce

  • 📦 Gestion des commandes : Suivi complet du statut (en attente, confirmée, expédiée, livrée, annulée)
  • 🚚 Système de livraison : Gestion complète des livraisons avec adresses et frais
  • 🏷️ Catégories : Organisation des produits par catégories
  • 💰 Prix négociable : Système de prix minimum pour négociation

🏗️ Architecture du Projet

ecom-front-backend/
├── ecommerce/                  # Répertoire principal Django
│   ├── ecommerce/             # Configuration du projet
│   │   ├── settings.py        # Paramètres Django
│   │   ├── urls.py            # URLs principales
│   │   └── wsgi.py            # Configuration WSGI
│   ├── shop/                  # Application principale
│   │   ├── models.py          # Modèles de données
│   │   ├── serializers.py     # Sérialiseurs REST API
│   │   ├── views.py           # ViewSets API
│   │   └── urls.py            # URLs de l'API
│   ├── frontend/              # Interface utilisateur
│   │   ├── *.html             # Pages HTML
│   │   ├── style.css          # Styles CSS
│   │   └── script.js          # Scripts JavaScript
│   ├── media/                 # Fichiers téléchargés
│   ├── manage.py              # Script de gestion Django
│   └── db.sqlite3             # Base de données SQLite
├── Pipfile                    # Dépendances Python
└── Pipfile.lock              # Versions verrouillées

📊 Modèles de Données

Seller (Vendeur)

  • Informations de profil (nom, email, téléphone)
  • Réseaux sociaux (WhatsApp, Facebook)
  • Photos (profil, couverture)
  • Bio

Client

  • Informations de profil
  • Photo de profil
  • Historique des commandes

Product (Produit)

  • Nom, description, prix
  • Prix minimum négociable
  • Image et vidéo
  • Catégorie
  • Lien WhatsApp du produit

Order (Commande)

  • Client, produit, quantité
  • Prix total
  • Statut de commande
  • Date de création

Autres Modèles

  • Category : Organisation des produits
  • Review : Avis et notes
  • Notification : Notifications utilisateurs
  • Delivery : Informations de livraison
  • Wishlist : Liste de souhaits
  • Friendship : Relations client-vendeur

🔌 API REST Endpoints

L'API REST est accessible via /api/ avec les endpoints suivants :

Endpoint Méthodes Description
/api/sellers/ GET, POST, PUT, DELETE Gestion des vendeurs
/api/clients/ GET, POST, PUT, DELETE Gestion des clients
/api/products/ GET, POST, PUT, DELETE Gestion des produits
/api/categories/ GET, POST, PUT, DELETE Gestion des catégories
/api/orders/ GET, POST, PUT, DELETE Gestion des commandes
/api/reviews/ GET, POST, PUT, DELETE Gestion des avis
/api/notifications/ GET, POST, PUT, DELETE Gestion des notifications
/api/deliveries/ GET, POST, PUT, DELETE Gestion des livraisons
/api/wishlists/ GET, POST, PUT, DELETE Gestion des listes de souhaits
/api/friendships/ GET, POST, PUT, DELETE Gestion des relations

🚀 Installation

Prérequis

  • Python 3.11 ou supérieur
  • pip
  • pipenv (recommandé)

Étapes d'installation

  1. Cloner le repository
git clone https://github.com/jocha28/ecom-front-backend.git
cd ecom-front-backend
  1. Installer les dépendances
# Avec pipenv (recommandé)
pipenv install

# Ou avec pip
pip install django djangorestframework pillow django-cors-headers
  1. Activer l'environnement virtuel
pipenv shell
  1. Appliquer les migrations
cd ecommerce
python manage.py migrate
  1. Créer un superutilisateur (optionnel)
python manage.py createsuperuser
  1. Lancer le serveur de développement
python manage.py runserver
  1. Accéder à l'application

📖 Utilisation

Accéder à l'API REST

L'API est accessible à l'adresse : http://localhost:8000/api/

Exemple de requête GET pour obtenir tous les produits :

curl http://localhost:8000/api/products/

Exemple de requête POST pour créer un vendeur :

curl -X POST http://localhost:8000/api/sellers/ \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe", "email": "john@example.com", "phone": "1234567890"}'

Frontend

Les pages HTML dans le dossier frontend/ permettent de :

  • Ajouter des clients et vendeurs
  • Visualiser et gérer les produits
  • Voir les profils
  • Gérer les relations entre clients et vendeurs

🔧 Configuration

CORS

Le projet est configuré pour accepter toutes les origines en mode développement :

CORS_ALLOW_ALL_ORIGINS = True

⚠️ Important : Pour la production, configurez les origines autorisées spécifiquement.

Médias

Les fichiers médias sont stockés dans le dossier media/ avec les sous-dossiers :

  • profile_pictures/ : Photos de profil
  • cover_photos/ : Photos de couverture
  • photo_images/ : Images de produits
  • product_videos/ : Vidéos de produits

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  1. Fork le projet
  2. Créer une branche pour votre fonctionnalité
  3. Commit vos changements
  4. Push vers la branche
  5. Ouvrir une Pull Request

📝 Licence

Ce projet est un projet éducatif/de démonstration.

👤 Auteur

jocha28


⭐ Si ce projet vous a aidé, n'oubliez pas de mettre une étoile !

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •