Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/steciuk/card-game
Bachelor's degree thesis project in Computer Science at Warsaw University of Technology
https://github.com/steciuk/card-game
angular cardgame express jwt mongodb multiplayer-browser-game spa websocket
Last synced: about 1 month ago
JSON representation
Bachelor's degree thesis project in Computer Science at Warsaw University of Technology
- Host: GitHub
- URL: https://github.com/steciuk/card-game
- Owner: steciuk
- Created: 2021-08-25T19:00:02.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-21T21:41:02.000Z (9 months ago)
- Last Synced: 2024-11-10T07:33:53.142Z (3 months ago)
- Topics: angular, cardgame, express, jwt, mongodb, multiplayer-browser-game, spa, websocket
- Language: TypeScript
- Homepage: https://cardgame.steciuk.dev/
- Size: 8.88 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Multiplayer card game in a web browser
This project was created as a bachelor's degree thesis in Computer Science (Computer Information System Engineering) at Warsaw University of Technology.
Deployed application available at [CardGame](https://cardgame.steciuk.dev/).
⚠️ **The backend of this app is currently taking a well-deserved nap, courtesy of Heroku's new pricing. Maybe one day, when I find some time and a free hosting alternative, I will revive it. Until then, the app is not functional.** ⚠️
## Structure of the repository
Frontend is located in the [client](client) directory.
Backend is located in the [server](server) directory.
## How to run
Install [Node.js](https://nodejs.org/en/).
Check respective READMEs:
- [Frontend](client/README.md)
- [Backend](server/README.md)## Thesis abstract
The paper presents the vision, design, and implementation of a website that allows users to play multiplayer card games directly in a web browser. The application features registering and logging in to the website while maintaining modern security standards. User sessions are maintained using JSON Web Token. Users can create new game rooms (public and password-protected) and join existing ones with ease. The website is legible, visually appealing, and designed with a modern approach to reacting to interactions with the user in mind. The frontend part of the project, thanks to the single-page application of the Angular framework, maintains the latest standards of efficiency and responsiveness. Consistency of the game state was ensured using WebSocket technology, whereas data persistence was preserved using the non-relational MongoDB database. The backend server was created utilizing the Express framework and runs in the Node.js runtime environment.
The application's source code uses mainly HTML, CSS, and the TypeScript programming language.
Also discussed in the paper are the technologies used in the implementation of the application, as well as design patterns, which allow the project to be easily scalable and developed in the future.
The finished solution has been publicly deployed to the Internet using services such as Firebase and Heroku.
Keywords: Angular, website, TypeScript, HTML, CSS, SPA, JWT, multiplayer card game, Express, Node.js, WebSocket, MongoDB, Firebase, Heroku.