Skip to content

Instantly share code, notes, and snippets.

@it-is-michal
Last active March 10, 2016 09:11
Show Gist options
  • Save it-is-michal/7c7d1895dfd3dfb5a171 to your computer and use it in GitHub Desktop.
Save it-is-michal/7c7d1895dfd3dfb5a171 to your computer and use it in GitHub Desktop.
Haiku.log Kata

Haiku.log Kata - README

This Kata is divided into two parts. First do the base part without even looking at the backlog. Once the foundation is ready then move forward to the list of features.

Focus on developing one thing at a time.

Note that some features may be missing, some may not match others right away. This is intentional. Feel free to refine that list as you are coding.

Haiku.log Kata - base

Today quick and easy communication is a big thing. Things like Twitter, Tumblr, and Reddit proved to make sense and be succesfull. Why don't mix all them together and quickly build a simillar product?

Your objective is to create a piece of software that is capable of storing and retrieving short, 142 characters, messages.

Right now focus on building a simple engine. Don't bother using database at this point. You can even store data in memory.

Haiku.log Kata - backlog

Once we have the engine tested and running we need to add more features.

They will go roughly in that order:

  • each message gets a permalink / id
  • search by @username - allow to search for messages in which someone mentions 'username'
  • search by #tag
  • filter by created time
  • pagination - allow fetching last 10 messages and then next 10 and so on
  • share / recommend
  • follow a user so that on your dashboard you will have a list of updates from those who you follow
  • conversation (first message starts plain chat - no nested conversations)
  • private messages
  • share via private message
  • reactions to each message / update
  • up and down vote each message
  • users have karma (don't know the algorithm for counting it yet)
  • best messages appear on front page (don't know what best means; that algorithm needs to be adjustable)
  • URL shortening
  • sharing files (images, videos, and others)
  • make message storage persistent
  • integrations API (no idea yet)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment