Want to see the full-length video right now for free?
On this episode of the Weekly Iteration, Chris and Ben discuss the recently added Flashcards feature on Upcase. See a behind the scenes look at the processes, decisions, and code used to release this new feature.
Flashcards are a new feature on Upcase that allow for learning on the go. They're designed to be mobile friendly overviews of programming concepts that you can review even when you only have a few minutes:
Ben originally had the idea for a simple Ruby quiz which he tested via twitter using a simple gist version. This got feedback with very little effort and told us that there might be something worth pursuing in the quiz idea.
Following that, we had a simple brainstorming session to rough out the initial version we wanted to implement:
Since this functionality was intended to fit well in breaks, commutes, and other short bits of time, it was likely that users would be trying out the quizzes on their phones and we wanted to ensure that we provided a great experience on mobile. In order to focus on the mobile experience, we used the following techniques and tools:
Although the development was relatively traditional Rails work there were a few aspects of the development process that stood out:
Although we had many more ideas for enhancements to the flashcards functionality including a number from early testers, we purposefully chose to push these out in order to get this feature in the hands of all our users sooner.
Upcase currently uses RailsAdmin but for the flashcards admin we chose to implement a custom admin rather than use RailsAdmin automatic configuration driven interface.
Although this took a bit longer we had found that RailsAdmin had certain limitations and would occasional fail on more complex relationships and workflows. By building our own admin pages we were able to optimize and test the specific workflows we needed, while leaving the rest to be done in the console.
One particular example of an optimized workflow was in the live preview functionality we added to the Flashcard editor. We implemented the live preview functionality using a bit of JavaScript and a very minimal FlashcardPreviewsController. This again allowed us to focus on the mobile experience.
Note you'll need access to the Upcase repo on github to view the above code samples. Upcase subscribers can get access by visiting the repositories page on Upcase.