Releasing Today: States-n-Plates
I’m excited to share States-n-Plates , a project I built with Dan Meyer.
Dan proposed the idea for this activity a while ago with his typically high level of excitement about activities that provoke interesting and productive classroom conversation. This time, however, it wasn’t about mathematics. I was looking for a bigger scale project to help me develop my ReactJS skills, so I took it on. Dan was patient enough to let me hack away at the project in this context. Though I could have certainly done it more quickly using jQuery or another framework, I wanted to try building this project in a particular way.
- I wanted to be able to play the game myself when I was done. Hard coding everything into a series of HTML pages would have likely resulted in my seeing each plate and the answer over the many times I reloaded during development. By abstracting the behavior of the game to be automated for each group of license plates, I saw most of the plates for the first time during testing.
- I wanted to experiment with a drag and drop library for React as an exercise for use in future experiments.
- I also wanted to have a slightly different UI behavior for the desktop and mobile versions. This functionality came from Bootstrap. This led to a bit of wonkiness on small phone displays, but larger tablets work great using touch, and the desktop version works well using drag and drop.
- I also wanted to experiment with modularity of both files and React component JSX files. I used Webpack. I don’t understand Webpack.
As in my past collaborations with Dan, I learned to do a number of things I didn’t think I could do. For example, I told Dan ‘no’ on the fading effect at one point, and then subsequently figured out how to make it happen through lots of searches, StackOverflow, and careful reading of the React documentation.
If you want to play with the code, the Github repository is at https://github.com/emwdx/states-n-plates/. You don’t need the big node_modules directory for this to work locally, but it is required if you want to change the bundle.js file.
I have more thoughts on the learning process I went through, but that will be shared soon. Have fun and share with your friends.