Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/typicalam/gopoker
Webserver for playing poker
https://github.com/typicalam/gopoker
full-stack go poker react
Last synced: about 2 months ago
JSON representation
Webserver for playing poker
- Host: GitHub
- URL: https://github.com/typicalam/gopoker
- Owner: TypicalAM
- Created: 2023-03-29T19:18:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-03T11:57:55.000Z (about 2 months ago)
- Last Synced: 2024-11-03T12:26:15.618Z (about 2 months ago)
- Topics: full-stack, go, poker, react
- Language: Go
- Homepage: https://poker.piaseczny.dev/
- Size: 15.5 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
👋 Hello! This is an app for playing a game of poker! It was created as an exercise in sniffing network traffic in an unsecured network but it turned out to be a full-fletched application for having some fun!
## ❤️ Getting started
Clone the repository:
```
git clone https://github.com/TypicalAM/gopoker
```Run the backend:
```
cd backend
go run cmd/gopoker/gopoker.go
```and the frontend:
```
cd frontend
npm start
```You can now explore the page at `localhost:3000`
## Project purpose
This project was made for workshops at the Poznan University of Technology to show how easy it is to sniff unsecured network traffic. The page exchanges different sensitive pieces of information with the client (namely the username/password, a profile image and an ID image and credit card info [unsecured branch]). The unsecured branch is used for the purpose of widening the sensitive data range for easier sniffing. On the unsecure branch the game doesn't start until all the users have input their credit cards and they cannot join the queue if they don't have their IDs uploaded. After some time I decided to make it into a full project and remove the unsecure items from the core functionality.
## Technologies
This is my first adventure with front-end so the UI part isn't that impressive, the tech used is the following:
- ReactJS
- TailwindCSS
- TypescriptThe backend is written in go with:
- Websocket communication between the client and the game server
- Sessions (via cookies)
- Routing and authentication
- Database support (gorm)## TODO
Here are the things that I have not finished yet:
- [ ] Adding comments to texas_holdem.go
- [x] Adding user profile image uploads
- [x] Tidying up the websocket logic (hub, client, game, state)
- [x] A docker-compose to actually build the services
- [ ] Adding the unsecure credit card prompt (on the unsecure branch for the PUT security presentation)## 📸 Here is a demo
Here is some basic usage: