Goals Challenge

Create a simple goal tracking application using PHP. There is not a right or wrong way to solve this. The purpose of the test is to gain some insight into how you think and program. Please spend no more than 3 hours. You can use any existing frameworks or libraries.

A database schema should be created demonstrating how you would model the data. Sample controllers and models should be written. You may use additional design patterns (e.g services, repositories, interfaces, adapters, factories) where appropriate. Not every controller/model needs to be complete, but can contain well commented pseudocode. We do not expect you to complete this test in the allotted time, but try to demonstrate as much as possible of how you would solve the problem. You can provide whiteboarding sketches or ERDs if you want.

Goal tracking system requirements

The application should be able to do the following:
  • create a basic account (email/password only)
  • create, read, update, delete goals
  • set milestones for those goals
    • For example, milestones for "Be able to run a 10K" might be "Run 10 miles a week", or "Run a 5K"
  • track/log progress toward those goals
    • For example, log "I ran 3 miles today."
  • Goals can be of many different and varied data types (nominal, ordinal, interval).
  • Examples of goals could be:
    • Raise my grade in English from a B to an A
    • Lose 10 lbs
    • Learn Mandarin
    • Eat less sugar
    • Be able to run a 10K
The system should be flexible enough so that new goal types can be easily implemented. Hint: google “database design schema for tracking progress over time”.

Goals Solution

Create Goal

Showing 1-3 of 3 items.
#TitleDeadlineCreated At% Completed 
1New Goal for 20172017-01-01 00:00:002016-08-10 11:50:5474
2Test Goal12017-01-01 00:00:002016-08-10 12:20:0562
3new goal22018-11-25 12:23:222018-11-25 13:27:0720