devpaul / catsvsdogs Goto Github PK
View Code? Open in Web Editor NEWSpaces vs Tabs? Cats vs Dogs? Take a vote!
Home Page: https://devpaul.github.io/catsvsdogs/dist/
Spaces vs Tabs? Cats vs Dogs? Take a vote!
Home Page: https://devpaul.github.io/catsvsdogs/dist/
In order to make this a better example application and create better deployments security should be improved around admin
@User()
property decoratorWhen users load the app they're automatically given a tracking guid. Unfortunately this guid doesn't persist itself and so a user can register another vote by reloading the app. This feature should prevent the ability to reload and revote by storing the guid in cache or otherwise persisting the identifier.
Use the accelerometer to make the characters behave like bobble heads. If the accelerometer is not present then revert back to the old head bob motion.
When a user selects the cat or dog button the app should generate a UUID to represent the user (if one has not already been generated) and post that UUID and their selection to the server /api
endpoint in order to tally the vote
Rename repo name to match the talk title. :)
Create a server with 2 APIs
This API should capture a "vote" by a user choosing either cat or dog.
e.g. POST /user/<uuid>/selection
BODY <dog|cat>
This API should report the current stats
e.g. GET /stats
RESPONSE { dog: number; cat: number; }
Websockets would be nice if we have time so we can update live. HTTP RESTful APIs are a good standard.
Add meow and woof sounds using WebAudio. This is just a basic implementation. We'll add the ability to change pitch later (time permitted)
Add a big "Meow" and "Woof" button below the cat and dog characters (respectively). Button should be large enough that we can get positional information from a touch. If we have time, we'll be changing the pitch of the sounds based on their finger position.
We need a page that shows the tally of dog & cat votes.
MVP: A PC only page that is readable from a projector screen that says "Dogs" and "Cats" and display numbers from the server; updates periodically via REST.
Desired: A reactive page w/ a bar chart displaying the results of cats vs dogs that updates from the server via websockets
Update README w/ instructions for Cats vs Dogs, Overview of the project, link to slides, where it's being presented (Half-Stack, Phoenix TypeScript), include logos, build instructions, deployment instructions.
As a user I may want to mute/unmute the experience
We need to consider where we're going to deploy the server. The client will need a static address to connect to the server and tally votes.
Other questions:
Where shall we deploy?
Do we need to dockerize?
Potential deploy points:
https://glitch.com/
https://zeit.co/
codesandbox (client?)
personal server
Use A-Frame to alternatively display the characters in VR
Update the results fetching to use an optional fetch if the initial fetch hasn't happened.
While results are up, fetch should be triggered on a timer.
A live site should have a set of acceptance tests that assert a user matrix.
All endpoints should be asserted that the expected responses are returned for all levels of authorization
Change the pitch of the sounds based on where a user places their finger on the Meow or Woof buttons
Add additional characters and sounds for Spock and Yoda
It would be useful to have an administration panel that would
If we want to use this as an example we need to use add tests
We should test the happy path of the application
It would be nice to use Cucumber/Gherkin syntax for these tests
Add a head bob web animation to both of the characters. Also include the web animation polyfill so it works across browsers.
Update the layout so things look good on phone, tablet, and PC
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.