From 4742a6010088b5b034a13ed066f316f81d804083 Mon Sep 17 00:00:00 2001 From: Nameless <132124594+thenamelessdev@users.noreply.github.com> Date: Tue, 6 Jan 2026 20:28:05 +0100 Subject: [PATCH 1/8] started coding --- src/routes/projects.ts | 3 +++ src/routes/typeword.ts | 19 ++++++++++++++++ views/projects/typeword/index.ejs | 37 +++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 src/routes/typeword.ts create mode 100644 views/projects/typeword/index.ejs diff --git a/src/routes/projects.ts b/src/routes/projects.ts index fd63bd6..98c7354 100644 --- a/src/routes/projects.ts +++ b/src/routes/projects.ts @@ -4,6 +4,9 @@ const router = express.Router(); import tttRouter from "./ttt.js"; router.use("/ttt", tttRouter); +import typeWordRouter from "./typeword.js"; +router.use("/typeword", typeWordRouter); + router.get("/", (req: Request, res: Response) => { res.render("projects"); }); diff --git a/src/routes/typeword.ts b/src/routes/typeword.ts new file mode 100644 index 0000000..d4ef806 --- /dev/null +++ b/src/routes/typeword.ts @@ -0,0 +1,19 @@ +import express, { Request, Response } from "express"; +const router = express.Router(); + +router.get("/", (req: Request, res: Response) => { + res.render("projects/typeword/index") +}); + +router.post("/create", (req: Request, res: Response) => { + const { username, room } = req.body; + + if(username && room){ + + } + else{ + res.status(400).render("error", { error: "missing username or room name" }); + } +}); + +export default router; \ No newline at end of file diff --git a/views/projects/typeword/index.ejs b/views/projects/typeword/index.ejs new file mode 100644 index 0000000..0bb2181 --- /dev/null +++ b/views/projects/typeword/index.ejs @@ -0,0 +1,37 @@ + + +
+ + +A fun game to play with friends
+How to play: after both players join the room the game will give you a world. You have to type the word as fast as you can and whoewer types it faster wins.
+Host: <%= host %>
+You: <%= user %>
+Player: <%= player %>
+ + + + + \ No newline at end of file From 994cfb85dbba4b65c9161d2fb5ebb56c3ffd3964 Mon Sep 17 00:00:00 2001 From: Nameless <132124594+thenamelessdev@users.noreply.github.com> Date: Wed, 7 Jan 2026 19:42:12 +0100 Subject: [PATCH 4/8] added player join --- src/routes/typeword.ts | 24 ++++++++++++++++++++++++ views/projects/typeword/game.ejs | 12 ++++++++++-- views/projects/typeword/index.ejs | 24 ++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/src/routes/typeword.ts b/src/routes/typeword.ts index 2c87117..a53ebbe 100644 --- a/src/routes/typeword.ts +++ b/src/routes/typeword.ts @@ -1,5 +1,6 @@ import express, { Request, Response } from "express"; import { verify } from "../functions.js"; +import { io } from "../index.js"; const router = express.Router(); interface typeWordRoom { @@ -40,4 +41,27 @@ router.post("/create", async (req: Request, res: Response) => { } }); +router.post("/join", async (req: Request, res: Response) => { + const { username, room } = req.body; + + if(username && room){ + if(await verify(req)){ + if(typeWordRooms[room]){ + typeWordRooms[room].player = username; + io.emit("typewordjoin", {"room": room, "username": username}); + res.render("projects/typeword/game", { room: room, user: username, host: typeWordRooms[room].host, player: username }); + } + else{ + res.status(404).render("error", { error: "Room doesn't exists" }) + } + } + else{ + res.render("error", { error: "Cloudflare turnstile failed" }); + } + } + else{ + res.status(400).render("error", { error: "missing username or room name" }); + } +}); + export default router; \ No newline at end of file diff --git a/views/projects/typeword/game.ejs b/views/projects/typeword/game.ejs index dfd5340..739f3cb 100644 --- a/views/projects/typeword/game.ejs +++ b/views/projects/typeword/game.ejs @@ -12,12 +12,20 @@Host: <%= host %>
You: <%= user %>
-Player: <%= player %>
+Player: <%= player %>
- +