The purpose of this exercise is to demonstrate web development skills in both the front- and the backends. The goal is to write a simple browser-based application that enables the user to record time spent on various activities, presumably for billing purposes (invoicing for time spent on projects) or for personal recordskeeping (self-measuring performance on work, fitness, hobbies, etc.).

Use Cases

The use cases for this exercise are as follows. Note that there is only ever a single user of this system so authentication and authorization are not concerns.


There is a single actor in this system we call the "user". Her expectations are to be able to enter time spent on activities into the system and to delete activities that may have been made in error.

Case 1: Entering Time

The user of the system opens her web browser to the application. The application displays a list of activities entered so far. The first time visited, there are no prior activities. A form appears above the list that allows entry of a new activity.

The attributes of an activity are:

  • The date and time the activity was started
  • How many minutes (as an integer) spent on the activity
  • A short description of the activity.


  1. The user opens her web browser to the application.
  2. The user enters today's date and 8am as the time.
  3. The user enters 55 minutes spent on an activity.
  4. The user types the name of the activity as "Fix Joe's bug".
  5. The user presses Save.

At this point, the browser is refreshed and the list of activites contains a single item.

Case 2: Deleting Time

The user of the system needs to delete an erroneously entered time. The user visits the application with a web browser and sees the list of activities previously entered. The user places check marks next to the activities to delete, then presses the Delete button.


  1. The user opens her web browser to the application.
  2. The user checks the box by the activity "Fix Joe's bug"
  3. The user presses a Delete button.

At this point, the browser is refreshed and the list of activities no longer contains the item "Fix Joe's bug".

Non-Functional Requirements

The use cases of this exercise are quite simple. As a result, we would like to see a particular focus on the user interface. The application should have a pleasing appearance and should make use of browser-side implementation to make inputting data easy and fast.

Security is not a concern.

Server-side implementation may use any development language, framework, etc., except for PHP which is forbidden. Client-side must, necessarily, use HTML, CSS, JavaScript, and/or any preferred client-side libraries.


Upon completion of the exercise, please deliver the source code to your hiring contact. You can send the code in an archive via email, or give us a public URL to the code sample (e.g., a Github URL if hosted at Github, etc.).

You do not have to host the completed application on the public internet, but you can if you like (if you do, please inform us of the URL).


For any questions or if you require any clarifications, please contact Sean Kelly via email at