I'd like your help getting started on a simple little Coffeescript app that will help people learn the Dvorak keyboard layout. If you want to set it up as part of a Rails app, that would be great but isn't completely necessary. It will end up being part of a new Rails 3.1 app.
I'd like this app to be MVC, not just a mess of jQuery events. I really like Spine.js, so that would be my preference, but you might be able to convince me to look at Backbone.js or similar.
When a user loads the app in their browser, there is an input box, a visual representation of the Dvorak keyboard layout, and a prompt area. Each lesson has a script that the user has to type. The user's current place in the script appears in the center of the prompt area, but the previous and next text can be seen above/below it.
The lesson will have a timer to measure how long it takes the user to type the text from first character to end.
It will check the text input against the script and highlight misspelled words.
After a few seconds elapse while the user is hunting for a key, the key is highlighted on the visual representation of the keyboard and they are prompted by a voice where to find the key.
There are "voice prompts," but at this stage I just want the text that would be spoken to be logged to the console. I'll figure out text-to-speech or a library of recorded phrases later. If you build it with the proper modular architecture, I should have no problem swapping that out.
I practice Test-Driven Development (TDD/BDD) in all my work and expect the same of my contractors. I'm providing some features in Gherkin format to explain what I want to happen. Whether you use them in Cucumber, write Jasmine tests for the Coffeescript, or both, I want everything thoroughly covered by automated tests.
A mockup and the user stories are attached.
(Se habla español.)