codewords's Introduction
codewords's People
Forkers
threefields gardenofegan cuulee guardwu2015 zxenonx daxcee litemafia efeng1st jyotiskab reciproco nguyen-viet-hung zhironghsu ibfait agonystyx fdenzer iuriguilherme mybigman lubomir-russia mckang lord-moon petrosagg stevevillardi kyoung3212 wtfrost mirsob sanjaygorur nellyds tmusico vogtai qflw airon90 dibyanshupatnaik chinzod thechad vfontanella thebeautyoflife raymondberg neiljones-r anubhavmagic saiyncodewords's Issues
Store room instances in a centralized semi-persistent location
- Redis - allows for easy retirement of old/stagnant rooms
- Allow initialization of game instances by dict
Remove old rooms after a period of inactivity
Related to #5 - old rooms should be scanned and removed upon new room creation. This is a stopgap solution to using a semi-persistent storage as mentioned in related issue.
Clean up tile sizing
Optimize tile sizes on all screen sizes a bit more.
Clicking on the timer multiple times causes the timer to speed up
Describe the bug
Clicking on the timer multiple times causes the timer to speed up like a bomb in a movie.
To Reproduce
Steps to reproduce the behavior:
- Start a game
- Click on timer
- Click "Start Time"
- Notice seconds pass
- Click on timer again
- Click "Start Time" again
- Notice seconds pass faster
- Repeat 5-7 over and over again and see how it speeds up
- Resetting the clock does not fix this
Expected behavior
Either an option to click on "Start Time" when the timer is on should not be available, or it should be switched to "Pause Time".
Desktop (please complete the following information):
- OS: Windows
- Browser: Chrome
- Version: 81.0.4044.129
Send dictionary names to client to avoid hardcoding
Scan the dictionaries folder to populate the form.
Implement enhanced logging
Implement better logging in production.
Application secret key visible in source code
See line 19 in codenames/server/init.py
Might be a good idea to store this as an environment variable instead and replace with;
import os
app.secret_key = os.environ.get('SECRET_KEY')
Update UI design
Add some extra design elements to give the app a more "fun" feel.
Some ideas:
- Make cards more interesting looking
- Add spy-themed background music player
- Make "card flip" transitions
- Make all card text uppercase
Show current score in the top bar
Once a turn is taken, replace "Blue/Red team starts" with a mini scoreboard
Enhance UX for game creation
Make game creation more user-friendly for multiple users.
- Add an additional staging view to display some UI elements to help other users get connected.
- Staging room should show # of users (connected clients), as well as allow username entry
- Staging room will assign teams, assign spymasters, allow randomization, and show game creator
- Team assignment, spymaster assignment, etc will be adjustable mid-game or between games
- Also possible: staging room can allow for custom word entry. Custom words can either be merged in with the selected dictionary(ies), or played from independently.
Standardize dictionary importing
Make it easier for community dictionary contributions. Must support multiple dictionaries for multiple languages (English standard, English CAH, French standard, French CAH, etc...)
Ideas for doing this:
- Standard descriptive naming scheme (ex: en_standard, es_standard, en_cah)
- Pros: easy to implement, lightweight, drop-in dictionaries
- Cons: less flexible, possibly confusion and error-prone
- Manifest JSON/YAML file
- Pros: flexible, extensible, allows for additional metadata
- Cons: Requires an additional file to be updated for new dictionaries
See additional input and discussion in this PR.
Lock “reveal” once spymaster is chosen
Once someone has clicked “reveal” as the spymaster, no one else should be able to reveal the map
Write more in-depth e2e tests
As in - test the entire flow of the app such as creating a game, flipping a card, joining a game, etc.
Implement a new room code generator
Use a smaller character set for easier, more mobile-friendly room codes.
Options:
- Non-numeric 6-character code. Ex: ABCDEF
- Dictionary-based codes. Ex: Apple
- Numeric-only 6-character code. Ex: 123456
Fix usability for iOS PWA pop-up
The pop-up currently overlaps the bottom nav - it's not clear that you need to "Tap to dismiss"
Either add "Tap to dismiss" text to existing pop-up, make the pop-up a modal, or move it elsewhere on the screen.
Add server-side validations to game creation
This will avoid games being created with less than the required number of words and erroring out.
Set up Travis CI
Clean up tile flexing on mobile
Use the grid layout for desktop, and use normal flex layout for mobile.
Implement i18n for UI elements
The application supports non-English dictionaries but the UI is purely in English. Use vue-i18n to map UI text to supported languages.
Adjust spymaster game controls
- Only show shuffle button for spymasters
- Remove spymaster roles when "New Game" is clicked
- Change wording on shuffle button to something that makes it more clear that "shuffling" replaces the board
Enhance user-friendliness to new users
Not everyone will know how to use the app when first starting - add some tooltips and better guides on how to play.
Dictionary Mixer
Allow users to mix multiple dictionaries by percent. Ex: 50% Cards Against Humanity, 50% Standard
Dictionary list not populating on load
This didn't occur until the most recent deploy, where hosting was switched from AWS to DigitalOcean. Likely a permissions issue.
Investigate steps to support Chromecast
Regenerate words and new game buttons
- Regenerate words without starting a new room
- Start a new game when game is finished
Code for regenerating will likely power the new games.
Add "Become Spymaster" button to Agent view
This will help with usability and make it more evident that only spymasters can flip cards.
Implement hourglass/timer
Implement hourglass/timer.
As a player I can start the timer.
As a spymaster I can start the timer.
As a player I get notified when time's up.
As a spymaster I get notified when time's up.
Timer stops when a card is flipped.
Medium links in README are dead
Describe the bug
The medium links you put in the readme redirect to medium.com.
To Reproduce
Steps to reproduce the behavior:
- Go to Readme
- Click any of the links under 'Blog Series'
- You will be redirected to medium.com
Expected behavior
They should link to, for example, https://medium.com/hackervalleystudio/weekend-project-part-3-centralizing-state-management-with-vuex-5f4387ebc144
Desktop
- OS: MacOS 10.15.4
- Browser: Chrome 81
RangeError in /
Error in Codenames
RangeError in /
Invalid array length
Stacktrace
webpack:///node_modules/vue/dist/vue.runtime.esm.js:3704 - s.En [as _l]
Created by Josh via Bugsnag
[enhancement/possibly fork as new game] Codenames: Duet - cooperative mode
I am willing to help code the cooperative mode for this.
(Python3/flask and Vue(x) i can do.
Unit testing is not my strong suite, though.)
Any ideas on where to start?
PM or chat room invitations welcome.
(For now, I can work on this project on three days this week (CW10 of 2019),
from 21:30-23:30 hours in UTC+1 hour zone.)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.