Skip to content

jocha28/elearnig-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

E-Learning API

Une API REST complète pour une plateforme d'apprentissage en ligne (e-learning) développée avec Django REST Framework.

🚀 Technologies Utilisées

Python Django Django REST Framework SQLite Pillow

📋 Description

Cette API permet de gérer une plateforme d'e-learning complète avec les fonctionnalités suivantes :

  • Gestion des profils : Création et gestion de profils d'étudiants et d'enseignants
  • Gestion des cours : Création, modification et suppression de cours avec support vidéo
  • Système d'inscription : Inscription des étudiants aux cours
  • Domaines d'expertise : Organisation des cours par domaines (Programmation, Design, Marketing, Data Science, Business)
  • Système de recommandation : Recommandation de cours basée sur les intérêts et le niveau d'expérience des utilisateurs
  • Support multimédia : Gestion des images de profil, photos de couverture et vidéos de cours

🏗️ Architecture

Le projet est structuré autour de quatre modèles principaux :

  • Profile : Profils utilisateurs (étudiants et enseignants)
  • Course : Cours avec vidéos et informations détaillées
  • Domain : Domaines d'expertise et d'intérêt
  • Enrollment : Inscriptions des étudiants aux cours

🔧 Installation

Prérequis

  • Python 3.11 ou supérieur
  • Pipenv

Étapes d'installation

  1. Cloner le dépôt

    git clone https://github.com/jocha28/elearnig-api.git
    cd elearnig-api
  2. Installer les dépendances

    pipenv install
  3. Activer l'environnement virtuel

    pipenv shell
  4. Effectuer les migrations

    cd elearning
    python manage.py migrate
  5. Créer un superutilisateur (optionnel)

    python manage.py createsuperuser
  6. Lancer le serveur de développement

    python manage.py runserver

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

📡 Endpoints API

Profils

  • GET /api/profiles/ - Liste tous les profils
  • POST /api/profiles/ - Créer un nouveau profil
  • GET /api/profiles/{id}/ - Détails d'un profil
  • PUT /api/profiles/{id}/ - Mettre à jour un profil
  • DELETE /api/profiles/{id}/ - Supprimer un profil

Cours

  • GET /api/courses/ - Liste tous les cours
  • POST /api/courses/ - Créer un nouveau cours
  • GET /api/courses/{id}/ - Détails d'un cours
  • PUT /api/courses/{id}/ - Mettre à jour un cours
  • DELETE /api/courses/{id}/ - Supprimer un cours

Domaines

  • GET /api/domains/ - Liste tous les domaines
  • POST /api/domains/ - Créer un nouveau domaine
  • GET /api/domains/{id}/ - Détails d'un domaine
  • PUT /api/domains/{id}/ - Mettre à jour un domaine
  • DELETE /api/domains/{id}/ - Supprimer un domaine

Inscriptions

  • GET /api/enrollments/ - Liste toutes les inscriptions
  • POST /api/enrollments/ - Créer une nouvelle inscription
  • GET /api/enrollments/{id}/ - Détails d'une inscription
  • PUT /api/enrollments/{id}/ - Mettre à jour une inscription
  • DELETE /api/enrollments/{id}/ - Supprimer une inscription

📊 Modèles de données

Profile

  • name : Nom de l'utilisateur
  • email : Email unique
  • role : Rôle (student/teacher)
  • interests : Domaines d'intérêt (ManyToMany)
  • experience_level : Niveau d'expérience (beginner/intermediate/advanced)
  • objectives : Objectifs d'apprentissage
  • profile_picture : Photo de profil
  • cover_photo : Photo de couverture

Course

  • title : Titre du cours
  • description : Description détaillée
  • teacher : Enseignant (ForeignKey vers Profile)
  • video : Fichier vidéo du cours
  • domain : Domaines associés (ManyToMany)
  • difficulty : Niveau de difficulté (beginner/intermediate/advanced)

Domain

  • name : Nom du domaine

Enrollment

  • student : Étudiant inscrit (ForeignKey vers Profile)
  • course : Cours concerné (ForeignKey vers Course)

🎯 Fonctionnalités clés

Système de recommandation

L'API propose un système de recommandation de cours basé sur :

  • Les domaines d'intérêt de l'utilisateur
  • Le niveau d'expérience de l'utilisateur
  • La difficulté des cours disponibles

Gestion des médias

  • Support des images de profil et de couverture
  • Upload et gestion de vidéos de cours
  • Stockage organisé par type de média

🔐 Authentification

L'API utilise les fonctionnalités d'authentification de Django REST Framework. Vous pouvez configurer l'authentification selon vos besoins (Token, JWT, Session, etc.).

🛠️ Développement

Structure du projet

elearnig-api/
├── elearning/           # Dossier principal Django
│   ├── api/            # Application API
│   │   ├── models.py   # Modèles de données
│   │   ├── views.py    # ViewSets
│   │   ├── serializers.py  # Serializers
│   │   ├── urls.py     # Routes API
│   │   └── migrations/ # Migrations de base de données
│   ├── manage.py       # Script de gestion Django
│   └── db.sqlite3      # Base de données SQLite
├── Pipfile             # Dépendances Python
└── Pipfile.lock        # Verrouillage des versions

Dépendances principales

  • Django : Framework web Python
  • Django REST Framework : Toolkit pour créer des APIs REST
  • Pillow : Traitement d'images pour les uploads

📝 Licence

Ce projet est un projet éducatif open source.

👥 Auteur

@jocha28

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages