textual Client + Server

Technologies

Language: Scala (JVM)

 

Framework: Akka (Actor Framework)

 

Database: ORM (Slick), h2 as backend

Actor Framework

Actors are isolated process that communicate with the rest of the world with immutable messages. Everything except data is an actor

 

Why ? It avoids thread-lock, is extremely fast/lightweight and is resilient by design (if one actor die, you can just restart it)

It's a way to design concurrent servers that scale very well

You can have millions of simultaneous actors on a single server

Demo

Normal session

  1. Register an account
  2. Login
  3. Add a friend
  4. Check which friends are online
  5. Invite a friend to a game OR accept an invitation
  6. Answer questions, one after the other
  7. Finish the game
  8. Logout or go-to 4

Cycle of Login function

Made with Slides.com