Week 13 - Design & Revving the Engines
Last week was another find-defect-open-issue-resolve-smile-smugly-rinse-and-repeat week. While going through all the issues, we ran into some interesting problems and solutions.
State Machines (again) Gameplan requires league managers to invite clubs to play in their leagues (invites being emails sent to persons designated as managers of a club). This invite can thus be in multiple states: pending, invited, accepted and rejected. We had tried to model this behavior by using our internal 'status' variable and changing status whenever the status of the invite changed. What we realized was we were writing way too much code to keep track of state and change it, so we quickly switched over to using pluginaweek's state_machine gem. It has a very nice API and our code is a lot cleaner after making the switch.
Design and New Home Page We also sat down with super-designer Winnie Lim to talk about ideas she might have for Gameplan's UI and if there are ways to make it better. This was the first time we were showing off Gameplan to an external pair of designer-eyes and we received some great feedback which we've already incorporated into Gameplan (and in our opinion has made the user experience much much better). The meeting with Winnie also (re-)set in motion Andy's creative juices and it resulted in Gameplan's new landing page. I never understand how designers come up with ideas, but it's always great to watch how a small spark can set in motion a series of events which finally leads to something great.
Javascript-Fu I also spent some time working on AJAX-ifying and Javascript-ifying certain parts of the site which led to some interesting outcomes. One feature we wanted was an in-place-edit control for changing the details of a fixture (such as the date of the fixture, scores, venue, etc.). There are many off-the-shelf in-place-edit JQuery controls available, but we needed a certain amount of customizability, so I ended up rolling our own custom in-place-edit control. (More on this in an upcoming post!)
It's going to be an exciting couple of weeks ahead as we polish and improve Gameplan further, and the sound of revving engines signals that Gameplan is getting very close to blast-off.
Stats 20 issues closed on GitHub, 1 new feature added leading to a current total of 76. 3920 lines of code and 7639 lines of test code with a code-to-test ratio of 1:1.9. (The number of lines of code increased only slightly from last week even though we wrote quite a bit, since we culled a number of features which we think won't be available for the initial launch).