Sunday, July 11, 2010

Repeating Tasks Use Case

Repeating Tasks are a common request for Todo Q & something I've been working on for a while. The implementation will allow the easy addition new or custom repeat rules. The following is a raw document I created and just decided to release. I welcome input on alternate repeat rules and or strategies that I might have missed.

Use Case: Repeating Tasks

Tasks can be marked as repeatable with a custom time period.

The user can select one of the following values in the dropdown:
Every Day
Every Week
Every Month
Every Year
Custom

The application will then store this value & use it when a task is completed
to schedule the next one. Custom repeating tasks require additional user input.

Custom Repeating Tasks

Daily
D1-Every day
D2-Every weekday
D3-Every N days

Weekly
W1-Every Sun/Mon/etc
W2-Every N weeks on {d1, d2, ..., dN}

Monthly
M1-Day X of every N months
M2-The first/second/etc Sun/Mon/etc of every N months

Yearly
Y1-Every year on MM/DD
Y2-The first/second/etc/ Sun/Mon/etc of Jan/Feb/etc


No end date
End after N occurrences
End by X date

Repeat Rules

D1 - no inputs
D2 - no inputs
D3 - how many days

W1 - which day of week Sun/Mon/etc
W2 - how many week apart, which days of week

M1 - which day of month, how many months apart
M2 - which one, which day of week, how many months apart

Y1 - which date MM/DD
Y2 - which on, which day of week, what month

RRTYPE
RRVALUE


RepeatRule
String ruleType
String ruleValue

DateTime calculateNext(RepeatRule rule, DateTime time)

---

Please comment below or email me if you have suggestions for the repeating tasks implementation.

Todo Q is available for $1.99 on the android market.

bbb