A web application for designing, tracking, and reporting progress on workouts. Written in JavaScript with React, Redux, Material UI, and hosted by a serverless AWS backend.
For example, when viewing Workouts, the app title should say "Workouts". This requires changes to AppContainer, an addition to AppReducer for current page title, and additions throughout routeable components to update the title upon load.
Expected behavior is that a blank screen with a spinner is shown while initial calendar data is fetched. Actual behavior is that the calendar is displayed with the currently loaded Excercises, and the spinner is shown overlayed.
Suppress display of the Calendar component until the initial fetches are complete.
Display a table with columns for each metric in the data set (map and reduce)
Map results to appropriate columns (columns as props, row factory? needs design)
Ability to filter by exercise by passing id in route
Exercise metrics may change over time. Columns in the history table should be dynamic in that if an Exercise contains a metric, it should be displayed in a column. Exercises in the same data set lacking that metric will have a blank column or potentially N/A.
Perhaps keyed on user id and Workout id. Investigate table scanning methods to determine the best way to implement. The goal is to support the scale of completed Workouts.
It appears as though the default route is attempting to fetch details for the dashboard and getting the above errors, which is what causes the redirect to /login. The code needs to be updated to check for a valid session prior to requesting data or displaying components.
Follow the patterns used for Workout history. Data will need to be pulled from Workouts first, then exercises will need to be extracted and aggregated.
Presently, the FAB on ExerciseForm opens the History dialog. When the Progress dialog (#146) has been implemented, update this component to allow display of the History and Progress dialogs.
Ideas:
Change the existing FAB to an info icon, and when clicked display two mini FABs for history and progress
Open a menu when the FAB is clicked and display history and progress options
Use a vertical dot menu for the history and progress options, and change the FAB to start/stop controls for the exercise (this is consistent with the rest of the app, but I'm not sure I like it here)
Presently certain components are restricted in width to display on mobile (Exercise/Routine cards, WorkoutExerciseForm)
Exercise/Routine should have a default width for desktop/large displays and should have responsive width on mobile/small displays
WorkoutExerciseForm can expand the entire width of the screen (similar to other Workout related components) but should have a responsive width for mobile/small displays