Friendly Feud 2.0!
New year, new large change!
Special Thanks to @karlromets for providing the bulk of new features for this release! He truly is a talented developer and I am very thankful for his time, help and knowledge.
This is the 2.0 release and with it are some big and exciting changes:
Changing the Name
- This project's name is now "Friendly Feud" to give it a better chance to avoid possible legal liability for the future of this project.
- The main website is still at https://famf.app
Changing the backend to golang
The backend of this project is now written in golang. If you want to fork this project while it was only JavaScript you can fork off the 1.5.4 release.
Switching to golang gives a number of benefits:
-
Websocket handling is now in goroutines allowing this app to scale well.
-
Strongly typed language helps the overall organization of the data for Friendly Feud. While converting to golang I was able to fix my past structural mistakes in JavaScript when writing in golang.
-
Using golang interfaces I was able to create a very easy way to add more storage connections that can be easily plugged in.
New Features
- @joshzcold Support for choosing storage backend for the game. Picking between sqlite or memory storage using the
GAME_STORE
environment variable
famf.app will be deployed with the sqlite storage backend, which will allow changes to Friendly Feud without anyone losing progress on their current active game!
-
@joshzcold e2e tests using playwright. This will make changes to the website much easier and stable as we make changes.
-
@karlromets #101 Implement player board hiding.
This will hide the game board or final game board from the player if checked. Allows you to hide the game screen from a remote player without kicking from the game.
-
@karlromets #100 Implement buzzer popup. This will show on the game screen which user buzzed first and play a sound when the buzz comes in. This means the admin no longer needs to scroll down to the buzzer list to determine who buzzed first.
-
@karlromets #99 Implement a join url on the title page. There is a new environment variable for nextjs
NEXT_PUBLIC_TITLE_URL
that will show the game's joinable url for the players.
-
@karlromets #98 Support for translation in error messages. Error messages now have error codes that then get translated if they are available in the translation files.
What's Changed
- Fix cached logo by @karlromets in #95
- Fix final round timer state by @karlromets in #94
- Fix error translation by @karlromets in #98
- Fix various console errors by @karlromets in #96
- bug(csv) fix for csv "No Header" uncheck uses header by @joshzcold in #103
- Famf 2.0 large change. by @joshzcold in #108
- Implement environment variables by @karlromets in #99
- feat(dev): support for windows wsl in development by @joshzcold in #111
- Implement player board hiding by @karlromets in #101
- fix(session): fix for getting back in via session token by @joshzcold in #113
- chore(e2e): create test for hiding player's screens by @joshzcold in #116
- fix(session): player's team is kept when refreshing player page by @joshzcold in #119
- Implement buzzer popup by @karlromets in #100
- Add Estonian games by @karlromets in #120
- Fix theme state by @karlromets in #107
New Contributors
- @karlromets made their first contribution in #95
Full Changelog: 1.5.5...2.0.0