AnGoTest: Tests online con Angular, Go e IA
Visión general
AnGoTest será una aplicación web de tests online que servirá tanto como práctica académica en el máster de Desarrollo Web Full Stack como un producto útil para el aprendizaje en diferentes áreas de conocimiento.
Cada día, los usuarios registrados tendrán acceso a un nuevo test con 10-20 preguntas, de respuesta múltiple, que deberán completar en un tiempo determinado.
El sistema guardará sus resultados (respuestas correctas, incorrectas y tiempo empleado), y con estos datos se generará un ranking global de usuarios, incentivando la participación diaria.
Además, contará con un panel de administración en el que se podrán crear, editar y eliminar tests, así como consultar estadísticas globales. De manera opcional, se incorporará la generación de preguntas mediante IA, que servirá como mi primera toma de contacto con este tipo de integración.
Plan de Desarrollo
🟢 Fase 1 – MVP básico
- Backend (Go + Gin):
- Endpoint
/tests/todaycon un test estático. - Endpoint
/resultsen memoria (guardar respuestas y puntuación).
- Endpoint
- Frontend (Angular):
- Página de login/registro dummy.
- Visualización y resolución del test del día.
🟡 Fase 2 – Persistencia en base de datos
- Backend:
- Conexión a PostgreSQL.
- Tablas para usuarios, tests, preguntas, respuestas y resultados.
- Frontend:
- Consumo real de API.
- Historial de tests realizados por usuario.
🔵 Fase 3 – Autenticación y usuarios
- Backend:
- Registro y login con JWT.
- Middleware para proteger endpoints.
- Frontend:
- Formulario de login/registro.
- Rutas protegidas (Angular Router Guards).
🟣 Fase 4 – Ranking y gamificación
- Backend:
- Endpoint
/rankingcon los mejores usuarios.
- Endpoint
- Frontend:
- Página de ranking global.
- Visualización de estadísticas personales vs globales.
🟠 Fase 5 – Panel de administración
- Backend:
- CRUD completo para tests, preguntas y respuestas.
- Endpoint
/stats/globalpara métricas generales.
- Frontend:
- Dashboard con Angular Material.
- Gráficas de resultados globales.
🔴 Fase 6 – Integración con IA (opcional)
- Backend:
- Endpoint
/tests/generateque conecta con una API de IA (ej. OpenAI). - Generación automática o asistida de preguntas y respuestas.
- Endpoint
- Frontend:
- Botón “Generar test con IA” en el panel de administración.
Arquitectura de trabajo
-
Frontend (Angular):
- Angular + Angular Material.
- Guards + interceptors para JWT.
- NgRx/signals para manejo de estado.
-
Backend (Go):
- Go + Gin.
- ORM: GORM / sqlx.
- JWT para auth.
- Posible integración con OpenAI API.
-
Base de datos (PostgreSQL):
userstestsquestionsanswersresults
Estructura de carpetas básica
AnGoTest/
├── frontend/ (Angular)
│ ├── src/app/
│ │ ├── auth/
│ │ ├── tests/
│ │ ├── results/
│ │ ├── ranking/
│ │ └── admin/
│ └── assets/
│
├── backend/ (Go)
│ ├── cmd/
│ │ └── server/ (main.go)
│ ├── internal/
│ │ ├── auth/
│ │ ├── tests/
│ │ ├── results/
│ │ ├── ranking/
│ │ └── admin/
│ ├── pkg/
│ │ ├── database/
│ │ ├── middleware/
│ │ └── utils/
│ └── go.mod
│
└── db/
├── migrations/
└── seed/
Conclusión
Este proyecto me permitirá:
- Afianzar mis conocimientos de Angular en frontend moderno.
- Construir un backend con Go seguro y escalable.
- Practicar el diseño de bases de datos relacionales con PostgreSQL.
- Aprender a integrar Inteligencia Artificial en un flujo de aplicación real.
- Desarrollar un producto con un alto componente de gamificación y utilidad educativa.