[#118] bugfix #36
@@ -0,0 +1,18 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-19T09:19:08.808Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-19T09:19:11.638Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-19T09:19:11.675Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-19T09:19:11.675Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-19T09:19:11.744Z | [STARTUP] | Created Minio bucket: serpentrace-logs
|
||||||
|
2025-09-19T09:19:12.131Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-19T09:19:12.146Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-19T09:19:12.167Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-19T09:19:12.205Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-19T10:19:12.197Z | [DATABASE] | Inactive chats retrieved | Meta:{"query":"findInactiveChats(30min)","executionTime":181,"inactivityMinutes":30,"count":0,"cutoffDate":"2025-09-19T09:49:12.016Z"}
|
||||||
|
2025-09-19T10:19:12.211Z | [DATABASE] | Chat archive cleanup completed | Meta:{"query":"cleanup(28 days)","executionTime":9,"olderThanDays":28,"deleted":0,"cutoffDate":"2025-08-22T10:19:12.201Z"}
|
||||||
|
2025-09-19T10:19:12.229Z | [DATABASE] | Chats page retrieved successfully (including deleted) | Meta:{"executionTime":16,"from":0,"to":1000,"returned":0,"totalCount":0}
|
||||||
|
2025-09-19T10:19:12.233Z | [REQUEST] | Old message cleanup completed | Meta:{"cutoffDate":"2025-08-22T10:19:12.200Z","cleanupWeeks":4,"deletedArchives":0,"deletedChats":0,"note":"Cleanup completed using both ChatRepository and ChatArchiveRepository"}
|
||||||
|
2025-09-19T10:48:24.426Z | [STARTUP] | Received SIGTERM. Shutting down gracefully...
|
||||||
|
2025-09-19T10:48:24.440Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-19T10:48:24.457Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-21T13:24:36.198Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-21T13:24:38.668Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-21T13:24:38.689Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-21T13:24:38.689Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-21T13:24:39.052Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-21T13:24:39.057Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-21T13:24:39.065Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-21T13:24:39.080Z | [STARTUP] | Redis client connected successfully
|
||||||
|
2025-09-21T14:18:22.748Z | [ERROR] | Redis connection error | Meta:{"name":"Error","message":"Socket closed unexpectedly","stack":"Error: Socket closed unexpectedly\n at Socket.<anonymous> (/app/node_modules/@redis/client/lib/client/socket.ts:272:29)\n at Object.onceWrapper (node:events:639:26)\n at Socket.emit (node:events:524:28)\n at Socket.emit (node:domain:489:12)\n at TCP.<anonymous> (node:net:343:12)"}
|
||||||
|
2025-09-21T14:18:22.789Z | [STARTUP] | Received SIGTERM. Shutting down gracefully...
|
||||||
|
2025-09-21T14:18:22.809Z | [STARTUP] | HTTP server closed
|
||||||
|
2025-09-21T14:18:22.838Z | [CONNECTION] | Database connection closed | Meta:{"connectionType":"postgresql","status":"success"}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SerpentRace Backend Logs
|
||||||
|
# Started: 2025-09-21T14:22:54.794Z
|
||||||
|
# Max entries per file: 10000
|
||||||
|
|
||||||
|
2025-09-21T14:23:13.553Z | [STARTUP] | SerpentRace Backend starting up | Meta:{"environment":"development","port":"3000","nodeVersion":"v20.19.5","chatInactivityTimeout":"30"}
|
||||||
|
2025-09-21T14:23:13.689Z | [STARTUP] | Server started successfully | Meta:{"port":"3000","environment":"development","timestamp":"2025-09-21T14:23:13.689Z","endpoints":{"health":"/health","swagger":"/api-docs","users":"/api/users","organizations":"/api/organizations","decks":"/api/decks","chats":"/api/chats"},"websocket":{"enabled":true,"chatInactivityTimeout":"30 minutes"}}
|
||||||
|
2025-09-21T14:23:15.180Z | [CONNECTION] | Database connection established | Meta:{"connectionType":"postgresql","status":"success","type":"postgres","host":"postgres","database":"serpentrace"}
|
||||||
|
2025-09-21T14:23:15.196Z | [REQUEST] | WebSocket service initialized | Meta:{"chatTimeoutMinutes":30}
|
||||||
|
2025-09-21T14:23:15.224Z | [STARTUP] | WebSocket service initialized | Meta:{"chatInactivityTimeout":"30"}
|
||||||
|
2025-09-21T14:23:15.275Z | [STARTUP] | Redis client connected successfully
|
||||||
@@ -14,6 +14,7 @@ import CompanyHub from "./pages/Companies/Companies"
|
|||||||
import About from "./pages/About/About"
|
import About from "./pages/About/About"
|
||||||
import ScrollToTop from "./components/ScrollToTop"
|
import ScrollToTop from "./components/ScrollToTop"
|
||||||
import GameScreen from "./pages/Game/GameScreen"
|
import GameScreen from "./pages/Game/GameScreen"
|
||||||
|
import Reports from "./pages/Report/Reports"
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [isMobile, setIsMobile] = useState(false)
|
const [isMobile, setIsMobile] = useState(false)
|
||||||
@@ -58,6 +59,7 @@ function App() {
|
|||||||
<Route path="/deck-creator/:deckId" element={<DeckCreator />} />
|
<Route path="/deck-creator/:deckId" element={<DeckCreator />} />
|
||||||
<Route path="/game" element={<GameScreen />} />
|
<Route path="/game" element={<GameScreen />} />
|
||||||
<Route path="/companies" element={<CompanyHub />} />
|
<Route path="/companies" element={<CompanyHub />} />
|
||||||
|
<Route path="/report" element={<Reports />} />
|
||||||
|
|
||||||
{/* Add more routes as needed */}
|
{/* Add more routes as needed */}
|
||||||
</Routes>
|
</Routes>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import React, { useState } from "react"
|
import React, { useState } from "react"
|
||||||
import Logo from "../../assets/pictures/Logo"
|
import Logo from "../../assets/pictures/Logo"
|
||||||
import About from "../../pages/About/About"
|
import About from "../../pages/About/About"
|
||||||
|
import Home from "../../pages/Landing/Home"
|
||||||
|
|
||||||
const navLinkClass = "px-3 py-2 rounded-lg text-white transition-all duration-200 hover:bg-white/10"
|
const navLinkClass = "px-3 py-2 rounded-lg text-white transition-all duration-200 hover:bg-white/10"
|
||||||
|
|
||||||
@@ -14,25 +15,25 @@ const Navbar = () => {
|
|||||||
<div className="flex justify-between h-16 items-center">
|
<div className="flex justify-between h-16 items-center">
|
||||||
{/* Logo */}
|
{/* Logo */}
|
||||||
<div className="flex-shrink-0 flex items-center gap-2">
|
<div className="flex-shrink-0 flex items-center gap-2">
|
||||||
<div className="flex items-center mt-1 h-9">
|
<a href="/" className="flex items-center mt-1 h-9">
|
||||||
<Logo size={36} />
|
<Logo size={36} />
|
||||||
</div>
|
</a>
|
||||||
<span className="flex items-center h-9 text-white font-bold text-2xl tracking-tight">
|
<a href="/" className="flex items-center h-9 text-white font-bold text-2xl tracking-tight">
|
||||||
SerpentRace
|
SerpentRace
|
||||||
</span>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{/* Desktop Menu */}
|
{/* Desktop Menu */}
|
||||||
<div className="hidden md:flex space-x-8">
|
<div className="hidden md:flex space-x-8">
|
||||||
<a href="#" className={navLinkClass}>
|
<a href="/home" className={navLinkClass}>
|
||||||
Home
|
Home
|
||||||
</a>
|
</a>
|
||||||
<a href="#" className={navLinkClass}>
|
<a href="/report" className={navLinkClass}>
|
||||||
Leaderboard
|
Stats
|
||||||
</a>
|
</a>
|
||||||
<a href="/about" className={navLinkClass}>
|
<a href="/about" className={navLinkClass}>
|
||||||
About
|
About
|
||||||
</a>
|
</a>
|
||||||
<a href="#" className={navLinkClass}>
|
<a href="/companies" className={navLinkClass}>
|
||||||
Contact
|
Contact
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ import React, { useEffect, useRef, useState } from "react"
|
|||||||
import Navbar from "../../components/Navbar/Navbar"
|
import Navbar from "../../components/Navbar/Navbar"
|
||||||
import Footer from "../../components/Footer/Footer"
|
import Footer from "../../components/Footer/Footer"
|
||||||
import Background from "../../assets/backgrounds/Background.jsx"
|
import Background from "../../assets/backgrounds/Background.jsx"
|
||||||
import Walke from "../../assets/pictures/walke.jpg"
|
import Walke from "../../assets/pictures/walke.JPG"
|
||||||
import Busi from "../../assets/pictures/busi.jpg"
|
import Busi from "../../assets/pictures/busi.JPG"
|
||||||
import Gege from "../../assets/pictures/gege.jpg"
|
import Gege from "../../assets/pictures/gege.JPG"
|
||||||
import Zsola from "../../assets/pictures/zsola.jpg"
|
import Zsola from "../../assets/pictures/zsola.JPG"
|
||||||
import Donat from "../../assets/pictures/donat.jpg"
|
import Donat from "../../assets/pictures/donat.JPG"
|
||||||
import Turo from "../../assets/pictures/turo.jpg"
|
import Turo from "../../assets/pictures/turo.JPG"
|
||||||
import Piskor from "../../assets/pictures/piskor.jpg"
|
import Piskor from "../../assets/pictures/piskor.JPG"
|
||||||
|
|
||||||
const About = () => {
|
const About = () => {
|
||||||
const [visible, setVisible] = useState(false)
|
const [visible, setVisible] = useState(false)
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
// src/pages/Reports/Reports.jsx
|
||||||
|
import { useState } from "react"
|
||||||
|
import Navbar from "../../components/Navbar/Navbar.jsx"
|
||||||
|
import Footer from "../../components/Footer/Footer.jsx"
|
||||||
|
import Background from "../../assets/backgrounds/Background.jsx"
|
||||||
|
|
||||||
|
export default function Reports() {
|
||||||
|
return (
|
||||||
|
<div className="w-full min-h-screen flex flex-col relative overflow-x-hidden">
|
||||||
|
{/* Háttér */}
|
||||||
|
<div className="fixed inset-0 -z-10 pointer-events-none">
|
||||||
|
<Background />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Navbar */}
|
||||||
|
<div className="fixed top-0 left-0 right-0 z-30">
|
||||||
|
<Navbar />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Fő tartalom */}
|
||||||
|
<main className="flex-1 flex flex-col items-center justify-start py-15 min-h-0 mt-[64px] px-4">
|
||||||
|
<div className="bg-gradient-to-br from-[#2a3b34] to-[#3e584f] rounded-2xl shadow-xl p-8 w-full max-w-5xl">
|
||||||
|
{/* Fejléc */}
|
||||||
|
<div className="text-center mb-8">
|
||||||
|
<h2 className="text-3xl font-bold text-white">Játék Riportok</h2>
|
||||||
|
<p className="text-gray-300 mt-2">
|
||||||
|
Áttekintés a legutóbbi játékokról és statisztikákról
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Statisztikai kártyák */}
|
||||||
|
<div className="grid grid-cols-1 sm:grid-cols-3 gap-6 mb-8">
|
||||||
|
<div className="bg-[#1e2a25] rounded-xl p-6 text-center shadow-inner">
|
||||||
|
<h3 className="text-3xl font-bold text-[#3dcf85]">25</h3>
|
||||||
|
<p className="text-gray-300 mt-2">Lejátszott játék</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-[#1e2a25] rounded-xl p-6 text-center shadow-inner">
|
||||||
|
<h3 className="text-3xl font-bold text-[#3dcf85]">78%</h3>
|
||||||
|
<p className="text-gray-300 mt-2">Átlagos nyerési arány</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-[#1e2a25] rounded-xl p-6 text-center shadow-inner">
|
||||||
|
<h3 className="text-3xl font-bold text-[#3dcf85]">120</h3>
|
||||||
|
<p className="text-gray-300 mt-2">Legmagasabb pontszám</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Grafikon helyőrző */}
|
||||||
|
<div className="h-72 flex items-center justify-center border-2 border-dashed border-[#3dcf85] rounded-xl bg-[#121816] text-[#3dcf85]">
|
||||||
|
valami grafikon lehet itt
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
{/* Footer */}
|
||||||
|
<Footer />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user