¡Bienvenido al futuro de la organización estudiantil! Este proyecto es un Planificador de Rutinas Inteligente con IA, una plataforma web dinámica diseñada para revolucionar la gestión del tiempo de los estudiantes mediante el poder de la Inteligencia Artificial y recordatorios automáticos inteligentes.
Este sistema avanzado, desarrollado con el robusto framework Django, tiene como objetivo principal optimizar el uso del tiempo de los estudiantes, equilibrando sus actividades académicas con descansos adecuados. La plataforma utiliza algoritmos de IA para ofrecer recomendaciones personalizadas, ajustes automáticos basados en los hábitos del usuario, y un sistema de recordatorios automáticos inteligentes que se adapta al comportamiento estudiantil.
El público objetivo son estudiantes de nivel medio y superior que deseen mejorar su organización, evitar la procrastinación y potenciar su rendimiento académico con una solución completamente automatizada y adaptativa.
-
🔐 Autenticación y Gestión de Usuarios
- Registro seguro con validación de email
- Inicio de sesión tradicional y OAuth con Google
- Perfiles de usuario personalizables
- Gestión de sesiones segura
-
🗓️ Gestión Inteligente de Horarios
- Creación y visualización de horarios dinámicos
- Planificación automática de tareas
- Programación inteligente de descansos
- Vista semanal y mensual interactiva
-
🧠 Optimización con IA
- Algoritmos de priorización automática de tareas
- Generación de bloques de tiempo enfocados
- Reorganización automática del horario
- Análisis predictivo de productividad
-
🔔 Sistema de Recordatorios Automáticos Inteligentes ⭐ NUEVO
- Envío automático de recordatorios por email y Google Calendar
- Frecuencia adaptativa que aprende del comportamiento del usuario
- Personalización con IA para generar contenido relevante
- Integración completa con Gmail API y Google Calendar API
- Configuración multiplataforma (Windows, Linux, macOS)
- Sistema de respuestas para mejorar la personalización
-
📊 Seguimiento y Análisis Avanzado
- Métricas de productividad en tiempo real
- Análisis de patrones de estudio
- Reportes de rendimiento personalizados
- Aprendizaje continuo de hábitos
-
❤️ Bienestar y Formación
- Alertas inteligentes de descanso
- Recomendaciones de técnicas de estudio
- Monitoreo de carga de trabajo
- Sugerencias de equilibrio vida-estudio
Este proyecto se construyó utilizando un stack de tecnologías moderno y escalable:
- Framework: Django 4.2+ (Python)
- Base de Datos: PostgreSQL (Producción) / SQLite (Desarrollo)
- Autenticación: Django Allauth + Google OAuth 2.0
- APIs: Django REST Framework
- Tareas Asíncronas: Django Management Commands + Cron/Task Scheduler
- CSS Framework: Tailwind CSS 3.0
- JavaScript: Vanilla JS + Alpine.js
- Iconos: Heroicons
- Responsive Design: Mobile-first approach
- Machine Learning: Scikit-learn para análisis predictivo
- Procesamiento de Datos: Pandas, NumPy
- Algoritmos de IA: Modelos personalizados para optimización de rutinas
- Sistema de Recordatorios: Automatización inteligente con frecuencia adaptativa
- Gmail API: Envío automático de recordatorios por email
- Google Calendar API: Creación automática de eventos
- Google Cloud Console: Gestión de credenciales OAuth
- Cron Jobs: Automatización de tareas en Linux/macOS
- Windows Task Scheduler: Automatización en Windows
- Cloud Provider: Amazon Web Services (AWS)
- Almacenamiento: AWS S3 para archivos estáticos
- Base de Datos: AWS RDS PostgreSQL
- Servidor: AWS EC2
- CDN: AWS CloudFront
Para ejecutar este proyecto en tu máquina local, sigue estos pasos detallados:
Asegúrate de tener instalados Python y Node.js en tu sistema. Puedes verificarlo con los siguientes comandos en tu terminal:
# Verificar la versión de Python (se recomienda 3.8 o superior)
python --version
# Verificar la versión de Node.js (se recomienda 14.x o superior)
node --version
# Verificar la versión de npm (gestor de paquetes de Node.js)
npm --versionPrimero, clona el repositorio desde GitHub a tu máquina local.
git clone https://github.com/SnayderCJ/Proyecto-final-Snayder-Cedeno.git
cd tu-repositorioVamos a configurar el entorno virtual y las dependencias de Python.
# 1. Crear un entorno virtual para aislar las dependencias del proyecto
python -m venv venv
# 2. Activar el entorno virtual
# En Windows:
venv\Scripts\activate
# En macOS/Linux:
source venv/bin/activate
# 3. Instalar todas las dependencias de Python listadas en requirements.txt
pip install -r requirements.txtAhora, instalaremos las dependencias de Node.js para que Tailwind CSS funcione correctamente.
# Instalar las dependencias de node (tailwindcss, postcss, etc.)
npm installLa seguridad es crucial. Este proyecto usa un archivo .env para gestionar las variables sensibles.
- En la raíz del proyecto, crea un archivo llamado
.env - Copia el contenido del archivo
.env.example(si existe) o usa la siguiente plantilla - Completa los valores con tus propias credenciales
# Configuración de Django
SECRET_KEY='tu-super-secreta-django-key'
DEBUG=True
# Base de Datos
DATABASE_URL='postgres://user:password@host:port/dbname'
# Google OAuth 2.0 (Inicio de sesión)
GOOGLE_CLIENT_ID='tu-google-client-id'
GOOGLE_CLIENT_SECRET='tu-google-client-secret'
# Gmail API (Sistema de Recordatorios)
GMAIL_API_CREDENTIALS='path/to/credentials.json'
GMAIL_TOKEN_PATH='path/to/token.pickle'
# Google Calendar API
CALENDAR_API_CREDENTIALS='path/to/calendar_credentials.json'
CALENDAR_TOKEN_PATH='path/to/calendar_token.pickle'
# AWS (Archivos Estáticos)
AWS_ACCESS_KEY_ID='tu-aws-access-key'
AWS_SECRET_ACCESS_KEY='tu-aws-secret-key'
AWS_STORAGE_BUCKET_NAME='tu-s3-bucket-name'El sistema de recordatorios requiere configuración adicional para funcionar correctamente:
-
Configurar APIs de Google
# Instalar herramienta de línea de comandos de Google Cloud curl https://sdk.cloud.google.com | bash # Autenticar con Google Cloud gcloud auth login # Habilitar APIs necesarias gcloud services enable gmail.googleapis.com gcloud services enable calendar.googleapis.com
-
Configurar Automatización
En Linux/macOS:
# Dar permisos de ejecución chmod +x setup_reminder_crons.sh # Ejecutar script de configuración ./setup_reminder_crons.sh
En Windows:
# Ejecutar como administrador setup_reminder_scheduler_windows.bat
-
Verificar Instalación
# Probar sistema de recordatorios python manage.py test_reminder_system --user testuser # Verificar envío de recordatorios pendientes python manage.py send_pending_reminders --dry-run
Ya casi terminamos. Solo falta aplicar las migraciones de la base de datos.
# Aplicar las migraciones para crear las tablas en la base de datos
python manage.py migrate
# (Opcional pero recomendado) Crear un superusuario para acceder al admin de Django
python manage.py createsuperuserPara correr la aplicación, necesitarás dos terminales abiertas simultáneamente en la raíz del proyecto.
Terminal 1: Iniciar el proceso de Tailwind CSS
Este comando vigilará tus archivos de plantilla y CSS para compilarlos automáticamente cada vez que hagas un cambio.
# Este comando ejecuta el script "tailwind" definido en tu package.json
npm run tailwindTerminal 2: Iniciar el servidor de Django
Este comando pondrá en marcha el servidor de desarrollo de Django.
# ¡Asegúrate de que tu entorno virtual (venv) esté activado!
python manage.py runserver¡Y listo! 🎉 Abre tu navegador web y visita http://127.0.0.1:8000. Deberías ver la página de inicio de sesión de tu aplicación.
# Enviar recordatorios pendientes
python manage.py send_pending_reminders
# Enviar recordatorios en modo simulación (sin envío real)
python manage.py send_pending_reminders --dry-run
# Limpiar recordatorios antiguos y fallidos
python manage.py cleanup_reminders
# Sincronizar eventos del planner con recordatorios
python manage.py sync_planner_events
# Probar sistema completo de recordatorios
python manage.py test_reminder_system --user [username]
# Probar sistema sin envío de emails
python manage.py test_reminder_system --user [username] --skip-email# Crear y aplicar migraciones
python manage.py makemigrations
python manage.py migrate
# Crear superusuario
python manage.py createsuperuser
# Cargar datos de prueba (si existen fixtures)
python manage.py loaddata fixtures/sample_data.json
# Hacer backup de la base de datos
python manage.py dumpdata > backup.json# Limpiar archivos de cache de Django
python manage.py clearcache
# Recopilar archivos estáticos para producción
python manage.py collectstatic
# Verificar configuración del proyecto
python manage.py check
# Ejecutar tests
python manage.py test- Documentación de Recordatorios Automáticos - Guía completa del sistema de recordatorios
- Django Documentation - Documentación oficial de Django
- Tailwind CSS - Documentación de Tailwind CSS
- Gmail API - Documentación de Gmail API
- Google Calendar API - Documentación de Google Calendar API
# Asegúrate de que el entorno virtual esté activado
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# Reinstalar dependencias
pip install -r requirements.txt# Verificar credenciales de Gmail API
python manage.py test_gmail
# Reconfigurar credenciales si es necesario
# Seguir la guía en RECORDATORIOS_AUTOMATICOS.md# Verificar configuración de base de datos en .env
# Para desarrollo, usar SQLite (por defecto)
# Para producción, configurar PostgreSQL# Verificar que los cron jobs estén configurados
crontab -l # Linux/macOS
# En Windows, verificar Task Scheduler
# Ejecutar manualmente para probar
python manage.py send_pending_reminders- Nunca subas el archivo
.enval repositorio - Usa HTTPS en producción
- Configura CORS apropiadamente para APIs
- Mantén las dependencias actualizadas
- Usa variables de entorno para datos sensibles
- Configura rate limiting para APIs públicas
Para desplegar en producción, considera:
- Configurar DEBUG=False en el archivo
.env - Usar PostgreSQL como base de datos
- Configurar ALLOWED_HOSTS apropiadamente
- Usar un servidor web como Nginx + Gunicorn
- Configurar SSL/TLS para HTTPS
- Configurar monitoreo y logs
- Hacer backup regular de la base de datos
El sistema incluye logging automático para:
- ✅ Recordatorios enviados exitosamente
- ❌ Errores en el envío de recordatorios
- 📊 Estadísticas de uso por usuario
- 🔄 Cambios en la frecuencia adaptativa
- 📝 Actividad general del sistema
A continuación, puedes ver cómo luce el Planificador de Rutinas Inteligente en acción:
Ver imágenes en tamaño completo
Interfaz de Inicio de Sesión y Registro
Ilustración 1: interfaz de usuario login
Dashboard Principal del Estudiante
Ilustración 3: interfaz de usuario Dashboard
Gestión de Tareas y Calendario Inteligente
Ilustración 4: interfaz de usuario Gestión de tareas y Calendario
Este proyecto fue desarrollado con dedicación por los siguientes estudiantes de la carrera de Software en la UNEMI:
- Mayerly Anabela Piloso Muñoz
- Oswaldo Danilo Angulo Tamayo
- Jostyn Snayder Cedeño Jimenez (Gerente del Proyecto)
Bajo la supervisión del docente Ing. Rodrigo Josue Guevara Reyes.
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.





