Skip to content

johnloy/wat-namegame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WillowTree Apps Namegame

Screenshot

Some Highlights

  • Notables in the stack: Webpack, ES2015, Babel, React, Bacon, Autocrat, superagent, cssnext, and surge.sh

  • React integration, via the use of ES7 decorators and higher-order React components, with Autocrat, a state management tool I wrote to achieve a singular global state representation. It's something like Redux, but was written before the advent of Redux. It uses Bacon FRP event streams as a primitive for shuttling state information. This integration supports a very simple and declarative expression of bindings between global state and React.

  • A minimal home-baked routing solution (there are only two routes).

  • An algorithm to randomly select photos for each round giving preference to ones in greater need of review, i.e. un/lesser-seen ones and ones which took > 7 seconds to correctly guess. In theory, after all photos have been seen, the order of priority is from lowest score to highest. As there are 80+ employees, I haven't actually gotten all the way through :)

  • Also in the algorithm is an assurance that, if the current name belongs to a female, at least two females are in the set of 6 photos. I found that without this, it was likely only one photo of a female would be displayed, making it too easy to guess correctly simply by knowing that the current subject's name is female.

  • Vim keybindings (h, j, k, l) to move among the photo grid. Hit Enter to choose the currently focused photo.

Unfortunately...

  • As with any piece of software, there are bugs. Kudos if you find them :)

  • There is a ton of code cleanup I would do under ideal circumstances. Alas, this is timeboxed, so here it is, warts and all.

  • There are many feature ideas I ended up scuttling for the sake of delivering. For example, the left pane was going to provide much more detail related to scoring and rounds. There was also going to be a historical review sparkline linking to past rounds at routes like /tries/3.

  • There aren't jsdoc comments or tests, though I value these things highly. I've used qunit, jasmine, and mocha in the past (and Rspec and Cucumber in my Ruby days, and Midje in my recent Clojure excursions), so I have plenty of experience writing tests and would normally do so. I intentionally chose to omit them in this case to leave more time for feature development.

  • Cross-browser compatibility and responsive and mobile concerns necessarily played second fiddle to features and infrastructure/tooling. I wanted to cross the finish line, and these aspects can be very time-intensive, as I'm sure you're aware!

About

A fun way to associate WillowTree names with faces

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published