Note: This is part of my 20alse backup series, which backs up websites I have on my personal school website after it shuts down because I am graduating.
Note: Translating this page to English is a work in progress!
Detta är git-repositoryt för mitt slutprojekt inom kursen Webbutveckling 1. Det är ett projekt tillsammans med Gränsnittsdesign.
Några committs i projektet har gjorts av användaren "William04A". Det är mitt gamla GitHub-konto. Det är alltså jag, fast på min hemmadator ;)
Projektet implementerar ett fungerande yatzyspel som både går att köras lokalt eller online via online multiplayer med två eller flera spelare som spelar.
Frontendet, eller den delen som användaren ser av detta projekt utgörs av en hemsida skriven i React. Stöd för att navigera till undersidor via URL:en tillhandahålls av React Router. För att applicera stilar på hemsidan används Tailwind CSS.
Backendet använder teknologin WebSockets som är bra för att kommunicera i realtid mellan klienter bland annat i webbläsare. Biblioteket Socket.IO används för att skapa denna uppkoppling. Socket.IO innehåller bland annat automatisk återanslutning, identifiering och bakåtkompatbilitet med riktigt gamla webbläsare. Backendet kommunicerar med en databas via ORM (Object Relationship Manager)-biblioteket Sequelize. Slutligen körs backendet som en Docker-container som hostas på hemsidan fly.io
I mappen shared
(länk) finns beräkningskoden för yatzyt. Då beräkningar både ska göras på den lokala yatzyspelsfunktionaliteten (som kör i webbläsaren) och onlinespelet (som körs på en server)
så har jag förenklat det hela för mig genom att använda exakt samma kod för båda ställena.