Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Share/export #5

Closed
another-sapiens opened this issue Aug 12, 2021 · 16 comments
Closed

[Feature request] Share/export #5

another-sapiens opened this issue Aug 12, 2021 · 16 comments
Labels
enhancement New feature or request

Comments

@another-sapiens
Copy link
Contributor

Hi there!
An export feature would be beneficial for users with multiple devices (or who just bought a new phone and are too lazy to rewrite the steps).

If there's an import option that doesn't override the current Plans, would it be possible to save a file with just 1 plan, so it can later be imported by another user?
(Sorry, I don't know how this works yet)

In any case, exporting/importing everything all at once would be quite handy, what do you think?

Thank you!

@Glitchy-Tozier
Copy link
Owner

Glitchy-Tozier commented Aug 12, 2021

Hi and thank you for taking the time to write this feature-request!

Currently two main things can be found in the database:

  • A list of all habit-plans
  • The current progress

Is your proposal to

  1. only import/export a habit-plan or do you mean
  2. importing/exporting both the current habit-plan as well as the current progress?

The first proposal (only the static habit-plan) should be easy, I could simply let the user copy some text and then import it somewhere else.
{id: 1, isActive: 1, fullyCompleted: 0, goal: Consistently go jogging, requiredReps: 0, steps: ["Dress up and step outside on the street. Then go back and do whatever you want to do.","Take a walk around your house/building","Take a walk spanning 3-5 buildings","Jog around 3-5 buildings","Go jogging. Well done."], comments: ["Dress up in your running-gear for each challenge, even for the first one.","Whatever step you're on, don't overdo it. We want to go jogging CONSISTENTLY, not twice and then have a hurting foot for a week."], trainingTimeIndex: 0, requiredTrainings: 21, requiredTrainingPeriods: 1, lastChanged: 2021-08-12 09:17:31.710358}

Implementing the second proposal may be difficult though, as the current progress is actually a pretty long string and I'm not sure it's possible to copy that much text.
{habitPlanId: 1, isActive: 1, fullyCompleted: 0, lastActiveDate: null, currentStartingDate: 2021-08-13 00:00:00.000, goal: Consistently go jogging, steps: [{"index":0,"number":1,"text":"Dress up and step outside on the street. Then go back and do whatever you want to do.","durationInHours":24,"trainingPeriods":"[{\"index\":0,\"number\":1,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"waiting for start\",\"trainings\":\"[{\\\"number\\\":1,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":2,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":3,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":4,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":5,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":6,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":7,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":8,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":9,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":10,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":11,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":12,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":13,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":14,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":15,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":16,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":17,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":18,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":19,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":20,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":21,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":22,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":23,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":24,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":1,"number":2,"text":"Take a walk around your house/building","durationInHours":24,"trainingPeriods":"[{\"index\":1,\"number\":2,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":25,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":26,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":27,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":28,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":29,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":30,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":31,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":32,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":33,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":34,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":35,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":36,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":37,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":38,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":39,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":40,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":41,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":42,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":43,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":44,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":45,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":46,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":47,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":48,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":2,"number":3,"text":"Take a walk spanning 3-5 buildings","durationInHours":24,"trainingPeriods":"[{\"index\":2,\"number\":3,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":49,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":50,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":51,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":52,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":53,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":54,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":55,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":56,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":57,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":58,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":59,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":60,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":61,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":62,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":63,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":64,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":65,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":66,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":67,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":68,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":69,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":70,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":71,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":72,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":3,"number":4,"text":"Jog around 3-5 buildings","durationInHours":24,"trainingPeriods":"[{\"index\":3,\"number\":4,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":73,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":74,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":75,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":76,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":77,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":78,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":79,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":80,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":81,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":82,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":83,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":84,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":85,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":86,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":87,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":88,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":89,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":90,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":91,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":92,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":93,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":94,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":95,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":96,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":4,"number":5,"text":"Go jogging. Well done.","durationInHours":24,"trainingPeriods":"[{\"index\":4,\"number\":5,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":97,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":98,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":99,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":100,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":101,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":102,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":103,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":104,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":105,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":106,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":107,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":108,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":109,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":110,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":111,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":112,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":113,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":114,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":115,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":116,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":117,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":118,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":119,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":120,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-18 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"}]}

@Glitchy-Tozier
Copy link
Owner

What should be possible is to save both strings in a textfile that you could import/export... the main problem is that I'd like this app to run on no permissions. (no internet, no reading calendar/contacts, and no creating/editing specific files)
This is what makes this file-import/export option difficult, especially the import.

@another-sapiens
Copy link
Contributor Author

@Glitchy-Tozier

{habitPlanId: 1, isActive: 1, fullyCompleted: 0, lastActiveDate: null, currentStartingDate: 2021-08-13 00:00:00.000, goal: Consistently go jogging, steps: [{"index":0,"number":1,"text":"Dress up and step outside on the street. Then go back and do whatever you want to do.","durationInHours":24,"trainingPeriods":"[{\"index\":0,\"number\":1,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"waiting for start\",\"trainings\":\"[{\\\"number\\\":1,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":2,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":3,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":4,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":5,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":6,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":7,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":8,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":9,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":10,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":11,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":12,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":13,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":14,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":15,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":16,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":17,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":18,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":19,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":20,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":21,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":22,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":23,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-13 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":24,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-13 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":1,"number":2,"text":"Take a walk around your house/building","durationInHours":24,"trainingPeriods":"[{\"index\":1,\"number\":2,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":25,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":26,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":27,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":28,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":29,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":30,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":31,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":32,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":33,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":34,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":35,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":36,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":37,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":38,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":39,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":40,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":41,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":42,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":43,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":44,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":45,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":46,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":47,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-14 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":48,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-14 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":2,"number":3,"text":"Take a walk spanning 3-5 buildings","durationInHours":24,"trainingPeriods":"[{\"index\":2,\"number\":3,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":49,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":50,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":51,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":52,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":53,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":54,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":55,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":56,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":57,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":58,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":59,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":60,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":61,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":62,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":63,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":64,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":65,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":66,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":67,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":68,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":69,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":70,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":71,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-15 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":72,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-15 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":3,"number":4,"text":"Jog around 3-5 buildings","durationInHours":24,"trainingPeriods":"[{\"index\":3,\"number\":4,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":73,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":74,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":75,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":76,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":77,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":78,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":79,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":80,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":81,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":82,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":83,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":84,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":85,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":86,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":87,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":88,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":89,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":90,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":91,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":92,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":93,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":94,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":95,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-16 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":96,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-16 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"},{"index":4,"number":5,"text":"Go jogging. Well done.","durationInHours":24,"trainingPeriods":"[{\"index\":4,\"number\":5,\"durationInHours\":24,\"durationText\":\"hour\",\"requiredTrainings\":21,\"status\":\"\",\"trainings\":\"[{\\\"number\\\":97,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 00:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 01:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":98,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 01:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 02:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":99,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 02:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 03:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":100,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 03:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 04:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":101,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 04:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 05:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":102,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 05:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 06:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":103,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 06:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 07:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":104,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 07:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 08:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":105,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 08:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 09:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":106,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 09:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 10:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":107,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 10:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 11:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":108,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 11:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 12:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":109,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 12:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 13:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":110,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 13:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 14:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":111,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 14:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 15:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":112,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 15:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 16:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":113,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 16:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 17:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":114,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 17:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 18:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":115,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 18:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 19:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":116,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 19:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 20:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":117,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 20:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 21:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":118,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 21:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 22:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":119,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 22:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-17 23:00:00.000\\\",\\\"status\\\":\\\"\\\"},{\\\"number\\\":120,\\\"durationInHours\\\":1,\\\"requiredReps\\\":0,\\\"doneReps\\\":0,\\\"startingDate\\\":\\\"2021-08-17 23:00:00.000\\\",\\\"endingDate\\\":\\\"2021-08-18 00:00:00.000\\\",\\\"status\\\":\\\"\\\"}]\"}]"}]}

Okay, I just tried to copy it, and it seems to be working. Not sure if the copying length varies among devices, though.
Maybe a little button to copy it, and then another one that brings up prompt to paste it would make the feature possible. The user could just manually paste it into a file, so as to avoid the permissions, and then re-copy it when necessary. Maybe a menu or small text with instructions would be helpful for the less tech-savvy.

Would that work out?

@Glitchy-Tozier
Copy link
Owner

I think i know how I'd design that page, it's kind of similar to what you suggested.

I'll start with working on import/export for a habit-plan (but not the current progress) for now, and eventually I'll probably give in and extend it further. ;)

@another-sapiens
Copy link
Contributor Author

Awesome! :D
Also, if the user can manually override the progress by skipping the previous weeks/steps when importing the habit, it won't be necessary to import the progress too, as they'll probably (hopefully) remember where they where.

@Glitchy-Tozier
Copy link
Owner

Luckily, this option already exists, letting you start from a step of your choice when you start a new habit:
Screenshot_20210812-203752.jpg

Out of curiosity: Did you just think this option would be useful or do you actually use multiple devices?

@another-sapiens
Copy link
Contributor Author

another-sapiens commented Aug 12, 2021

Luckily, this option already exists

Ah! Looks like I've missed it. Then importing the progress isn't necessary, as setting it is just 2 taps away.

Out of curiosity: Did you just think this option would be useful or do you actually use multiple devices?

I have 2 devices, but I can't install much on the tablet as its storage is very low (says 8gb, it's actually 4gb, and 2gb are occupied by the system itself, according to DiskUsage).
Nevertheless, I thought it could be useful to others. And myself if I ever get more storage-power. xD

@falzonv
Copy link

falzonv commented Aug 13, 2021

Hello @Glitchy-Tozier,

I just discovered your app and the step-by-step idea looks quite interesting, nice idea!

To manage export/import without read/write permissions, it is possible to use the Android Storage Access Framework (SAF) which will grant a special read or write permission on a user-selected file.

You can find a practical example of this in the files ActivityExportImport.java and ExternalFile.java from my own app.
The first file displays the file pickers using Intents (indicating upfront if it is for read or write). When the user has selected a file (new filename for write, or existing filename for read), an Uri pointing to this location is returned and used in methods from the second file. It is also the first file which manages the export preparation and the import loading.

If you are not using Java the way to do it may be different, but maybe it would give some other ideas :-)

Best regards.

@Glitchy-Tozier
Copy link
Owner

I just discovered your app and the step-by-step idea looks quite interesting, nice idea!

Thank you, I hope it's useful to people (and me)

To manage export/import without read/write permissions, it is possible to use the Android Storage Access Framework...

Very interesting, I was wondering how apps like FlorisBoard manage to do something like theme import/export without storage permissions!

This app was written in Dart (using Flutter), but I'm sure they also provide great options for what you described.

For now I'll stick to letting the user copy&paste text, as I think it's the easiest and most understandable.

@Glitchy-Tozier
Copy link
Owner

If you don't mind, could you give me feedback on something different?

I don't think the term "steps" is a good one. It doesn't properly convey the "gradual-ness". Instead, it makes me think of doing things that are completely different and possibly unrelated to each other. Like

Get the house cleaned

  1. Tidy up garage
  2. Mow lawn
  3. Give away stuff you don't need.

The app can be used this way, but it is not intended. You'd be better off using a regular to-do app.

So the question raises itself: What would be a better word than "step"?

I really like the word "degree" and what it implies.
You define degrees of your final habit, then you work yourself up towards the real thing.

Do you have any other ideas?

@falzonv
Copy link

falzonv commented Aug 15, 2021

Having a look at FlorisBoard, the file managing this is ThemeManagerActivity.kt, so here is the Kotlin version :-)

This app was written in Dart (using Flutter), but I'm sure they also provide great options for what you described.

=> I am not familiar with these technologies but you are probably right, the opposite would be surprising.

For now I'll stick to letting the user copy&paste text, as I think it's the easiest and most understandable.

=> If the text is as long as shown in your comment, I am not sure the copy/paste would be the most user-friendly approach (it may also introduces mistakes if, for some reasons external to your app, the initial selection was not complete).
Unless they have a text editor app, users may also not know how to create a new file on their system to paste the text.

But I think the copy/paste would be a good first step to implement.
Then if you decide to migrate to export/import files, you can easily reuse the string generated for copy as content of the export file, and the methods used to parse the pasted text can also be reused to load the import.


What would be a better word than "step"?

Maybe "level" could also work?
It would give "Level 1", "Level 2", etc. like in games.

@Glitchy-Tozier
Copy link
Owner

Glitchy-Tozier commented Aug 15, 2021

But I think the copy/paste would be a good first step to implement.
Then if you decide to migrate to export/import files, you can easily reuse the string generated for copy as content of the export file, and the methods used to parse the pasted text can also be reused to load the import.

Exactly!


The implementation of import/export itself shouldn't be too difficult, but I'm currently stuck thinking about how to let the user navigate to those screens.

A lazy option could be to add them to the speed-dial-FloatingActionButton in the homeScreen, but this seems overkill and confusing, as it's a rarely used function.
Screenshot_20210815-113716.jpg

Another thought I really like is to let the user import a habit on the editHabit-screen as the file-contents can then be written into the TextFormFields (here: )
Screenshot_20210815-115158.jpg

... and put the export on the habitDetails-screen (here: )
Screenshot_20210815-115337.jpg

The main dilemma persists, though: How to place those screens in a way that

  1. Doesn't mess up the existing design
  2. Can be found & activated easily
  3. IS NOT TOO IN-YOUR FACE for a feature that'll seldomly be used.
    I don't want to confuse new users into thinking that they need to import a habit-plan.

I'll be thinking about those problems and once I come up with a solution, I'll start working on import/export.

@Glitchy-Tozier
Copy link
Owner

Glitchy-Tozier commented Aug 15, 2021

Maybe "level" could also work?
It would give "Level 1", "Level 2", etc. like in games.

That's a good idea, too. It's a close contender (and it actually was the original name for "step", long before releasing the app).

@Glitchy-Tozier
Copy link
Owner

I have implemented an functionality. Currently it's done via the native share dialogue, where you can decide where to send the habit-plan-json.
However, I agree that files (instead of copied text) would be a more elegant solution, so I may look into that in the future.
Thank you for the feature request and the information! :)

@another-sapiens
Copy link
Contributor Author

F-Droid just brought the newest update into the repo!
I tested it and it seems to be working perfectly. Great work! :D

@Glitchy-Tozier
Copy link
Owner

F-Droid just brought the newest update into the repo!
I tested it and it seems to be working perfectly. Great work! :D

Thank you for testing, that's great to hear!

I was really afraid the app would crash on every device because i changed something in the database-structure, but apparently I implemented everything correctly :)

@Glitchy-Tozier Glitchy-Tozier added the enhancement New feature or request label Sep 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants