Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cjquines/just-one
web app for just one, the board game
https://github.com/cjquines/just-one
Last synced: 3 months ago
JSON representation
web app for just one, the board game
- Host: GitHub
- URL: https://github.com/cjquines/just-one
- Owner: cjquines
- License: mit
- Created: 2020-04-05T03:35:20.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-06T23:38:04.000Z (5 months ago)
- Last Synced: 2024-10-14T21:54:33.550Z (3 months ago)
- Language: JavaScript
- Homepage: https://just1.herokuapp.com/
- Size: 2.73 MB
- Stars: 19
- Watchers: 1
- Forks: 10
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# just one!
a web app for playing [just one](https://boardgamegeek.com/boardgame/254640/just-one), a cooperative party word game. hosted on https://just1.herokuapp.com/.
![](sample.png)
in each round, the guesser is trying to guess a word. everyone not guessing writes a single-word clue. then everyone compares clues, and hides clues that are the same. they show the clues to the guesser, who then tries to guess the word.
you can join room example by going directly to https://just1.herokuapp.com/room/example. if you don’t type a name when prompted, you spectate the room.
## implementation details
inspired by [betaveros/castlefall](https://github.com/betaveros/castlefall), the app relies on the players to trust each other. so anyone can kick anyone else, including themselves. joining a room with the same name as an existing player kicks and replaces them, so you can reconnect as yourself if you disconnect.
server uses express and socket.io; frontend uses react.
### build
run `npm install`. development runs on two servers, one for the socket, and one for the client. running `npm start` starts the socket server, and running `npm run hotloader` starts the client server.
you will need wordlists, see [wordlist.js](server/wordlist.js). it imports a bunch of `json` files, which should contain a single object with the key `words`, with its value as an array of a list of strings to be words.
### todo
- sanitize names, clues, and guesses?
- "add clues" feature after a round ends?
- add a timer? or like, a timer that counts up, resetting every phase?