** INICIO RÁPIDO:** Lee
INICIO_RAPIDO.md- Solo doble click eniniciar_desarrollo_full.bat
NUEVO USUARIO: Lee
docs/GUIA-COMPLETA.mdpara guía completa de instalación.
** DOCUMENTACIÓN:** Ver carpeta
docs/para documentación organizada por categorías.
** PWA/MÓVIL:** Ver
docs/guias/GUIA-RAPIDA-MOVIL.mdpara ejecutar en celular.
** RELEASES:** Ver
docs/releases/para notas de versión.
StudentsPoint es una plataforma web progresiva (PWA) de codigo abierto diseñada para centralizar herramientas y servicios estudiantiles. Desarrollada como proyecto de Capstone, la plataforma puede ser implementada por cualquier institucion educativa.
Proyecto de Capstone - Ingenieria en Informatica, Duoc UC
Periodo: Agosto - Diciembre 2025
Estado: Production-Ready - Masterizado - Sistema de Logs Automático
StudentsPoint nace de la necesidad de centralizar y unificar todas las herramientas que los estudiantes necesitan en un solo lugar accesible. En lugar de tener múltiples aplicaciones dispersas (foros en un sitio, marketplace en otro, portafolio en otro), esta plataforma integra una suite completa de herramientas estudiantiles bajo un mismo ecosistema.
La diversidad de módulos en StudentsPoint responde a una estrategia de centralización estudiantil:
- Foros: Comunicación y discusión académica por carrera
- Marketplace: Compra/venta entre estudiantes de la misma institución
- Portafolio: Gestión profesional de logros y certificaciones
- Reportes: Sistema de incidencias para mantener el campus en óptimas condiciones
- Encuestas: Participación estudiantil y feedback institucional
- Cursos OTEC: Capacitación continua y certificaciones
- Bienestar: Rutinas de kinesiología y salud estudiantil
- Recorridos Virtuales: Orientación y navegación del campus
- Conversor de Documentos: Herramientas de productividad académica
Cualquier institución educativa puede adoptar StudentsPoint como su plataforma de centralización estudiantil. El proyecto está diseñado para ser:
- Modular: Cada herramienta funciona de forma independiente
- Escalable: Se adapta a instituciones pequeñas y grandes
- Personalizable: Configurable por campus, carreras y roles
- Open Source: Libre para adaptar a necesidades específicas
- PWA: Funciona como aplicación nativa en móviles y escritorio
Esta arquitectura permite que las instituciones reemplacen múltiples sistemas dispersos con una única plataforma integrada, mejorando la experiencia del estudiante y reduciendo la fragmentación de servicios.
iniciar_studentspoint.batEste script maestro te permite elegir el modo de inicio:
- Local - Solo esta PC
- Red Local - WiFi
- Tailscale - VPN privada
- ngrok - HTTPS publico (perfecto para PWA)
- playit.gg - Tunel HTTP permanente
- playit.gg HTTPS - Con certificados SSL
- Produccion - Modo produccion
- Instalar Dependencias - Instala todo automaticamente
Documentacion completa: Ver docs/guias/LAUNCHER.md
Windows:
scripts\iniciar_desarrollo.batLinux/Mac:
chmod +x scripts/iniciar_desarrollo.sh
./scripts/iniciar_desarrollo.shUsa el launcher universal iniciar_studentspoint.bat y selecciona:
- Opcion [4] - ngrok con HTTPS (perfecto para PWA, funciona con Python 3.13)
Nota Python 3.13: Si tienes Python 3.13+, usa ngrok (opcion 4) para HTTPS. Ver docs/guias/HTTPS-PYTHON313.md
Problema con ngrok? Si excediste el límite de ancho de banda de ngrok, opciones alternativas:
- Crear una nueva cuenta de ngrok con otro email
- Usar Tailscale (red privada VPN) - Opción [3]
- LocalTunnel:
npm install -g localtunnel+lt --port 8000
Guias completas:
docs/guias/USAR-NGROK.md- Configuracion de ngrokdocs/guias/USAR-PLAYIT.md- Configuracion de playit.gg
¡Eso es todo! El servidor se inicia automáticamente.
En la raíz del proyecto:
iniciar_studentspoint.bat- Launcher Universal - Menu interactivo con todas las opciones
En la carpeta scripts/:
iniciar_desarrollo.bat/.sh- Inicio rápido en desarrolloiniciar_con_ngrok.bat- Inicio con HTTPS (ngrok) para PWA móviliniciar_playit_https.bat- Inicio con playit.gg y HTTPSiniciar_produccion.bat/.sh- Iniciar en modo produccióniniciar_simple.bat- Inicio minimalista sin extrasiniciar_solo_ngrok.bat- Solo tunel ngrok (Django debe estar corriendo)configurar_https.bat- Configurar HTTPS local con certificado self-signedregenerar_iconos_pwa.bat- Regenerar iconos PWA con logo StudentsPointver_logs.bat/.sh- Ver logs en tiempo realver_logs_tests.bat/.sh- Ver logs de pruebasdeploy_linux.sh- Despliegue en Linuxinstalar_postgresql.bat- Instalador de PostgreSQLinstalar_pwa.bat/.sh- Instalar archivos PWAdetener_servicios.sh- Detener servicios en Linuxdetener_monitor.bat- Detener monitor en Windowsaplicar_correcciones_movil.bat- Aplicar correcciones de responsive móvildiagnostico.bat- Diagnóstico del sistemaverificar_pwa.bat- Verificar instalación PWAiniciar_simple.bat- Inicio simple alternativoiniciar_solo_ngrok.bat- Iniciar solo ngrok (Django debe estar corriendo)verificar_pwa.bat- Verificar archivos PWA
- Foros: Comentarios, reportes y moderación con permisos y auditoría reforzada. Ahora solo permite mensajes de texto/imagen (las encuestas tienen su propio módulo).
- Marketplace: Visualización del
precio_student_point, validaciones de términos y analytics automáticos. - Reportes: Sistema completo para reportar incidencias en salas de clases y espacios del campus (computadores rotos, baches, infraestructura dañada, etc.) con subida de fotos, filtros dinámicos, KPIs y exportaciones CSV/PDF.
- Encuestas: Módulo independiente con integración completa de roles (
moderator,director_carrera), votación, resultados y creación avanzada. Frontend mejorado con mejor visibilidad del selector de sedes y controles de fecha. - Entorno de pruebas: Suites de API actualizadas y migraciones aplicadas para evitar discrepancias de base de datos.
Documentacion completa: Ver carpeta
docs/para toda la documentacion disponible.
Sistema de Logs: Ver
docs/guias/SISTEMA-LOGGING.mdpara guia de monitoreo y logs.
- Foros personalizados por carrera
- Restriccion de publicacion: usuarios solo pueden postear en el foro de su carrera
- Libertad de comentarios: usuarios pueden comentar en cualquier foro
- Tipos de publicaciones: comentarios, encuestas, imagenes, otros
- Censura automatica de contenido ofensivo
- Revision manual de imagenes por administradores
- Foros publicos y privados
- Sistema de moderacion automatica y manual
- Optimizacion de consultas N+1
- Abstraccion de codigo con servicios y utilidades
- Registro con email y contraseña (verificacion por correo)
- Login seguro con JWT y hashing de contraseñas
- Google OAuth 2.0 como alternativa
- Recuperacion de contraseña por email
- Verificacion de email con codigos HTML profesionales
- Sistema de auditoria completo (LoginLog, RegistrationLog, UserActivityLog)
- Perfil personalizable (foto, datos academicos)
- Cambio de carrera cada semestre con historial
- Sistema de roles: admin, moderador, director de carrera, estudiante
- Multiples areas de estudio disponibles
- Scripts de prueba interactivos para verificacion de email
- Productos con enlaces externos (Facebook, Yapo, MercadoLibre)
- OpenGraph metadata scraping automatico
- Vista previa de productos externos
- Sistema de favoritos
- Reportes de productos inapropiados
- Analytics detallados por producto
- Filtrado por campus y carrera
- Abstraccion de servicios para extraccion de metadatos
- Conversion Word a PDF con preservacion de formato
- Conversion PDF a Word editable
- OCR para PDFs escaneados (pytesseract)
- Validacion de archivos (tamaño, tipo, contenido vacio)
- Manejo robusto de errores
- Procesamiento asincrono
- Historial de conversiones
- Limpieza automatica de archivos temporales
- Service Worker con cache inteligente
- Instalacion como app nativa (Android/iOS)
- Funcionamiento offline
- Actualizaciones automaticas
- Iconos optimizados para todas las resoluciones
- Soporte HTTPS con ngrok para testing rapido
- Responsive design optimizado para moviles
- Safe-area-inset para notches y barras inferiores
- Portafolio profesional con generacion de PDF
- Recorridos virtuales 360° del campus
- Sistema de bienestar estudiantil
- Gestion de horarios de clases
- Cursos OTEC
- Sistema de encuestas - Módulo independiente para votaciones institucionales (no confundir con el foro)
- Notificaciones push
- Sistema de reportes de incidencias en salas de clases y espacios del campus (con subida de fotos)
- Logging completo: 4 archivos de log separados (general, errors, api, auth)
- Monitor en tiempo real: Actualizacion automatica cada 30-60s
- Sistema de alertas: Deteccion automatica de problemas criticos
- Analisis avanzado: Reportes con estadisticas y recomendaciones
- Optimizacion de queries: Deteccion automatica de N+1
- Performance monitoring: Metricas de frontend en tiempo real
- Auditoria de usuarios: Registro completo de logins, registros y actividad
- Trazabilidad: IP, user agent y timestamps para cada accion importante
El proyecto incluye un sistema completo de testing automatizado:
- Pruebas Unitarias: APIs, modelos, serializers, vistas
- Pruebas de Integracion: Flujos completos de APIs
- Pruebas E2E: Interfaz de usuario con Selenium
- Pruebas PWA: 21 tests para verificar funcionamiento completo
- Cobertura: >80% del codigo
Ejecutar pruebas:
# Windows
ejecutar_tests_dev.bat
# Linux/Mac
./ejecutar_tests_completo.sh
# Suite completa con reporte
python tests/test_suite_completo.py --verbose --coverageTesting PWA en Celular:
Ver docs/guias/PRUEBAS-PWA.md para:
- 21 tests de verificacion PWA
- Testing en Android/iOS
- Verificacion de Service Worker
- Pruebas de instalacion
- Testing con ngrok (HTTPS)
Para mas detalles, ver la documentacion en docs/
- Django 5.2 - Framework web
- Django REST Framework - API REST
- PostgreSQL - Base de datos (produccion)
- SQLite - Base de datos (desarrollo)
- Redis - Cache y broker de mensajes
- Celery - Tareas asincronas
- JWT - Autenticacion con tokens
- python-docx, reportlab - Procesamiento de documentos
- PyPDF2, pytesseract - Conversion PDF y OCR
- beautifulsoup4, requests - Web scraping y OpenGraph
- google-auth - OAuth 2.0 con Google
- HTML5, CSS3, JavaScript ES6+ - Tecnologias base
- Bootstrap 5 - Framework CSS
- PWA - Service Worker para funcionalidad offline
- Font Awesome - Iconos
- API Services centralizados - Abstraccion de llamadas HTTP
- Autenticacion centralizada - Servicios reutilizables
- Python 3.11+
- Git
- PostgreSQL (para produccion)
# Ejecutar el script de instalacion
iniciar_desarrollo.bat# Clonar repositorio
git clone https://github.com/JackStar6677-1/students-point.git
cd students-point
# Crear entorno virtual
python -m venv venv
source venv/bin/activate
# Instalar dependencias
cd proyecto/src/backend
pip install -r requirements.txt
# Aplicar migraciones
python manage.py migrate
# Recopilar archivos estaticos
python manage.py collectstatic --noinput
# Crear superusuario
python manage.py createsuperuser
# Iniciar servidor
python manage.py runserver- Aplicacion: http://127.0.0.1:8000
- Panel Admin: http://127.0.0.1:8000/admin/
- API Docs: http://127.0.0.1:8000/api/docs/
Crear una Publicacion
- Solo puedes crear posts en el foro de tu carrera
- Tipos disponibles: mensaje (texto) y mensaje con imagen
- El sistema censura automaticamente palabras ofensivas
- Las imagenes requieren aprobacion de administradores
- Nota: Las encuestas tienen su propio módulo separado (
/encuestas/)
Comentar en Posts
- Puedes comentar en posts de cualquier foro
- Sin restricciones de carrera para comentarios
Votar y Participar
- Vota posts (upvote/downvote)
- Reporta contenido inapropiado
- Para encuestas institucionales, usa el módulo de Encuestas (
/encuestas/)
Panel de Administracion
- Aprobar/rechazar imagenes masivamente
- Moderar posts en revision
- Gestionar foros publicos y privados
- Ver historial de cambios de carrera
- Gestionar usuarios y roles
Crear un Reporte
- Reporta problemas en salas de clases y espacios del campus (computadores rotos, baches, baños dañados, etc.)
- Adjunta fotos del problema para documentarlo visualmente
- Selecciona la sede/campus donde ocurrió el problema
- Indica la ubicación exacta con coordenadas (se puede usar la ubicación del dispositivo)
- Categoriza el problema (ej: "Computador roto", "Bache", "Baño dañado")
- Describe el problema en detalle
Visualizar Reportes
- Filtra reportes por fecha, categoría, campus y estado
- Ve KPIs en tiempo real: totales, en revisión, resueltos, pendientes
- Exporta reportes a CSV o PDF para análisis
Gestionar Reportes
- Cambia el estado de reportes (Abierto → En revisión → Resuelto)
- Asigna prioridad a los reportes
- Visualiza todas las fotos adjuntas
- Filtra y analiza reportes por múltiples criterios
- Exporta datos para reportes administrativos
Ver docs/guias/DEPLOYMENT-PRODUCTION.md para instrucciones detalladas de despliegue en produccion.
students-point/
├── docs/ # Documentacion completa
│ ├── academico/ # Documentos academicos del Capstone
│ ├── arquitectura/ # Arquitectura del sistema
│ ├── config-avanzada/ # Configuracion tecnica detallada
│ ├── especificaciones/ # Especificaciones de requisitos
│ ├── guias/ # Guias (PWA, ngrok, deployment, etc.)
│ ├── historico/ # Resumenes y estados previos
│ ├── modelo-datos/ # Modelos de datos
│ ├── modulos/ # Documentacion de modulos
│ ├── releases/ # Notas de versiones
│ └── tecnologias/ # Stack tecnologico
│
├── scripts/ # Scripts de utilidades organizados
│ ├── iniciar_produccion.* # Scripts de produccion
│ ├── configurar_https.bat # Configurar HTTPS local
│ ├── instalar_pwa.* # Instalacion PWA
│ ├── ver_logs.* # Scripts de visualizacion de logs
│ ├── deploy_linux.sh # Despliegue en Linux
│ ├── diagnostico.bat # Diagnostico del sistema
│ ├── verificar_pwa.bat # Verificacion PWA
│ └── ... # Otros scripts de utilidad
│
├── FASE 1/ # Evidencias academicas Fase 1
├── FASE 2/ # Evidencias academicas Fase 2
├── FASE 3/ # Evidencias academicas Fase 3
│
├── proyecto/ # Codigo fuente principal
│ └── src/
│ ├── backend/ # Backend Django
│ │ ├── studentspoint/ # Proyecto Django principal
│ │ │ ├── apps/ # Aplicaciones Django
│ │ │ └── settings/ # Configuraciones (dev, prod, test)
│ │ └── manage.py
│ └── frontend/ # Frontend (HTML, CSS, JS)
│ ├── static/ # Archivos estaticos centralizados
│ │ ├── js/ # JavaScript centralizado
│ │ ├── css/ # CSS centralizado (con mobile-fixes.css)
│ │ ├── sw.js # Service Worker PWA
│ │ ├── manifest.json # Web App Manifest
│ │ └── pwa-config.js # Configuracion PWA
│ └── *.html # Paginas HTML
│
├── pruebas_unitarias/ # Tests unitarios (pytest)
├── pruebas_automatizadas/ # Tests E2E
├── tests/ # Suite de tests completa
│
├── config/ # Configuraciones del sistema
│ └── systemd/ # Servicios systemd para Linux
│
├── logs_tests/ # Logs de pruebas automatizadas
│
├── iniciar_desarrollo.* # Scripts de inicio rapido (raiz)
├── iniciar_con_ngrok.bat # Inicio con HTTPS/ngrok para PWA
├── USAR-NGROK.md # Guia rapida de ngrok
├── README.md # Este archivo
├── pyrightconfig.json # Configuracion de linter
└── .gitignore # Archivos ignorados por Git
La documentacion esta organizada en carpetas tematicas. Ver:
- docs/GUIA-COMPLETA.md - Guia de inicio completa
- Carpeta
docs/- Toda la documentacion del proyecto
docs/config-avanzada/
descripcion-proyecto.txt- Descripcion completaestructura-proyecto.txt- Estructura detalladaherramientas-utilizadas.txt- Stack tecnologicodesarrollo-desde-cero.txt- Desarrollo original
docs/especificaciones/
foro detallado.txt- Requisitos del sistema de foroslogin-profile-register detallado.txt- Requisitos de autenticacion
docs/guias/
CONFIGURACION-GOOGLE-EMAIL.md- OAuth y Email SMTPDEPLOYMENT-PRODUCTION.md- Despliegue en produccionSISTEMA-LOGGING.md- Sistema de logs y monitoreodocs/guias/LAUNCHER.md- Guia completa del launcher universal con todas las opcionesdocs/guias/USAR-NGROK.md- Guia rapida para usar ngrok con HTTPSdocs/guias/USAR-PLAYIT.md- Guia rapida para usar playit.gg con tunel publicoPWA-CELULAR.md- Guia rapida de instalacion PWA en celularINSTALACION-PWA.md- Instalacion completa de PWAPRUEBAS-PWA.md- 21 tests para verificar PWAACTUALIZAR-ICONOS-PWA.md- Actualizar iconos PWA con logo StudentsPointRecorridos_Virtuales.md- Sistema de recorridos
FASE 1/, FASE 2/, FASE 3/ - Evidencias academicas del Capstone
docs/academico/ - Cronogramas, presentaciones, instructivos
docs/historico/
- Resumenes de sesiones de trabajo
- Historiales de implementacion
- Estados previos del proyecto
cd pruebas_unitarias
pytestcd pruebas_automatizadas
pytestPOST /api/auth/register/- Registro de usuario (envia codigo de verificacion)POST /api/auth/login/- Login con email/passwordGET /api/auth/me/- Informacion del usuario actualPATCH /api/auth/me/update/- Actualizar perfilPOST /api/auth/refresh/- Renovar tokenGET /api/auth/google/login/web/- Login con Google OAuth
POST /api/auth/verificar-email/- Verificar email con codigoPOST /api/auth/reenviar-codigo/- Reenviar codigo de verificacion
POST /api/auth/recuperar-password/- Solicitar codigo de recuperacionPOST /api/auth/verificar-codigo-recuperacion/- Verificar codigoPOST /api/auth/resetear-password/- Cambiar contraseña con codigoPOST /api/auth/cambiar-password/- Cambiar contraseña (autenticado)
POST /api/auth/cambiar-carrera/- Cambiar area de estudioGET /api/carreras/- Lista de carreras disponibles
GET /api/foros/- Lista de foros accesiblesGET /api/posts/?foro_id=X- Posts de un foroPOST /api/posts/- Crear post (solo en foro de tu carrera)POST /api/posts/{id}/comentar/- Comentar postPOST /api/posts/{id}/votar/- Votar postPOST /api/posts/{id}/reportar/- Reportar post
Ver documentacion completa de API en /api/docs/
- Autenticacion JWT con tokens de acceso y refresco
- OAuth 2.0 con Google como alternativa
- Hashing seguro de contraseñas (PBKDF2-SHA256)
- Verificacion de email con codigos temporales (anti-bots)
- Codigos de verificacion con expiracion (15-30 minutos)
- Recuperacion de contraseña segura por email
- Censura automatica de contenido ofensivo en foros
- Moderacion automatica de posts con palabras prohibidas
- Revision manual de imagenes por administradores
- Validaciones de permisos en backend
- CORS configurado correctamente
- Proteccion contra CSRF, XSS, SQL Injection
- Rate limiting en API (throttling)
Este es un proyecto academico de Capstone. Las contribuciones son bienvenidas siguiendo estas pautas:
- Fork del repositorio
- Crear rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit de cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir Pull Request
- Pablo Avendaño
- Darosh Luco
- Isaac Paz
Institucion: Duoc UC
Carrera: Ingenieria en Informatica
Asignatura: Proyecto de Capstone (APT122)
Este proyecto es de codigo abierto, desarrollado como proyecto academico.
- Version Actual: v5.0.0 (Release 5)
- Fecha de Inicio: Agosto 2025
- Fecha Actual: Noviembre 2025
- Estado: Production-Ready - Sistema Completo con Auditoria
- Sistema de foros avanzado personalizado por carrera
- Sistema de autenticacion completo con verificacion de email HTML
- Sistema de auditoria completo (LoginLog, RegistrationLog, UserActivityLog)
- Email SMTP real configurado y funcional
- Google OAuth 2.0 configurado y funcional
- Conversor de documentos Word/PDF con OCR
- Marketplace con extraccion automatica de OpenGraph
- Abstraccion de codigo mejorada (services, utils, API services)
- PWA completamente funcional con instalacion
- Scripts de inicio automatizados (Windows y Linux)
- Scripts de prueba interactivos para verificacion de email
- Base de datos completamente migrada
- Tests unitarios completos y corregidos
- Documentacion completa y organizada
- Eliminacion de codigo duplicado y redundante
- Configuracion de linters (Pyright) para imports dinamicos
Ver la carpeta docs/ para ver todas las versiones y cambios detallados del proyecto.
Ver docs/historico/ para ver el historial de cambios detallado.
- Repositorio: https://github.com/JackStar6677-1/students-point
- Issues: https://github.com/JackStar6677-1/students-point/issues
Construyendo el futuro de la educacion digital - StudentsPoint Team 2025