14 KiB
AN-003: Historias de Usuario
Proyecto: Sistema de Registro de Estudiantes - Inter Rapidísimo Rol: Product Owner Fecha: 2026-01-07
1. Épica Principal
EP-001: Sistema de Inscripción de Estudiantes
Como institución educativa, necesito un sistema web que permita a los estudiantes registrarse e inscribirse en materias siguiendo las reglas del programa de créditos, para gestionar eficientemente el proceso de matrícula.
2. Historias de Usuario
US-001: Registro de Estudiante
| Campo | Valor |
|---|---|
| ID | US-001 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 5 |
| Sprint | 1 |
Historia:
Como estudiante nuevo, quiero registrarme en el sistema con mi nombre y correo electrónico, para poder acceder al programa de inscripción de materias.
Criterios de Aceptación:
Scenario: Registro exitoso de estudiante
Given estoy en la página de registro
When ingreso un nombre válido "Juan Pérez"
And ingreso un email válido "juan@email.com"
And presiono el botón "Registrar"
Then el sistema crea mi cuenta
And veo un mensaje de confirmación
And soy redirigido a la página de inscripción
Scenario: Registro con email duplicado
Given existe un estudiante con email "juan@email.com"
When intento registrarme con el mismo email
Then veo el mensaje "Ya existe un estudiante con este email"
And el formulario no se envía
Scenario: Registro con email inválido
Given estoy en la página de registro
When ingreso un email inválido "juanemail.com"
Then veo el mensaje "Formato de email no válido"
And el botón de registro está deshabilitado
Notas Técnicas:
- Validación de email en frontend y backend
- Email almacenado en minúsculas (normalización)
US-002: Consulta de Materias Disponibles
| Campo | Valor |
|---|---|
| ID | US-002 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 3 |
| Sprint | 1 |
Historia:
Como estudiante registrado, quiero ver el catálogo de las 10 materias disponibles, para conocer mis opciones de inscripción.
Criterios de Aceptación:
Scenario: Ver catálogo completo
Given estoy autenticado como estudiante
When accedo a la sección de materias
Then veo una lista de 10 materias
And cada materia muestra nombre, créditos (3) y profesor
Scenario: Ver detalle de materia
Given estoy viendo el catálogo de materias
When selecciono "Matemáticas I"
Then veo el nombre del profesor asignado
And veo que equivale a 3 créditos
US-003: Inscripción en Materia
| Campo | Valor |
|---|---|
| ID | US-003 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 8 |
| Sprint | 1 |
Historia:
Como estudiante registrado, quiero inscribirme en una materia disponible, para acumular créditos en mi programa académico.
Criterios de Aceptación:
Scenario: Inscripción exitosa
Given tengo menos de 3 materias inscritas
And la materia "Física I" está disponible para mí
When presiono "Inscribir" en "Física I"
Then la materia se agrega a mis inscripciones
And mis créditos aumentan en 3
And veo mensaje de confirmación
Scenario: Intento inscripción con máximo alcanzado
Given ya tengo 3 materias inscritas
When intento inscribir otra materia
Then veo el mensaje "Ya tienes el máximo de 3 materias"
And el botón de inscripción está deshabilitado
Scenario: Intento inscripción con mismo profesor
Given estoy inscrito en "Matemáticas I" (Profesor A)
When intento inscribir "Matemáticas II" (Profesor A)
Then veo el mensaje "Ya tienes una materia con este profesor"
And la inscripción no se procesa
Notas Técnicas:
- Validaciones RN-003 y RN-005 en capa de dominio
- Transacción atómica para inscripción
US-004: Cancelación de Inscripción
| Campo | Valor |
|---|---|
| ID | US-004 |
| Épica | EP-001 |
| Prioridad | Media |
| Story Points | 3 |
| Sprint | 1 |
Historia:
Como estudiante inscrito, quiero cancelar la inscripción de una materia, para liberar espacio y poder inscribir otra.
Criterios de Aceptación:
Scenario: Cancelación exitosa
Given estoy inscrito en "Física I"
When presiono "Cancelar inscripción" en esa materia
And confirmo la acción
Then la materia se elimina de mis inscripciones
And mis créditos disminuyen en 3
And la materia vuelve a estar disponible
Scenario: Cancelar con confirmación
Given estoy inscrito en "Física I"
When presiono "Cancelar inscripción"
Then veo un diálogo de confirmación
And puedo cancelar o confirmar la acción
US-005: Visualización de Materias No Disponibles
| Campo | Valor |
|---|---|
| ID | US-005 |
| Épica | EP-001 |
| Prioridad | Media |
| Story Points | 3 |
| Sprint | 2 |
Historia:
Como estudiante registrado, quiero ver claramente qué materias no puedo inscribir y por qué, para tomar decisiones informadas sobre mi inscripción.
Criterios de Aceptación:
Scenario: Ver materias bloqueadas por profesor
Given estoy inscrito en "Matemáticas I" (Profesor A)
When veo el catálogo de materias
Then "Matemáticas II" aparece deshabilitada
And veo el tooltip "Ya tienes materia con Profesor A"
Scenario: Ver contador de materias restantes
Given tengo 2 materias inscritas
When veo mi panel de inscripción
Then veo "2/3 materias inscritas"
And veo "Puedes inscribir 1 materia más"
US-006: Consulta de Otros Estudiantes
| Campo | Valor |
|---|---|
| ID | US-006 |
| Épica | EP-001 |
| Prioridad | Baja |
| Story Points | 2 |
| Sprint | 2 |
Historia:
Como estudiante registrado, quiero ver la lista de otros estudiantes en el sistema, para conocer quiénes están en el programa.
Criterios de Aceptación:
Scenario: Ver lista de estudiantes
Given estoy autenticado como estudiante
When accedo a la sección de estudiantes
Then veo una lista de todos los estudiantes registrados
And cada estudiante muestra solo su nombre
Notas:
- Por privacidad, no se muestra email ni materias de otros estudiantes
US-007: Ver Compañeros de Clase
| Campo | Valor |
|---|---|
| ID | US-007 |
| Épica | EP-001 |
| Prioridad | Media |
| Story Points | 5 |
| Sprint | 2 |
Historia:
Como estudiante inscrito en materias, quiero ver los nombres de mis compañeros en cada clase, para conocer con quiénes compartiré el curso.
Criterios de Aceptación:
Scenario: Ver compañeros por materia
Given estoy inscrito en "Física I"
And otros estudiantes también están inscritos en "Física I"
When accedo a "Mis compañeros de clase"
Then veo "Física I" como sección
And bajo ella veo la lista de nombres de compañeros
Scenario: Sin compañeros en materia
Given estoy inscrito en "Redes I"
And ningún otro estudiante está inscrito en "Redes I"
When accedo a "Mis compañeros de clase"
Then veo "Redes I" con mensaje "Sin compañeros aún"
Scenario: Privacidad de datos
Given estoy viendo mis compañeros de clase
Then solo veo los nombres
And NO veo emails ni otras materias de mis compañeros
US-008: Actualización de Datos Personales
| Campo | Valor |
|---|---|
| ID | US-008 |
| Épica | EP-001 |
| Prioridad | Baja |
| Story Points | 2 |
| Sprint | 2 |
Historia:
Como estudiante registrado, quiero actualizar mi nombre o correo electrónico, para mantener mis datos actualizados.
Criterios de Aceptación:
Scenario: Actualización exitosa de nombre
Given estoy en mi perfil
When cambio mi nombre a "Juan Carlos Pérez"
And presiono "Guardar"
Then mis datos se actualizan
And veo mensaje de confirmación
Scenario: Cambio de email a uno existente
Given existe otro estudiante con email "otro@email.com"
When intento cambiar mi email a "otro@email.com"
Then veo el mensaje "Este email ya está registrado"
And el cambio no se procesa
US-009: Eliminación de Cuenta
| Campo | Valor |
|---|---|
| ID | US-009 |
| Épica | EP-001 |
| Prioridad | Baja |
| Story Points | 2 |
| Sprint | 2 |
Historia:
Como estudiante registrado, quiero eliminar mi cuenta del sistema, para remover mis datos si ya no deseo participar.
Criterios de Aceptación:
Scenario: Eliminación con confirmación
Given estoy en mi perfil
When presiono "Eliminar cuenta"
Then veo un diálogo de confirmación
When confirmo la eliminación
Then mi cuenta y todas mis inscripciones se eliminan
And soy redirigido a la página de inicio
US-010: Activación de Cuenta de Estudiante
| Campo | Valor |
|---|---|
| ID | US-010 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 8 |
| Sprint | 1 |
Historia:
Como estudiante nuevo, quiero activar mi cuenta usando el código proporcionado por el administrador, para crear mis credenciales y acceder al sistema.
Criterios de Aceptación:
Scenario: Validación de código de activación
Given tengo un código de activación válido
When accedo a la URL de activación con el código
Then el sistema valida el código
And veo un mensaje de bienvenida con mi nombre
Scenario: Creación de credenciales
Given mi código de activación fue validado
When ingreso un nombre de usuario único
And ingreso una contraseña válida (mín. 6 caracteres)
And confirmo la contraseña
And presiono "Activar Cuenta"
Then mi cuenta se activa exitosamente
And veo mi código de recuperación (una sola vez)
And soy redirigido al login
Scenario: Código de activación expirado
Given mi código de activación expiró (>48 horas)
When accedo a la URL de activación
Then veo el mensaje "Código de activación expirado"
And veo instrucciones para contactar al administrador
US-011: Creación de Estudiante por Administrador
| Campo | Valor |
|---|---|
| ID | US-011 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 5 |
| Sprint | 1 |
Historia:
Como administrador del sistema, quiero crear estudiantes y obtener su código de activación, para permitirles activar sus cuentas de forma segura.
Criterios de Aceptación:
Scenario: Crear estudiante con código de activación
Given estoy autenticado como administrador
When navego al panel de gestión de estudiantes
And presiono "Nuevo Estudiante"
And ingreso nombre y email válidos
And presiono "Crear"
Then el estudiante se crea sin credenciales
And veo un modal con el código de activación
And veo la URL de activación completa
And veo la fecha de expiración del código
Scenario: Copiar código de activación
Given se muestra el modal de activación
When presiono el botón de copiar código
Then el código se copia al portapapeles
And veo confirmación visual
US-012: Control de Acceso por Roles
| Campo | Valor |
|---|---|
| ID | US-012 |
| Épica | EP-001 |
| Prioridad | Alta |
| Story Points | 5 |
| Sprint | 1 |
Historia:
Como sistema, quiero restringir el acceso según el rol del usuario, para garantizar que cada usuario solo acceda a funcionalidades autorizadas.
Criterios de Aceptación:
Scenario: Estudiante accede a su dashboard
Given estoy autenticado como estudiante
When accedo a /dashboard
Then veo mi información personal
And veo opciones: "Mi Portal", "Mis Materias", "Compañeros"
And NO veo: "Panel Admin", "Gestión Estudiantes"
Scenario: Estudiante intenta acceder a rutas de admin
Given estoy autenticado como estudiante
When intento navegar a /admin o /students
Then soy redirigido automáticamente a /dashboard
Scenario: Administrador accede al panel completo
Given estoy autenticado como administrador
When accedo a /admin
Then veo el panel de administración completo
And puedo gestionar todos los estudiantes
3. Backlog Priorizado
| Prioridad | Historia | Story Points | Sprint |
|---|---|---|---|
| 1 | US-001: Registro de Estudiante | 5 | 1 |
| 2 | US-011: Creación por Admin | 5 | 1 |
| 3 | US-010: Activación de Cuenta | 8 | 1 |
| 4 | US-012: Control de Acceso | 5 | 1 |
| 5 | US-002: Consulta de Materias | 3 | 1 |
| 6 | US-003: Inscripción en Materia | 8 | 1 |
| 7 | US-004: Cancelación de Inscripción | 3 | 1 |
| 8 | US-005: Materias No Disponibles | 3 | 2 |
| 9 | US-007: Ver Compañeros | 5 | 2 |
| 10 | US-006: Consulta de Estudiantes | 2 | 2 |
| 11 | US-008: Actualizar Datos | 2 | 2 |
| 12 | US-009: Eliminar Cuenta | 2 | 2 |
Total Story Points: 51
4. Definición de Listo (DoR)
- Historia tiene criterios de aceptación claros
- Dependencias identificadas
- Estimación en story points
- Diseño de UI aprobado (si aplica)
- APIs definidas
5. Definición de Terminado (DoD)
- Código implementado y revisado
- Tests unitarios (>80% coverage)
- Tests de integración pasando
- Documentación actualizada
- Validaciones de negocio probadas
- Sin deuda técnica crítica
6. Aprobación
| Rol | Nombre | Fecha | Firma |
|---|---|---|---|
| Product Owner | Sistema | 2026-01-07 | ✓ |
| Scrum Master | Pendiente | - | - |
| Tech Lead | Pendiente | - | - |