Your task is to create a WSGI/Python based web application call “Track My Life” ([url removed, login to view]). [url removed, login to view] is a site where people can upload small amounts of data about their lives and see that data charted over time. The application will store this data and will show it back to the user in interesting ways. For example, a user might upload their daily insulin levels or weight and the application will show them a chart of that value over time.
We will build on your work in the first assignment to add more functionality in the second assignment.
To achieve a pass mark your application must do the following:
Accept user input of a numerical value and a date and store this in a table. To simplify things you can make the date submission default to the date of the submission. I.e. the user does not enter a time, the current time is always used.
Show this value’s progression over time as a chart. The x-axis of the chart is time (the date) and the y-axis is the value.
To achieve a credit mark your application must do everything from the pass specification plus:
Allow the user to store multiple series of values. I.e. the user might submit a weight everyday and submit an insulin value once a week and submit a run time every few days. Each series is for a separate graph.
The user is able to name each series of values. The database must store this name.
The web application shows each series in a different chart, properly associated with the name the user gave them.
To achieve a distinction mark your application must do everything from the credit specification plus:
Allow the user to submit the date to be stored with a value.
Use a datepicker to make it simpler for the user to input a date.
To achieve a distinction mark your application must do everything from the distinction specification plus:
The application interface should work on desktops and on at least one mobile device (like an iPhone, Galaxy, HTC, Blackberry, etc). Tablets don’t count as a mobile device for the purposes of this task. If your interface is flexible enough to work on all mobile devices, all the better, but if you can only get one to work that is fine.