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.
-
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
- Registro de estudiantes
- Autenticación
- Inscripción a cursos
- Control de acceso basado en permisos
- 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
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/
Implementado usando:
- Redis
- Django Cache Framework
Beneficios:
- Reducción de consultas a la base de datos
- Mejora significativa del rendimiento
- Mejor escalabilidad
- Python
- Django
- Django REST Framework
- Redis
- Docker
- SQLite / PostgreSQL
- Django Debug Toolbar
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
git clone <repo-url>
cd educa
python -m venv env
source env/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
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',
}
}
Inscribirse en un curso:
POST /api/courses/1/enroll/
Obtener contenidos:
GET /api/courses/1/contents/
- Polymorphic content system
- Nested serialization
- Custom DRF actions
- Permission-based access control
- Cache optimization
- CMS architecture
- REST API design
Demostrar implementación completa de una plataforma de e-learning usando Django y DRF aplicando buenas prácticas y arquitectura profesional.
Proyecto funcional
Posibles mejoras futuras:
- JWT authentication
- Frontend en React
- Async tasks con Celery
- Sistema de pagos
- Sistema de progreso
Yamila