- User can login with Twitter
{
resolutions: [
// Period Object
{
userId: GUID,
name: String,
start: Date,
end: Date,
items: [
{
name: String,
completed: true,
completedAt: Date?,
goalQuantity: Number,
completedQuantity: Number,
completedTimes: [ Date ] // Computed completedTimes.length?
}
]
}
],
weeklyGoals: [
{
userId: GUID,
name: String,
weekStart: Date, (time + day selected),
goalQuantity: Number,
weekProgress: [
{
start: Date,
end: Date,
goalQuantity: Number,
completedQuantity: Number, // Computed completedTimes.length?
completedTimes: [ Date ]
}
]
}
]
}
- User can set preferences?
- User can see list of periods across
- User can create period
- Name
- Start (Date Picker)
- End (Date Picker)
- User can see weekly goals
- User can add new weekly goal
- User can add goal for a period
- Name
- Quantity Goal (if applicable)
- User can mark goal for current period as complete
- User can complete a numeric goal
- User can see time period progress
- User can see goal progress
- Period.computeCompletePercent =
items.reduce((accum, item) => accum + item.computeCompletePercent() / items.length)
- item.computeCompletePercent =
function () { return this.goalQuantity ? this.completedTimes.length / this.goalQuantity : this.completedAt }