Project Description
- Chart: Line chart of hours per week over time
- Chart: Pie chart of per-project hours for the selected time period
- Chart: Bar chart of weekday-averages for the selected time period
- Reports page with multiple charts
- App must be fully offline
- Record time by starting a timer with a button
- Timers may (or may not) have descriptions
- Timers may (or may not) have a project
- Timers may be started with a missing description and/or project
- Timers may be started with a description and/or project pre-applied
- Timers must be manually stopped with a button
- Timers may be "resumed" by effectively cloning the project and description and starting from the current time
- Multiple timers may be active at once
- The user may specify a default project to pre-populate all new timers with
- A “dashboard” screen will display: a list of the latest completed timers; the current running timers; an interface to start or create new timers
- Timers may be edited (whether running or not). All data related to each timer may be changed: Start time; End time; Description; Project
- Timers may be deleted (whether running or not). A confirmation should be presented to the user to confirm the deletion
- Projects can be created with a project name and a colour. The colour will be pre-populated by the system. The colour can be set by the user before creating the project. The project name must never be empty/
- Each project can be edited (name and colour)
- Export database using native OS sharing
- Export data as csv (or xlsx?) using native OS sharing
- Export data can optionally be filtered by: date, project
- Export data can optionally be grouped by timer descriptions on a daily basis
- Export format should be able to include: Timer description; Timer project; Timer start time (RFC 3339); Timer end time (RFC 3339); Timer length in hours
- Export settings should be persisted and re-used as defaults
- The list of open-source software should be included
- Starting / stopping timers should be located at the bottom of the screen to facilitate one-handed operation