Zaurus Dev @ http://zaurus.kruss.com/dev
For the Sharp Zaurus SL-5500 linux-powered personal mobile tool
Projects  |  Applications  |  Resources
StatGrapher | AppletManager

StatGrapher Specs

program functions (high-level overview):

  1. configure categories
    1. category name
    2. measurement name (degrees, pounds, score)
    3. low value
    4. high value
  2. enter data
    1. select category
    2. enter value
    3. accept current date/time or specify alternate
    4. enter notes
    5. register
  3. review data
    1. scrolling list ordered by date/time
    2. allow edit/delete of an entry
    3. as a line chart on a graph by day/week/other amount specified
  4. export data as CSV file to filesystem
  5. activate help
  6. read about box/version
  7. exit program

program functions (detailed):

  1. draw user interface
    1. titlebar (program name, version, help icon)
    2. menu bar
    3. main window
    4. window contents/widgets
  2. display help file
    1. launch help browser
    2. pass help filename
  3. read in existing settings file/db
    1. if no settings file, assume first run:
    2. prompt for or populate defaults (if needed)
    3. prompt to display help (if needed)
    4. display category configuration screen
    5. save first complete settings
    6. if settings found, populate globals:
    7. check settings version, update if necessary
    8. compare settings checksum, warn if necessary
  4. create new category needs:
    1. category name (req'd, 50 chars)
    2. value label (req'd, 50 chars)
    3. high (opt, real number -32767.00 to 32767.00)
    4. low (opt, real number -32767.00 to 32767.00)
    5. default timeframe (hour, day, week, month, year)
  5. log a new entry needs:
    1. date (allow entry, default = now)
    2. time (allow entry, default = now)
    3. value (allow entry, display last [5|10] in drop-down)
    4. exception (checkbox, default = off)
    5. notes (allow entry, 255 chars)
  6. show entries needs:
    1. start date (allow entry, default = timeframe ago)
    2. start time (allow entry, default = now)
    3. end date (allow entry, default = now)
    4. end time (allow entry, default = now)
    5. display (*all, normal only, exceptions only)
  7. graph range of values needs:
    1. start date (allow entry, default = timeframe ago)
    2. start time (allow entry, default = now)
    3. end date (allow entry, default = now)
    4. end time (allow entry, default = now)
    5. minimum value (opt, real number -32767.00 to 32767.00)
    6. maximum value (opt, real number -32767.00 to 32767.00)
    7. group (*none, normal together, exceptions together)
    8. graph on top of (overlay) an existing graph
    9. [v2] consolidate/average by day/week/month
  8. view graph results needs:
    1. graph name (if saving for re-use)
    2. graph notes (to accompany name, 255 chars)
    3. graph scale (-4 to 4)
  9. export data needs:
    1. category to export
    2. export format (*csv, tab-delimited, xml)
    3. file name and extension, file path
  10. delete category needs:
    1. category name
    2. confirmation dialog
  11. delete single entry needs:
    1. entry id
    2. confirmation dialog
  12. delete entry range needs:
    1. start date (allow entry, default = timeframe ago)
    2. start time (allow entry, default = now)
    3. end date (allow entry, default = now)
    4. end time (allow entry, default = now)
    5. minimum value (opt, real number -32767.00 to 32767.00)
    6. maximum value (opt, real number -32767.00 to 32767.00)
    7. delete (*all, normal only, exceptions only)
    8. confirmation dialog
  13. display about box needs:
    1. authors
    2. version
    3. GPL info
    4. web page link
  14. quit needs:
    1. nothing

programming operations:

  1. draw main window
  2. draw menus
  3. draw tabs
  4. link help icon to help browser/file
  5. accept text strings in fields
  6. accept numeric values in fields w/spinbox
  7. structure sqlite database
  8. perform insert queries on data
  9. perform select queries on data
  10. perform update queries on data
  11. peform delete queries on data
  12. display columns [entry date/time, value] in selectable scrolling list
  13. plot selected points to a graph
  14. draw lines between points
  15. draw lines representing high/low to graph
  16. scroll/pan across graph wider than the screen
  17. alter graph zoom
  18. display confirmation dialog (message plus OK/cancel)
  19. display date selector (day/mon/yr drop downs or calendar?)
  20. display time selector (hour/min drop downs)
  21. display drop-down list populated with previous values
  22. write to filesystem for data export
  23. exit

table definitions:

  1. settings:
    1. version
    2. data checksum (to determine if externally altered)
  2. categories:
    1. id (int, 10)
    2. name (char, 50)
    3. label (char, 50)
    4. high (real, 8)
    5. low (real, 8)
    6. timeframe (integer, 8)
  3. entries:
    1. id (int, 10)
    2. categoryid (int, 10)
    3. date (integer, 12; seconds since epoch)
    4. value (real, 8)
    5. exception (boolean, default 0)
    6. notes (char, 255)
  4. graphs:
    1. id (int, 10)
    2. name (char, 50)
    3. category (int, 10, categories.id)
    4. startdate (integer, 12)
    5. enddate (integer, 12)
    6. lastzoom (int, 4)
    7. show (all, normal only, exceptions only)
    8. notes (char, 255)
  5. lastdata:
    1. id (int, 10)
    2. category (int, 10, categories.id)
    3. value (real,8)

 


Updated Mon 19-Aug-2002 16:55
Zaurus Geek
The maintainer of this site, Darien Kruss, can be reached by email to: darien [at] kruss.com