Development

I started the development process by breaking the system up its component parts.

System Map

 
 

The system has four primary components:

  • Client. This was the most important piece of the prototype. The client would be a Mac application that would run on every user’s computer.
  • Server. The server was the mostly invisible element of the system. It centralized data storage and user authentication, and also served as the interface between all of the other elements of the system. The server runs PHP/MySQL, and communicates to the client through JSON.
  • Website. A small front end website was created to allow users to register for accounts. Ideally, this could be built in to the client application, but in the interest of time I placed it on a website. The purpose of the prototype was to build a system to prevent distraction, not to demonstrate an elegant user registration system.
  • Twilio. The social aspects of the system use Twilio so that users can request “unlock” for the more difficult interventions they may face during their day. It would have been possible to send messages through the system rather through SMS, but I made the design decision that SMS would be more likely to spur a social interaction. It feels like it brings the system off the computer screen and into the real world.

Software Development

In mid-February, I started to build the prototype for the application in earnest. For about two months, I spent a significant amount of my time building the prototype out. The bulk of the time was spent on the client and server components of the system.