Este proyecto consta de dos aplicaciónes web interactivas diseñadas para ayudarte a practicar preguntas del examen AWS Certified Developer y DevOps. La aplicación te permite realizar pruebas con preguntas aleatorias, ver tus respuestas falladas y recibir explicaciones detalladas para mejorar tu aprendizaje. La segunda aplicacion web consite en poder gestionar tu base de datos de preguntas.
✔️ Preguntas aleatorias: Cada test selecciona 10 preguntas al azar de una base de datos amplia.
✔️ Explicaciones detalladas: Cada pregunta incluye una explicación para ayudarte a comprender mejor los conceptos.
✔️ Categorías organizadas: Las preguntas están agrupadas por categorías como "Sin servidor", "Seguridad", "Bases de datos", etc.
✔️ Resumen final: Al terminar el test, obtienes un resumen con:
- Tu puntaje total.
- Un termómetro visual de desempeño.
- Una lista de preguntas falladas con sus explicaciones.
✔️ Interfaz intuitiva: Diseñada para ser fácil de usar y accesible desde cualquier navegador.
La aplicación carga las preguntas desde un archivo JSON (questions.json) y las muestra una por una. Después de responder todas las preguntas, se genera un informe con:
- El número de respuestas correctas e incorrectas.
- Un indicador visual de tu rendimiento (termómetro).
- Un desglose de las preguntas falladas, organizadas por categoría, con explicaciones claras.
Para ejecutar esta aplicación, necesitas lo siguiente:
- Un navegador web moderno: Chrome, Firefox, Edge, etc.
- Python (opcional): Si deseas ejecutar el servidor localmente.
Primero, clona este repositorio en tu máquina local:
git clone https://github.com/nvarona/aws-developer-practice-test.git
cd aws-developer-practice-testPuedes ejecutar este servidor web local usando Python. Asegúrate de tener instalado Python 3.x y realiza los siguientes pasos:
Si solo necesitas servir archivos estáticos y no te importa el caché:
python -m http.server 8000Este servidor incluye funcionalidades como:
- Desactivación del caché (
Cache-Control) - Endpoint seguro de apagado (
/shutdown) - Información detallada del servidor (
/server-info) - Health check ligero (
/health-check)
Para iniciarlo:
python server.pyUna vez iniciado el servidor, abre tu navegador y visita:
http://localhost:8000
Puedes detener el servidor de dos formas:
-
Mediante terminal: Pulsa
Ctrl+C -
Mediante navegador o herramienta REST:
Visita esta URL o haz una solicitud GET a:
http://localhost:8000/shutdown
Tu servidor ofrece varias rutas útiles para monitoreo y desarrollo:
| Ruta | Descripción |
|---|---|
/ |
Sirve los archivos estáticos desde el directorio actual |
/files |
Explorador mejorado desde el directorio actual |
/simple-files |
Explorador simple desde el directorio actual |
/shutdown |
Apaga el servidor de forma controlada |
/server-info |
Muestra información detallada del servidor (SO, memoria, hora, etc.) |
/health-check |
Devuelve estado básico del servidor en formato JSON (ideal para monitoreo automático) |
| -----------------+--------------------------------------------------------------------------------------- |
Para probar cómo se muestra la información del sistema operativo de otros sistemas operativos, puedes usar parámetros en la URL:
http://localhost:8000/server-info?os=Windows
http://localhost:8000/server-info?os=Linux
http://localhost:8000/server-info?os=Darwin
http://localhost:8000/server-info?os=Android
http://localhost:8000/server-info?os=Unknown
Esto permite ver los distintos iconos y datos asociados a cada tipo de sistema operativo sin cambiar de máquina.
- Python 3.6+
- (Opcional) Para funcionalidades avanzadas como uso de CPU/Memoria:
psutil
pip install psutilSi no deseas usar un servidor local, también puedes abrir el archivo quiz.html o admin.html directamente en tu navegador. Sin embargo, algunos navegadores pueden bloquear la carga del archivo JSON debido a restricciones de seguridad (CORS). Usar un servidor local es la opción recomendada.
El proyecto con las dos aplicaciones está organizado de la siguiente manera:
/aws-developer-practice-test
├── quiz.html # Página principal de la aplicación de preguntas de AWS developer
├── style.css # Archivo con el diseño de la pagina web de preguntas
├── script_v2.js # Lógica de la aplicación (carga de preguntas, validación, etc.)
├── questions.json # Base de datos de tipo JSON de preguntas con explicaciones y categorías
├── server.py # Si neceistas ejecutar en local un servidor web para ofrecer sin cache el Quiz
├── README.md # Este archivo
├── LICENSE # Licencia del proyecto
├── .gitignore # Archivos ignorados por Git
├── quiz-admin.html # Página del Panel de administración de preguntas y repuestas
├── script-admin.js # Lógica del gestor de preguntas
├── categories.json # Configuración de categorías
├── style-admin.css # Archivo con el diseño de la pagina web
├── ... # (resto de archivos existentes)
Si deseas agregar más preguntas o modificar las existentes, tienes dos formas para hacerlo, la primera simplemente edita el archivo questions.json. Asumes el riesgo de poder equivocarte. Si necesita validador su JSONs puede usar esta página -> https://jsonlint.com/
La segunda opción mas profesional es entrar en la pagina de quiz-admin.html, donde tendras todas las facilidades para editar el contenido de las preguntas con un sistema CRUD. Cada pregunta debe seguir este formato:
{
"id": 1,
"question": "¿Qué servicio de AWS se utiliza para ejecutar código sin aprovisionar servidores?",
"options": ["EC2", "Lambda", "S3", "RDS"],
"answer": "Lambda",
"explanation": "AWS Lambda es un servicio sin servidor que permite ejecutar código en respuesta a eventos sin necesidad de aprovisionar o administrar servidores.",
"category": "Sin servidor"
}Además del sistema de práctica de exámenes, ahora incluimos un sistema completo CRUD para gestionar tu banco de preguntas:
✔️ Gestión Completa de Preguntas:
- Crear, Leer, Actualizar y Eliminar preguntas (CRUD)
- Búsqueda y filtrado avanzado por categoría o texto
- Validación automática de formato
✔️ Sistema de Categorías Dinámico:
- Carga desde archivo JSON o localStorage
- Añadir nuevas categorías directamente desde la interfaz
- Autocompletado al escribir categorías
✔️ Importar/Exportar Datos:
- Exportar todo el banco de preguntas a JSON
- Importar preguntas desde archivos JSON externos
- Compatibilidad con múltiples formatos
✔️ Persistencia de Datos:
- Guardado automático en localStorage
- Recuperación de datos al recargar la página
- Sistema de respaldo integrado
✔️ Interfaz Administrativa Mejorada:
- Tabla responsive con paginación
- Formularios con validación en tiempo real
- Notificaciones toast para acciones importantes
/aws-developer-practice-test
├── quiz-admin.html # Panel de administración de preguntas
├── script-admin.js # Lógica del gestor de preguntas
├── categories.json # Configuración de categorías
├── config.json # Configuración general
├── ... # (resto de archivos existentes)
-
Ejecuta el servidor local como antes:
python -m http.server 8000
-
Abre en tu navegador:
http://localhost:8000/quiz-admin.html
Ahora puedes configurar:
- Categorías predeterminadas editando
categories.json - Preguntas iniciales en
questions.json - Estilos personalizados en el CSS
Ejemplo de categories.json:
{
"categories": [
"Compute",
"Storage",
"Database",
"Security",
"Serverless",
"Networking",
"DevOps"
]
}- Añade preguntas mediante el formulario administrativo
- Organiza por categorías usando el sistema dinámico
- Exporta tu banco de preguntas para hacer copias de seguridad
- Importa preguntas de otros colegas o recursos
- Practica con tu propio banco de preguntas
- Sistema de usuarios y autenticación
- Sincronización con base de datos en la nube
- Estadísticas de rendimiento por categoría
- Modo creación de exámenes personalizados
- Integración con AWS API para datos actualizados
- Nuevas preguntas del certificado de DevOps
Ahora aceptamos:
- Nuevas preguntas con explicaciones detalladas
- Mejoras al sistema de categorías
- Traducciones a otros idiomas
- Diseños alternativos de interfaz
🌟 Con este gestor, ahora tienes control total sobre tu proceso de aprendizaje para el examen AWS Certified Developer! 🌟
Nota: Todos los datos se guardan localmente en tu navegador. Para hacer copias de seguridad, exporta regularmente tu banco de preguntas.
¡Las contribuciones son bienvenidas! Si encuentras errores, tienes sugerencias o deseas agregar nuevas preguntas, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y haz commit (
git commit -m "Añadir nueva funcionalidad"). - Sube tus cambios (
git push origin feature/nueva-funcionalidad). - Abre un pull request.
Este proyecto fue desarrollado en colaboración con tu asistente de IA favorito 😊. Juntos creamos una herramienta útil para estudiantes y profesionales que desean prepararse para el examen AWS Certified Developer. ¡Esperamos que te sea de gran ayuda!
Este proyecto está bajo la licencia MIT. Esto significa que puedes usarlo, modificarlo y distribuirlo libremente, siempre que incluyas la licencia original.
Si tienes preguntas o comentarios sobre este proyecto, no dudes en contactarme:
- GitHub: nvarona
- Email: nvarona@hotmail.es
🌟 Gracias por usar AWS Developer Practice Test! 🌟