manuel-freire/AAGame

Triviablast is a singleplayer trivia game that you can test your knowledge. Test yourself, compete with others!

★ 0Forks 0JavaScriptGitHub ↗Compare

README

TriviaBlast

Juego de preguntas y respuestas en línea para jugar de forma individual.

Propuesta

Descripción

TriviaBlast es un juego interactivo que permite a los usuarios practicar y ganar puntos en partidas individuales, o competir en un tablero clásico con categorías por colores en salas privadas. Las preguntas se obtienen de la Open Trivia Database (OpenTDB), ofreciendo una amplia variedad de categorías y niveles de dificultad.

Roles y permisos

Rol Permisos
Jugador Gestionar cuenta, jugar partidas individuales, ver leaderboard.
Administrador Ocultar, editar, borrar o restaurar visibilidad de usuarios.

Partida individual

  • Configuración personalizada: número de preguntas, categoría y dificultad.
  • Límite de tiempo por pregunta.
  • Puntuación basada en dificultad y rapidez al responder.

Sistema de puntos y leaderboard

  • Los puntos se obtienen según el tipo de partida y se reflejan en el leaderboard (solo visible para usuarios registrados).
  • Los jugadores aparecen ordenados de mayor a menor puntuación.
  • Los administradores pueden ocultar jugadores del leaderboard.

Flujo de juego resumido

  1. Registro o inicio de sesión.
  2. Selección de modalidad de juego.
  3. Desarrollo de la partida.
  4. Cálculo de puntos y actualización del leaderboard.

Estructura de la BD

Database Schema

Estado de la implementación

Terminada

  • Sign in or up: La implementación del registro de una cuenta o del inicio de sesión está correctamente implementada, se manejan casos de error (como cuando se insertan dos contraseñas distintas al crear una cuenta). Al crear cuenta se inicia la sesión automáticamente.
  • Inicio: Implementado correctamente. Dispone de un botón para unirse a una partida multijugador mediante un código cuando no se ha iniciado sesión. Una vez iniciada la sesión, se pueden ver también los botones para crear una partida multijugador o empezar una partida de un solo jugador. Actualmente solo este último hace algo.
  • Partida individual: Dispone de dos vistas. La primera, referida a la creación de la partida con sus ajustes, está completamente implementada. Los tipos de preguntas se corresponden a los de la API usada. La partida de un solo jugador en sí también se encuentra completamente implementada. Se muestran las preguntas y posibles respuestas. Al fallar una pregunta se muestra cual hubiese sido la correcta. Cabe mencionar que la validación de las preguntas se realiza completamente en el backend, por lo que se imposibilita el hacer trampas (para comprobar que el frontend nunca recibe las respuestas correctas, inicie una partida individual, abra la consola del navegador e introduzca window.questions). Hay un botón para abandonar la partida, y se muestra en qué número de pregunta y cantidad de puntos se han acumulado por el momento. Al acertar una pregunta el usuario recibe 10 puntos.
  • Perfil de usuario: Muestra la foto de perfil, nombre, y cantidad de puntos del usuario. También le permite cerrar la sesión o borrar completamente su cuenta. El botón edit, le permite cambiar su foto de perfil, su nombre y correo, o su contraseña (acción que se deberá validar con la contraseña anterior). En el futuro, cuando se disponga de la funcionalidad de las partidas multijugador, podremos mostrarlas en el perfil del usuario (como retrospectiva).
  • Scoreboard: Muestra los usuarios registrados junto con sus puntos. Si un administrador decide esconder a un usuario, su estatus de visibilidad se actualiza en la base de datos, y pasa a no aparecer en la tabla para usuarios normales.

En progreso

  • Diseño visual: Actualmente el diseño visual de la aplicación sigue en progreso. Aunque la interfaz ya es funcional, continuamos trabajando en mejorar la estética, la organización de los elementos y la experiencia general del usuario para futuras versiones.

  • Barra de navegación: Actualmente responde a una estructura deseada para el debugging de la aplicación y la visualización de las vistas que siguen siendo estáticas. Sin embargo, en el futuro tendrá una estructura más común para una aplicación online práctica (casa, perfil/login), mientras que las vistas referidas al juego serán accesibles desde los botones correspondientes en la "casa".

Otras cosas

  • Actualización de pantallas mediante AJAX (en scoreboard)
  • Actualmente, la aplicación no dispone de pruebas, aunque se realizarán.

Lista de usuarios en la BD

USERNAME : infinite.alex5 PASSWORD : 1234

USERNAME : ana PASSWORD : 234

USERNAME : juan PASSWORD : 123

USERNAME : maria1 PASSWORD : 12

(admin) USERNAME : a
PASSWORD : aa (admin) USERNAME : b
PASSWORD : bb

Contributors

inestrivinoinfinite-alexEva02091unaelumennerea001manuel-freire

Issues