Skip to content

Yamila-Navas/Educa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Learning Platform with Django & Django REST Framework

Plataforma de e-learning construida con Django que permite crear, gestionar y consumir cursos con contenido multimedia, sistema de inscripción de estudiantes, API REST y cache con Redis.


Características principales

Sistema de cursos

  • Creación y gestión de cursos

  • Organización por materias (Subjects)

  • Módulos dentro de cada curso

  • Contenido polimórfico:

    • Texto
    • Video
    • Imagen
    • Archivos

Sistema de usuarios

  • Registro de estudiantes
  • Autenticación
  • Inscripción a cursos
  • Control de acceso basado en permisos

Content Management System (CMS)

  • Gestión de cursos por instructores
  • Reordenamiento dinámico de módulos y contenidos
  • Formsets para edición avanzada
  • Restricción de acceso por permisos

API REST

Construida con Django REST Framework.

Permite:

  • Listar cursos
  • Ver detalles de cursos
  • Inscribirse en cursos
  • Acceder a contenidos
  • Serialización anidada completa

Endpoints principales:

GET     /api/courses/
GET     /api/courses/{id}/
POST    /api/courses/{id}/enroll/
GET     /api/courses/{id}/contents/

Sistema de cache

Implementado usando:

  • Redis
  • Django Cache Framework

Beneficios:

  • Reducción de consultas a la base de datos
  • Mejora significativa del rendimiento
  • Mejor escalabilidad

Tecnologías utilizadas

  • Python
  • Django
  • Django REST Framework
  • Redis
  • Docker
  • SQLite / PostgreSQL
  • Django Debug Toolbar

Arquitectura

Conceptos avanzados implementados:

  • Class-based views
  • Mixins
  • Generic relations
  • Model inheritance
  • Polymorphic models
  • Custom serializer fields
  • Nested serializers
  • Custom permissions
  • ViewSets y actions
  • Cache backend integration

Instalación

1. Clonar repositorio

git clone <repo-url>
cd educa

2. Crear entorno virtual

python -m venv env
source env/bin/activate

3. Instalar dependencias

pip install -r requirements.txt

4. Migraciones

python manage.py migrate

5. Crear superusuario

python manage.py createsuperuser

6. Ejecutar servidor

python manage.py runserver

Configuración de Redis (opcional pero recomendado)

Ejecutar Redis con Docker:

docker run -d -p 6379:6379 redis

Configurar en settings.py:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379',
    }
}

Ejemplo de uso de API

Inscribirse en un curso:

POST /api/courses/1/enroll/

Obtener contenidos:

GET /api/courses/1/contents/

Conceptos clave implementados

  • Polymorphic content system
  • Nested serialization
  • Custom DRF actions
  • Permission-based access control
  • Cache optimization
  • CMS architecture
  • REST API design

Objetivo del proyecto

Demostrar implementación completa de una plataforma de e-learning usando Django y DRF aplicando buenas prácticas y arquitectura profesional.


Estado

Proyecto funcional

Posibles mejoras futuras:

  • JWT authentication
  • Frontend en React
  • Async tasks con Celery
  • Sistema de pagos
  • Sistema de progreso

Autor

Yamila

About

Plataforma de e-learning construida con Django que permite crear, gestionar y consumir cursos con contenido multimedia, sistema de inscripción de estudiantes, API REST y cache con Redis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors