diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index e5fbe175..ba124555 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -18,6 +18,8 @@ app.use(express.json()); const metricsMiddleware = promBundle({includeMethod: true}); app.use(metricsMiddleware); +app.set("json spaces", 40); + // Health check endpoint app.get('/health', (req, res) => { res.json({ status: 'OK' }); diff --git a/webapp/src/App.js b/webapp/src/App.js index b4ae0b0f..1eb7038f 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -6,7 +6,7 @@ import Bateria from './pages/Bateria/Bateria.js'; import WrongRoute from './pages/WrongRoute/WrongRoute.js'; import Stats from './pages/Stats/Stats.js'; import './App.css'; -import {BrowserRouter, Routes, Route, Navigate} from "react-router-dom"; +import {BrowserRouter, Routes, Route} from "react-router-dom"; import { ProtectedRoute } from './routers/ProtectedRoute.js'; function App() { diff --git a/webapp/src/pages/Clasico/Clasico.js b/webapp/src/pages/Clasico/Clasico.js index 290d6d78..6bd7fb15 100644 --- a/webapp/src/pages/Clasico/Clasico.js +++ b/webapp/src/pages/Clasico/Clasico.js @@ -30,7 +30,8 @@ const JuegoPreguntas = () => { .then((response) => response.json()) .then((data) => { setPreguntas(data); - //setIsLoading(false); + setPreguntaActual(data[0]); + setIsLoading(false); }) .catch((error) => { console.error('Error al obtener las preguntas:', error); @@ -38,13 +39,6 @@ const JuegoPreguntas = () => { }); }, []); - useEffect(() => { - if (preguntas && preguntas.length > 0) { - setPreguntaActual(preguntas[0]); - setIsLoading(false); - } - }, [preguntas]); - useEffect(() => { if (tiempoRestante === 0) { setPreguntaTerminada(true); @@ -96,12 +90,11 @@ const JuegoPreguntas = () => { setTiempoTotal(tiempoTotal+10-tiempoRestante); - setRespuestaSeleccionada(null); setTiempoRestante(10); if (indicePregunta + 1 < preguntas.length) { setIndicePregunta(indicePregunta + 1); - setPreguntaActual(preguntas[indicePregunta]); + setPreguntaActual(preguntas[indicePregunta + 1]); } else { try { diff --git a/webapp/src/pages/Stats/Stats.css b/webapp/src/pages/Stats/Stats.css index 355af678..a2d1506e 100644 --- a/webapp/src/pages/Stats/Stats.css +++ b/webapp/src/pages/Stats/Stats.css @@ -24,10 +24,4 @@ input, button, a{ color: #6b456c; font-family: "Times New Roman", serif; -} - -body { - background-color: #ffffe5; - font-family: "Times New Roman", serif; - } \ No newline at end of file diff --git a/webapp/src/pages/Stats/Stats.js b/webapp/src/pages/Stats/Stats.js index 7ee9da5b..f9e5117c 100644 --- a/webapp/src/pages/Stats/Stats.js +++ b/webapp/src/pages/Stats/Stats.js @@ -1,9 +1,8 @@ -import React, { useState, useEffect } from 'react'; -import axios from 'axios'; -import Nav from '../../components/Nav/Nav.js'; -import Footer from '../../components/Footer/Footer.js'; -import './Stats.css'; - +import React, { useState, useEffect } from "react"; +import axios from "axios"; +import Nav from "../../components/Nav/Nav.js"; +import Footer from "../../components/Footer/Footer.js"; +import "./Stats.css"; const Stats = () => { const [username, setUsername] = useState(localStorage.username); @@ -11,7 +10,6 @@ const Stats = () => { const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); - const fetchStats = () => { setIsLoading(true); fetch(`http://localhost:8001/getstats?user=${username}`) @@ -21,97 +19,134 @@ const Stats = () => { setIsLoading(false); }) .catch((error) => { - console.error('Error al obtener las preguntas:', error); - setError(error.message || 'Ha ocurrido un error al obtener las estadísticas'); + console.error("Error al obtener las preguntas:", error); + setError( + error.message || "Ha ocurrido un error al obtener las estadísticas" + ); setIsLoading(false); }); }; useEffect(() => { - fetch(`http://localhost:8001/getstats?user=${username}`) - .then((response) => response.json()) - .then((data) => { - setStats(data); - setIsLoading(false); - }) - .catch((error) => { - console.error('Error al obtener las preguntas:', error); - setIsLoading(false); - }); + const delayDebounceFn = setTimeout(() => { + fetch(`http://localhost:8001/getstats?user=${username}`) + .then((response) => response.json()) + .then((data) => { + setStats(data); + setIsLoading(false); + }) + .catch((error) => { + console.error("Error al obtener las preguntas:", error); + setIsLoading(false); + }); + }, 2000); + return () => clearTimeout(delayDebounceFn); }, [username]); const handleUsernameChange = (event) => { setUsername(event.target.value); }; - - const handleSearch = () => { - if (username.trim() !== '') { - fetchStats(); - } - }; if (isLoading) { - return
Se está consultando su búsqueda, espere unos instantes.
-Se está consultando su búsqueda, espere unos instantes.
+Por favor compruebe si los valores del formulario son correctos e inténtelo de nuevo
-+ Por favor compruebe si los valores del formulario son correctos e + inténtelo de nuevo +
+ + + > + ); } return ( <> - -El usuario no ha jugado ninguna partida.
Usuario: {stats.username}
-Juegos Jugados: {stats.nGamesPlayed}-
Promedio de Puntos: {stats.avgPoints}-
Puntos Totales: {stats.totalPoints}-
Preguntas Correctas Totales: {stats.totalCorrectQuestions}-
Preguntas Incorrectas Totales: {stats.totalIncorrectQuestions}-
Ratio Correctas/Incorrectas: {stats.ratioCorrectToIncorrect}-
Tiempo por pregunta (s): {stats.avgTime}-
+ Usuario: + {stats.username} +
++ {" "} + Juegos Jugados: + {stats.nGamesPlayed} ++
+ {" "} + Promedio de Puntos: + {stats.avgPoints} ++
+ {" "} + Puntos Totales: + {stats.totalPoints} ++
+ {" "} + Preguntas Correctas Totales: + {stats.totalCorrectQuestions} ++
+ {" "} + Preguntas Incorrectas Totales: + {stats.totalIncorrectQuestions} ++
+ {" "} + Ratio Correctas/Incorrectas: + {stats.ratioCorrectToIncorrect} ++
+ {" "} + Tiempo por pregunta (s): + {stats.avgTime} ++