Word Master är ett realtids multiplayer ordspel där spelare tävlar om att hitta giltiga ord inom olika kategorier med hjälp av ett gemensamt set bokstäver.
- Multiplayer lobby-system
- Slumpmässig bokstavsgenerering
- Ordvalidering (ordbok, kategori och bokstavsregler)
- Poängsystem med bonusar
- In-game shop (bokstäver och power-ups)
- Karaktärer med unika förmågor
- Realtidsspel med SignalR
- En spelare skapar en ny lobby
- Systemet genererar ett lobby-ID och en inbjudningskod
Varje spelare väljer en av fyra karaktärer:
- Ugglan – +3 bonuspoäng för ord längre än 5 bokstäver
- Leopard – +3 bonuspoäng för ord skickade inom 60 sekunder
- Musen – +1 bonuspoäng för ord kortare än 4 bokstäver
- Björnen – Immun mot Freeze-effekten
Den andra spelaren ansluter via:
- Inbjudningslänk
- Lobbykod
Båda spelare väljer karaktär.
- Hosten startar spelet när båda spelare är redo
- Spelare får ett gemensamt set slumpmässiga bokstäver
Målet är att:
- Hitta giltiga ord
- Matcha kategorier
- Skicka in så många korrekta ord som möjligt
Spelare kan använda poäng i shoppen:
-
Köpa vokala bokstäver (inklusive Å, Ä, Ö)
-
Frysa motståndaren temporärt
-
Jokerkort:
- Ger en slumpmässig bokstav
- Om det används i ett ord dubbleras poängen
Spelare kan:
- Använda power-ups mot motståndaren
- Få fördelar via shop-items
- Använda jokerkort strategiskt
Spelet avslutas när:
- En spelare klarar alla kategorier, eller
- Rundans tid tar slut
- Grundpoäng
- Karaktärsbonusar
- Shop-effekter
Detaljer:
- Unikt ord: +10
- Delat ord: +5
- Långt ord: +5
- Alla kategorier klara: +50
- React
- TypeScript
- Vite
- .NET Minimal API
- SignalR
- Enhetstester
- Integrationstester
- API-tester
- E2E-tester
- K6 prestandatester
- Mutation testing
- Load testing
- GitHub Actions
- Render deployment
- Statisk kodanalys
- Beroendeskanning
- API-input validering
- Felhanteringsstrategier
Frontend (React + TypeScript)
|
| HTTP (REST API)
v
Backend (.NET Minimal API)
|
| SignalR (realtid)
v
In-memory lagring
WordMaster/
│
├── backend/ # .NET 8 Minimal API
│ ├── Data/
│ │ ├── categories.json # Kategorier + ord
│ │ ├── SAOL13_*.txt # Svenska ordlistor
│ ├── Services/
│ │ ├── GameEngine.cs # Spelmotorn (huvudlogik)
│ │ ├── WordValidator.cs # SAOL‑validering
│ │ ├── WordDictionaryLoader.cs
│ ├── Program.cs # API‑endpoints
│
├── frontend/ # React + Vite + TypeScript
│ ├── pages/
│ │ ├── GamePage.tsx # Huvudsidan
│ ├── css/
│ ├── tests/ # Playwright‑tester
│
└── README.md
- Controllers
- Services
- Models
- SignalR Hub (/lobbyHub)
- Frontend: http://localhost:5173
- Backend: http://localhost:5024
- Enhetstester (logik)
- Integrationstester (flöden)
- API-tester (REST endpoints)
- Lobby skapande och anslutning
- Ordvalidering
- Poängberäkning
- Shop-transaktioner
- Installera beroenden
- Bygga applikation
- Köra tester (unit, API, UI)
- Säkerhetskontroller
- Deploy till Render
Säkerhet är integrerad i pipelinen:
- Statisk kodanalys
- Skanning av sårbara beroenden
- Validering av API-input
- Felhanteringsstrategier
git clone https://github.com/Nehaasati/WordMaste
cd wordmastercd frontend
npm install
npm run devcd backend
dotnet build
dotnet runcd Testingnpm run test:apinpm run test:uinpm run test:unit- PlayerJoined – En spelare ansluter till lobbyn
- PlayerReady – Spelaren markerar redo
- GameStarted – Spelet startar
- InkReceived – Spelaren träffas av ink
- FreezeReceived – Spelaren fryses
Push / Pull Request
->
Installera beroenden
->
Bygg applikation
->
Kör tester (unit, API, UI)
->
Säkerhetskontroller
->
Deploy till Render
GitHub: https://github.com/Nehaasati LinkedIn: https://www.linkedin.com/in/neha-asati-28aab959/
GitHub: https://github.com/FatimaAlMurtadha LinkedIn: https://www.linkedin.com/in/fatima-al-murtadha-8a19b9294/
GitHub: https://github.com/OskarUNLEASHED LinkedIn: https://www.linkedin.com/in/oskar-gyllenör-40778a291
GitHub: https://github.com/alireza8850 LinkedIn: https://www.linkedin.com/in/ali-reza-merzai-235960190/
GitHub: https://github.com/arbazshah52 LinkedIn: https://linkedin.com/in/syed-arbaz-hussain-shah-788921100