| 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:
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:
In addition, there will be a separate email table (so that one owner can have multiple
email addresses):
Ownership of items will be handled by simple individual relationship tables for each
item. For records:
For the entries:
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% |