Code Monkey home page Code Monkey logo

Comments (34)

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 21, 2021, 16:00

requested review from @11712616

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/models/exercises/exercise_attribute.dart line 1

I would rename this to ExerciseLogging or something like that (something that reflects the "purpose" of the object, which is to declare how an exercise can be logged) as ExerciseAttribute could refer to anything. Furthermore, I think it does not make much sense to have an enumeration like that and be able to assign a list of "attributes" to an exercise. In my opinion, it would either have to be an enumeration of tuples (band-reps, weight-reps, weight-time etc.) or two enumerations that can be combined to form tuples with one element being an object of one enumeration and the other element being an object of the other enumeration (the first enumeration contains band, weight, distance, the second time and reps). And they would most certainly have to be displayed as tuples (weight × reps etc.).

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/widgets/main_app_bar.dart line 27

Is it possible to turn this plain text title into a "link" (with the same text) to the start screen, i.e. the workout of today?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/widgets/main_app_bar.dart line 46

I would restrict the display of the date picker to the start screen or screen when viewing a logged workout on a given day, respectively. As discussed privately, in combination with the comment about the Workout Overview, this would result in the workout overview being accessed by clicking on the respective list element in the hamburger menu: The screen when clicking on this element and the start screen of the app initially display the workout(s) logged today. Past workouts can be accessed by selecting the given date with the date picker. If a date is selected, the screen displays the workout(s) done on the selected date; the rest of the screen stays the same.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/models/exercises/exercise_tag.dart line 1

As far as I understand, this class is used for distinguishing different muscle groups? If yes, I would rename it to MuscleGroup; the name ExerciseTag sounds rather general.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/widgets/app_drawer.dart line 44

I would rename the Workout Overview tile/component to something like Log/Workout Log/Training Log (I am open to your ideas) and introduce another tile Workouts here (between Exercises and Programs) that leads to an overview of saved workouts where one can also create a new workout. What do you think?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 22, 2021, 21:18

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

I know that the sketches I made are very confusing and I had not been quite sure about how this should look like myself; however, after some reconsideration, I would say that this SpeedDial should only contain Copy Exercise and Log Exercise. Adding a new exercise/training program/workout should be done in the respective overview (exercise overview etc.).

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 09:00

Commented on client/lib/widgets/main_app_bar.dart line 27

As discussed privately, this is not a good idea since it is uncommon and counter-intuitive.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 11:06

Commented on client/lib/models/exercises/exercise_tag.dart line 1

I started with MuslceGroup, but changed it to Tag because there are also exercises that are not explicitly targeting specific muscle groups, e.g. Cardio or - if we want to allow exercises without dedicated groups/tags, an Other or Miscellaneous group. That's why I made it more general. If that doesn't bother you, I can change it back to MuscleGroup.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 11:06

Commented on client/lib/widgets/app_drawer.dart line 44

That would diverge even more from your sketches (you didn't even have the 'Workout Overview' in the drawer) require workouts to be able to exist independently from training programs such that programs just "consume" pre-existing workouts. That opens up the question if changes (e.g. adding an exercise to a workout that is in a training program) will propagate to the original one (which happens automatically if the program just referneces to the program) or if a workout to be incorporated in a program is just duplicated such that subsequent changes are not reflected in the source workouts.

The workout overview is okay, but how are workouts to be used in programs handled?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 11:06

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

ok.
When logging an exercise, how is the connection to the workout or training program it potentially stems from made?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:40

Commented on client/lib/widgets/main_app_bar.dart line 46

changed this line in version 2 of the diff

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:40

Commented on client/lib/widgets/app_drawer.dart line 44

changed this line in version 2 of the diff

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:40

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

changed this line in version 2 of the diff

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:40

added 4 commits

  • 90681fd7 - 33: Review: SpeedDial
  • f0c6a563 - 33: Review: MainAppBar
  • 6fc7a27e - 33: Review: Rename WorkoutOverview
  • 4d46e1c0 - 33: Review: Separate WorkoutOverviewScreen

Compare with previous version

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:41

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

-> 90681fd7f3a428d1bad52312ad933e31161c74c0

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:41

Commented on client/lib/widgets/main_app_bar.dart line 46

-> f0c6a5632836fcf9ef6e800c5da0e7dda9af0f73

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:41

Commented on client/lib/models/exercises/exercise_attribute.dart line 1

As discussed in private, this has to be specified by the domain model and/or server and goes beyond the scope of simple UI mockups.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 12:41

Commented on client/lib/widgets/app_drawer.dart line 44

-> rename: 6fc7a27e27342f04cff88e147b950d7cddbbc5b6
-> workout overview screen: 4d46e1c03902c15bbef93673c0947c973315f565

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 12:46

Commented on client/lib/models/exercises/exercise_tag.dart line 1

I would stick with MuscleGroup as cardio exercises also train a specific muscle - the heart (cardiovascular system) ;)

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 12:46

Commented on client/lib/widgets/app_drawer.dart line 44

My bad - I somehow thought that we wanted to save workouts although we explicitly discussed this matter and agreed not to implement such functionality. Please forget the handling of workouts and the Workouts tile. A workout "scheme" (if you have a better idea on how to name this, please correct me; I would like to differentiate between "workouts" that are part of a training program and actually logged workouts since calling both of them "workout" is quite confusing) does not exist independently from a training program.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 12:46

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

I would like to revise my initial comment. The SpeedDial should contain (from bottom to top) Log Exercise, Copy (Previous) Workout and Log Workout (from Training Program) (which is currently New Workout as far as I understand).

Firstly, Log Exercise lets the user add an exercise to a logged workout. This is not related to a workout/training program the exercise "stems from". In my opinion, it does not make much sense to only log one exercise of a workout from a training program. If a user would like to do that, he/she can use the Log Workout button, log the desired workout and delete all exercises from it except for the one he/she would like to log. Since the use case is not very realistic/probable, this workaround is acceptable from my point of view. Hence, the logged exercise, in this case, simply "stems from" the exercise list, which in consequence means that there are no predefined sets or anything.
In general (this is not relevant for the mockups, but maybe useful in understanding the general workflow I have in mind): If there is no workout logged yet, a new workout is created and the exercise is added. If there is already at least one workout logged for the given day, the user has to select to which workout the exercise should be added.

Secondly, Copy (Previous) Workout (not sure if the "Previous" is necessary) lets the user copy a previously logged workout. What I have in mind here is that clicking this element results in a date picker popping up that lets the user choose the date of the workout he/she would like to copy. For example: Today, on September 23, I did the same exercises as last week, on my first workout on September 16 (let's assume that I am a freak who did two workouts that day). Therefore, instead of logging all the exercises again, I simply click Copy (Previous) Workout, select September 16, select the first workout from a list of logged workouts (if there is only one, then this list is obsolete, should probably be an if statement) et voilà, I have the workout logged for today and can edit the "log entry".

Lastly, Log Workout (from Training Program) (not sure if the "from Training Program" is necessary) lets the user log a workout that is predefined in a training program. For example: Today I am starting a new training program: "Beach Body 2022". Hence, I click Log Workout, select "Beach Body 2022", select the first week and select the first day (assuming that the first day only contains one workout; if this is not the case, then I would have to select the workout as well). In consequence, the workout (containing all corresponding exercises and sets) is now logged for today. When implementing this, it would probably make sense to add a "shortcut" that lets the user add the "next" planned workout. For example, if it's the second day I am doing the training program, choosing this option automatically logs the workout(s) on the first day of the first week of the program. But this is not relevant until we actually implement this feature.

Another possibility is to combine the Copy Workout and Log Workout (from Training Program) into one element Log Workout: When clicking this element, the user has to choose between those two options (copy previous logged workout or get workout from training program). The further behavior is as described above for the respective options.

This description and reasoning, respectively, probably goes in too much detail for the mockups. I just wanted to (try to) clarify my thoughts and explain what I have in mind so that for further work, we can possibly build upon this discussion. What are your thoughts?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 14:01

Commented on client/lib/models/exercises/exercise_tag.dart line 1

changed this line in version 3 of the diff

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 14:01

added 2 commits

  • 64073bc4 - Revert "33: Review: Separate WorkoutOverviewScreen"
  • e0ed28e0 - 33: Review: ExerciseTag -> MuscleGroup

Compare with previous version

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 14:02

Commented on client/lib/widgets/app_drawer.dart line 44

-> 64073bc40f699e28f16f26e1f714738e6d3eddcd

As for the actually logged workouts, maybe something like LoggedWorkout or WorkoutLog. But that's not inherently important for this MR.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 14:02

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

Sounds good. But what do you want now, the three buttons you mentioned in the beginning or the two buttons with a dialog? The latter option would help me because I have no idea what third icon I should use to distinguish the two "log" actions. However, it could be annoying to be asked the same thing over and over again when trying to log something. You decide.

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 14:02

Commented on client/lib/models/exercises/exercise_tag.dart line 1

-> e0ed28e0f9c487ea54c20ede107219c0d7f75844

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 18:07

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

For now, I kind of have a slight tendency to the first option... I would suggest a dumbbell icon for Log Exercise, a copy icon for Copy Workout and if possible, a clipboard icon for Log Workout. Is that okay for you?

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 18:16

added 1 commit

  • 4ee8c158 - 33: Review: Add Log Exercise

Compare with previous version

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 18:17

Commented on client/lib/widgets/workouts/workout_overview_screen.dart line 71

yes.
-> 4ee8c158034052e625790b97e388f6f55e6b6973

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 18:38

resolved all threads

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11712616 on Sep 23, 2021, 18:38

approved this merge request

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 20:37

added 1 commit

  • 279701f - 33: Incorporate Review Suggestions

Compare with previous version

from witness.

raffaelfoidl avatar raffaelfoidl commented on August 21, 2024

In GitLab by @11775820 on Sep 23, 2021, 20:53

mentioned in commit 4cbef75

from witness.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.