Coming up with an MVP

Coming up with an MVP

MVP is probably not the right word to use as I don't think Sac Sac Mate can be considered a product (though it might become one in the future) but I'd like to lay out a set of features to my readers and to myself that I'd like to build out in the short term.

The app should have a Players page, where a number of chess masters (say, the top 10) should be listed in a nice-looking format, with cards representing each player, showing basic data. Above that, the user should be able to:

  • Sort the players in order of their standard, rapid or blitz rating
  • Select a player to go its detailed player page
  • As a stretch goal, re-arranging the players when the sorting criteria changes should happen in an animated way

The Player details page should show detailed information about the player. Above the basic data presented on the Players page, it should

  • Show a graph with historical data about the player's Elo points, going back about 10 years. Each of the time formats (standard, rapid & blitz) should be selectable or de-selectable.
  • As a bonus, the selected player should "fly in", if selected from the Players page.

The Tournaments page should show a list of tournaments played and basic data for each, in the same manner as on the Players page. That should, in the first round, include the tournament dates, where it took place and who won it. If there were several competitions at the tournament (for example, Masters and Challengers at the Tata Steel Chess), it is, for now, sufficient to show the main one. The tournaments should be listed in reverse chronological order.

The Tournament details page should show more details about the main event of the selected tournament, which should include the final ranking (first 10 players) and the points each player has achieved at the event. The player names should link back to the Player details page of that player, if it exists.

Above these features, I would like the app to look decent on a wide range of devices. As I'm not a designer, it will probably not have a strong visual appeal, but I'd like to go somewhat beyond the wire-frame, default-frame look.

In this first round of development, the app specifically doesn't need to have:

  • Real data. Instead of manually copying rankings and historical Elo points from chess sites, I'll generate "credible" random data.
  • Any tests. I plan to add tests (mostly acceptance and visual regression ones) right after this first milestone is reached, but not before that.
  • An API that provides data. I want to keep it as simple as possible and I think that with a great tool like Mirage, it's possible to build all of the above without needing to worry about the back-end.

Once the above list is complete, I'll deploy the app for everybody to see and start the next phase. Some of the above features are already done, and I'll continue the journal by writing about what I've done and learned along the way.