Social Network Kata


Inspired by Sandro Mancuso & Samir Talwar

Incremental Kata - no peeping ahead!

This is an incremental kata to simulate a real business situation: work your way through the steps in order, but do not read the next requirement before you have finished your current one.

Your Team

Is tired of all those boring tasks like bowling game scores, bank accounts, singing songs or commanding mars rovers. This time you want to do something truly innovative: A Social Network!

Your Rules

Your team also decided for this project to not only apply TDD and pair-programming - this time you’re gonna use BDD to cover all important features.

Your Backlog

  • Posting: Alice can publish messages to a personal timeline
  • Reading: Bob can view Alice’s timeline
  • Following: Charlie can subscribe to Alice’s and Bob’s timelines, and view an aggregated list of all subscriptions
  • Mentions: Bob can link to Charlie in a message using “@”
  • Links: Alice can link to a clickable web resource in a message
  • Direct Messages: Mallory can send a private message to Alice

Starting Points

C++, C#, Clojure, D, Elixir, F#, Go, Haskell, Java, JavaScript, Kotlin, PHP, Python, ReScript, Ruby, Rust, Scala, TypeScript

Clojure, CoffeeScript, C++, C#, Erlang, Groovy, Intercal, Java, JavaScript, Lisp, PHP, Ruby, Scala

Image credits

Image by Rachel M. Carmena. It represents a greeting of respect and gratitude made at the beginning and at the end of a kata.