Code Monkey home page Code Monkey logo

cold-family-feud's People

Contributors

jbaczuk avatar joshzcold avatar nickydotnet avatar theredwillow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cold-family-feud's Issues

Loading a game resets family and team names

To reproduce:

  1. Open admin console
  2. Enter family/team names
  3. Click "Browse" and select a game
  4. Click "Submit"

Family/team names get reset until you type in those fields again.

Feature: load a game from csv

after creating script/parse_csv this project now has the ability to load up csv data into the cold_family_feud format.

The operation would go as follow:

  • Someone creates a CSV with format

question,answer,points

or

question,answer,answer (points get generated)

  • after the file picker we send it to the server (assuming its not too large)

  • run the csv through script/parse_csv and JSON.parse() the output from server.

For certain types of people this would be 1 step easier than using the game creator.
I'm thinking school teachers who are familiar with google docs more so than a website's custom form.

Feature Request: Buzzers!

Currently contenstants have to yell out "buzz!" when they are buzzing in for a question.
Problem is VOIP program's latencies might give a competitve edge.
giving a UI buzzer conected over the socket would level the playing field however you would still have an advantage if you were closer on the network to another player.

Best way to solve this in my mind to is take the player's system time and compare to the server's system time.

You would also have to account for timezones and any offset in time difference between the system clocks.

so for each buzzer connected (lets assume that many users pull up a buzzer) you would save an offset and then later use that offset to calculate who actually clicked the button first no matter where they are in the world.

There would be a possibility of cheating if a user connected then changed their system time, but for family feud it is assumed that you are playing with people you know and you wouldn't really want to cheat.

Putting in a buzzer pretty much assumes that the admin would deploy this project publically on a VPS and their friends/family would connect to the public instance. This leads the way to more public features.

  • password authentication
  • session (room code) management.
  • deployable containers
    and much more.

if the project gets big enough I would probably have to rebrand off of "Family Fued"

Show final round(s) total before the 1st rounds answers are revealed.

Family played this last night, i was really fun, nice job again! I've taken some notes of things I will try to submit for a PR, because I can see us using it again. I wasn't sure how to finish the game, though, after the money round. It seems there wasn't a way to total up the points and determine if they won the bonus round, but I assume that may not have been added yet...

Bug: Final Round Timer stuck on "Stop Timer" in admin

When start_timer is kicked off in game.js, an interval is started. When the interval's limit (which also acts as an iterator index) hits zero, the interval is cleared. However, the admin page never receives this information. A message needs to be sent back through the socket so that the admin's button can be reset to the "Start Timer" state.

Feature Request: hosted rooms

With the addition of hosted rooms with room codes it would be feasible to launch this application publicly allowing people to just start a game without deploying the application themselves.

It would also benefit locking off the admin console to the administrator when the game starts so other players don't sneak in. Which would be something weird for a person to do, but I also plan on giving this game a try with 60+ people so who knows ๐Ÿคท

  • one url with an interface that has room code input
  • If your hosting a game then redirect to the admin portal
  • give the admin a link that shows the game window
  • other users entering in the room code get pushed to the buzzer screen.
  • keep cookies/sessions for all pages so refreshes don't push people out.
  • clear out rooms after a certain amount of inactivity. Something like an hour.

Feature: Option to keep game state in storage on backend.

Currently on https://famf.app if I want to deploy a new version of code I wait until no-body is playing the game before I can deploy.

This is because the current state of the application would be wiped when I swap out the docker container.

I would like the option to store that game state in some kind of storage service.

Redis seems like a good bet for data that doesn't have to live forever and I can probably keep games alive for 24 hours instead of 1.

Another option is sqlite or postgres, but I would like it to be as plug-n-play as possible for others who also want to host the site.

Websocket shouldn't connect before hosting or joining

if you go to index then the client will connect to the server.
This serves no purpose and should really only be done when the user clicks to host or join a game.

As a side issue. When the user click to host or join and the websocket is in a closing state, then the client should make a new connection.

Feature Request: Internationalization

  • Language picker on /admin
  • commited games go into subdirectories for languages. i.e games/lang/de/german-game.json

Need to do a bit of research on best library/practice for my use case. When ive seen internationalization in the past there is a usually a file where the actual text gets brought in and each string text within the client pulls from that file.

Elements/Pages where internationalization needs to be placed:

  • admin console controls/help text
  • game window titles. i.e text like round, total, fast money, etc.
  • "Family Feud" on the title screen.
  • maaaaaaybbbeee the timers on fast money. ill have to look up how languages on differn't applications use numbers
  • Game creator
  • any future new ui

lots of work, probably can't hash this out in one session just based on the amount of text ill have to replace with variables, but I will make incremental pull requests on stages within this feature. Once I have all text replaced with english ill create a doc for helping with internalization. I do have a couple friends who know spanish so I can probably ask for their help ๐Ÿ˜€

Feature Request: help page for admin

/game is self explanitory, but the admn console does need a bit of training to get the hang of all the controls.

This would be a good chance to start a github wiki where I also put in other helpful information.

The help docs should be accessible from the admin window.

Update last merge

Hello, it is possible to publish the last merge on the production website ? thanks

Feature Request: game sounds on buzzer screen

Play a sound when pressing the buzzer.
Would be pretty fun to hear player's phones go off if they are playing in the same physical room.

After enabling the mobile buzzer screen to see the game board, if you host the game purely on mobile then you miss out on the game sounds.

buzzer cookie. keep session on refresh.

Current registered buzzers can get out of the game by refreshing.
This is low risk as they can just re-regesiter with the same name.

It would be nice if the client attempted to get back in the game.

Bug: Cached logo

If the host adds a logo image but then removes it and adds a different one, the buzzers/users will not update the image. I believe this is because the browsers cache the URL.

Feature: choose player from player list to hide the game board from.

For fast money we have to pick two team mates from 1 team.
We have to tell 1 player to "leave the room" or video call while we run the 1st fast money round.

While they leave the room the game board is still visible on their joined device.
Most people in spirit would choose not to look, however the game should up hold the rules of the game.

It would be nice if the admin had a choice on who to "hide" the game board from during fast money.

Mobile interface improvments.

For the future when contestants connect to this game over the network instead of share a screen on a VOIP client.
It would be nice if /admin and /game had very mobile friendly interfaces.

Currently its not too bad, just a good amount of tweaks would fix it up.
Game window is jumbled.
image

admin console is workable, but too small.
image

Open game window on another computer

Instead of needing to use a computer with two monitors, one hooked up to the shared screen, it would be nice if the game window could join a session and be hosted from a separate computer.

I would use that to connect on one of the devices with a browser attached to a TV like an XBox, Playstation, Firestick, or Chromecast device.

The code could be the same as the main game, or one generated and shown only on the host screen.

JSON's are cluttered by state data

The games folder's JSON files are filled with unnecessary game state such as "selection" and "input". These things can be added when the state is initialized and greatly alleviate the readability of the library data.

Feature Request: /admin game picker along with file input

along with
image
we should have another picker that just reads from the /games directory of pre-commited games for the user to select from.

While internationalization isn't done I will be looking within /games/lang/eng/*
When internationalization is done, selecting a language will then show those language's games.

opensllErrorStack

Help, I can't get past this error

Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at BulkUpdateDecorator.hashFactory (C:\VSCode\family-feud\node_modules\next\dist\compiled\webpack\bundle5.js:133790:18) at BulkUpdateDecorator.update (C:\VSCode\family-feud\node_modules\next\dist\compiled\webpack\bundle5.js:133692:50) at C:\VSCode\family-feud\node_modules\next\dist\compiled\webpack\bundle5.js:56905:9 at processTicksAndRejections (node:internal/process/task_queues:82:21) at runNextTicks (node:internal/process/task_queues:64:3) at process.processImmediate (node:internal/timers:442:9) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }

Feature Request: loadable title music

Title music is currently hardcoded to the family feud theme.
We can allow users to load music on their computer for customize the game for their event.

This would be a good oppertunity to remove the copy written family fued theme from the repo.

for the remainer of the sound effects we should create non-licensed equivalents.

Feature: State-based game admin flow

Disclaimer: Forgive me if I'm missing something as I'm still discovering everything in this repo.

While I can see the value of being able to control anything at any time from the admin page, there is a certain level of game play cognitive load that comes with that.

I propose a second admin page that follows the flow of the game. For example, loads as title page, button for start game, buzzers appear to first users, admin clicks answer or strike, etc...

The idea being that only the currently relevant information is displayed as the game progresses. Of course, catastrophic bugs can sometimes appear out of nowhere so I'd keep the current admin page as a failsafe.

feature request: undo

it seems that as the host if i accidentally misclick and e.g. award the incorrect team points, there is no way to undo this. supporting an undo function would be useful in certain scenarios. I think this could be done by maintaining a stack of last actions that occurred in game state?

Stuck on "Loading..."

I just tried the latest commit and the Game and Admin pages both get stuck on "Loading..."

Errors when running project

Hi,
I am trying to get your project running.
However, when navigating to http://localhost:3000/admin I get a 404.
/new and /game work fine.
In the .next/server/pages there are new.html and game.html, but no admin.html.

Has anything changed that is not recorded in the README.md?

Feature Request: View/Kick registered players from admin console

Hi, i deployed this to my own server but i can't refresh all the names. i will look into the code and see if i can add code to clear it but i am not a react developer, so ill check.

But i would like to request a feature to show all the players in dash where you can just delete them so you dont have duplicates. or if player looses connection it removes them automatically and they must just sign in again

Feature Request: better fast money help text.

image
Fast money round isn't super self explanitory. The operation you take is:

  1. you ask the first question.
  2. contestant is answering the question mean while you are typing in what they are saying
  3. repeat for all questions
  4. after typing in answers, if the answer is correct select from the drop down list the answer
  5. say "for question X you said" click on "reveal answer" to show the answer to the contestants
  6. say 'survey says!"
  7. if correct then hit "submit" if wrong hit "wrong"
  8. repeat for all questions.

either the ui needs to be super obvious or i need to put in some instructions in a modal or something.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.