Base Functionality
Tracking Field Provide CRUD functionality for a tracking field. A tracking field defines a single metric to be tracked. A field consists of:
  • Id
  • Name
  • Description
  • Type
  • Minimum Value
  • Maximum Value
URLs:
Create POST field
Update PUT field/(id)
Query GET field/(id)
Delete DELETE field/(id)
75%
Tracking Record Provide CRUD functionality for a tracking record. A tracking record defines a collection of tracking fields, usually for a specific purpose. In addition to the fields, a record consists of:
  • Id
  • Name
  • Description
URLs:
Create POST record
Update PUT record/(id)
Query GET record/(id)
Delete DELETE record/(id)
75%
Tracking Entry Provide CRUD functionality for a tracking entry. A tracking entry defines values for one record of fields. A tracking entry contains:
  • Id
  • Record Id
  • Owner Id
  • Timestamp
  • State
  • Comments
Then, an entry field contains:
  • Id
  • Entry Id
  • Field Id
  • Value
URLs:
Create POST entry
Update PUT entry/(id)
Query GET entry/(id)
Delete DELETE entry/(id)
75%
List Entries by Date Range Provide queries for entry data. Queries should allow lookups by the following vectors, orthoganoly:
  • By Date Range
  • By Type (Record Definition)
  • By State
Provide entry data for a specified date range.

URLs:
Query GET entries recordId=(record id)
startDate=(start date)
endDate=(end date)
states=(list of states)
0%
Ownership Provide ownership of records and entries. The ownership will be managed by separate tables. There will be an overall owner definition like so:
  • Id
  • Username
  • Display Name
In addition, there will be a separate email table (so that one owner can have multiple email addresses):
  • Owner Id
  • Email Address
Ownership of items will be handled by simple individual relationship tables for each item. For records:
  • Record Id
  • Owner Id
For the entries:
  • Entry Id
  • Owner Id
URLs:
Create POST owner
Update PUT owner/(id)
Query GET owner/(id)
Delete DELETE owner/(id)
75%
Authentication Require valid authentication for the web service API. The user authenticated must be included in the ownership of the item being accessed.
0%
Formatting of Lists When a list web service is called, a set of formatting templates can be provided. The list would then be formatted before being returned. The templates allowed would be:
  • Report Template
  • Entry Template
The templates will be in Velocity format.
0%
Type Support
Type: Integer Provide support for integer fields. This would be the default.
0%
Type: Decimal Provide support for decimal fields.
0%
Type: Time Stamp Provide support for fields that store timestamps. A timestamp is a single point in time, which would include both a date and time (in human terms).
0%
Type: Time Duration Provide support for time duration fields. A duration is measured in milliseconds, seconds, minutes, hours, days, and years, but will only measure to the largest one.
0%
Type: Enumeration Provide support for enumeration fields. An enumeration is a list of names corresponding to integer values. The enumeration must span a continuous sequential range of integers. An enumeration will have a record in enumeration table, like so:
  • An id
  • A name
  • Lowest value
  • Highest value
  • Default value
In addition, each value in the enumeration will have a record in another table, like so:
  • The enumeration id
  • The value
  • The name
0%
Foundation UI
Authentication Provide a standard, templated authentication UI, including:
  • Register New User
  • Log In Dialog
  • Log In Fail Message Page
  • Password Reset
  • Log Out
  • Log Out With Message
The log in will need to be able to redirect to a page specified by the template context.
0%
User Management Provide a standard, templated UI for CRUDing users. This UI should be restricted.
0%
Field Management Provide a standard, templated UI for CRUDing fields. This UI should be restricted.
0%
Record Management Provide a standard, templated UI for CRUDing records by owner.
0%
Entry Management Provide a standard, templated UI for CRUDing entries by owner and record.
0%
Workout Tracking UI
Front Page Provide a custom front page for the workout tracker.
0%
Term Dictionary Build the template context for the foundation UI components.
0%
Look & Feel Build a look and feel for the workout tracker.
0%
Report Record by Date Range Build a report tool which will allow the user to select a record and a date range, and will give a nice report with a pretty graph.
0%