In groups of between three and five people (groups of other size must be explicitly approved by the professor, and there must be a very good reason), you will be applying all of the topics we’ve learned all semester to develop, from a set of requirements, a database driven web application using MariaDB and PHP.
We will be continuing on with the Fitness Tracker application that was used in the first assignment, so you can refer back to that document for details. In that assignment, you only had to design the ER diagram. Assignment 1 was graded very leniently, so it would probably behoove you to return to the drawing board, applying your more recently acquired knowledge to the ER diagram, rather than just choosing someone’s assignment 1 submission and assuming it will work.
We will be adding some functionality that actually need to be implemented. Previously, the necessary views were just examples to give an idea what data needed to be stored; now they are requirements. The exception is that you are not required to implement the drawing of graphs. Kudos to groups that figure out a way to do them anyway.
In addition to the requirements from the first assignment, the following are now required:
- You must implement a page that facilitates the addition of new foods/drinks into the database. This should allow any of the relevant information (calories, macros, micronutrients, etc.) to be added.
- You must implement a page that allows the user to update their weight.
- You must implement a page that allows the user to enter the foods/drinks they have consumed, and in what quantities (tracking page). This page must allow the amount consumed to be specified in any relevant type of unit, and the rest of your app should be able to handle those conversions.
- You must implement a page that shows a table that lists of all the food consumed over a selected period of time, along with the calories and macros that are contained in the quantity of food specified. You must implement this page in such a way that clicking on the column headings will make your page sort based on that column. First click should sort in ascending order, a second should sort in descending order, and subsequent clicks just toggle that back and forth.
- You must implement a page that allows the user to enter their workouts.
- You must implement a page showing workouts over a given time period, including estimated calories burned, and any other relevant information, for each workout. Statistics such as total calories and average calories per workout should be displayed on this page as well.
- Can I work alone?
- Can I use X library?
- Can I use AJAX or similar?
- Yes. However, just as before, the code that does the work must be written by the people in the group.