...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "config": { // All clients listen here permanently "articleBaseUrl": "http://cloud-storage.com/articles/" }, "users": { "user_id_01": { // Clients listen here permanently "username": "user", "email": "user@somewhere.com", "fitnessLevel": 10, "fitnessBias": 1, "created": 987654345, // Unix timestamp (seconds) "maxImpactCredit": 3, "impactCredit": 0.9, "updatedIC": 987654345, // Unix timestamp (seconds) "apnIds": [] } }, "visibleWorkoutDefs": { // Workout defs that are visible to the user "user_id_01": { "visibleIn7MW": { // 7MW Clientsclients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "wktdef1": { "recommended": "", // Not recommended, just visible "locked": true, // Not available to user (unlocked via IAP and/or journey trigger) "lockString": "Finish 6 more workouts before Thurs 9th June", // Displayed to user "MWI": 0.54, "breakdown": { "epoc": 0.1, "cardio": 0.1, "metabolic": 0.1, "strength": 0.1 } }, "wktdef2": { "recommended": "You need to work on your abs", // Recommended and reason for this to be shown to user "locked": false, // Available to user "lockString": "", "MWI": 0.54, "breakdown": { "epoc": 0.1, "cardio": 0.1, "metabolic": 0.1, "strength": 0.1 } } } } }, "workouts": { }, "activities": { "user_id_01"visibleInAfterburner": { // Afterburner Clientsclients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "workout_id_01wktdef1": { // Clients post new activity to here with auto id, server listens "recommended": "", // Not recommended, just visible "workoutDefIdlocked": "wktdef1"false, // Available to user "finishlockString": 987654345, // Unix timestamp (seconds)"", "exertionMWI": 0.554, "finalHeartRateBPMbreakdown": 160,{ "finalHeartRateDelayepoc": 0.1, // Length of delay (in secs) after the workout before the HR was measured (0 if they didn't press the 'start again' button) "cardio": 0.1, "metabolic": 0.1, } } "strength": 0.1 }, "results": { "user_id_01": { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved } }, "workout_id_01wktdef2": { // Server posts workout results here "recommended": "You need to work on "workoutDefId": "wktdef1your abs", // Recommended and reason for this to be shown to user "finishlocked": 987654345false, // UnixAvailable timestampto (seconds) user "AWIlockString": 0.1"", "responseDurationMWI": 34560.54, "intensitybreakdown": 0.9,{ "responsesepoc": {0.1, "cardio": {0.1, "stressmetabolic": 430.1, "magnitudeProductstrength": 0.6,1 } "halflifeProduct": 0.3, } } "duration": 5678,} }, "workouts": { "volumeactivities": 3456{ "user_id_01": { // Clients listen here permanently for }ChildAdded, ChildChanged and ChildRemoved "strengthworkout_id_01": { // Clients post new activity to here with "stress": 43auto id, server listens "magnitudeProductworkoutDefId": 0.6"wktdef1", "halflifeProductfinish": 0.3987654345, // Unix timestamp (seconds) "durationexertion": 56780.5, "finalHeartRateBPM": 160, "volume": 3456 "finalHeartRateDelay": 0 // Length of delay },(in secs) after the workout before the HR was measured (0 if "epoc": { they didn't press the 'start again' button) } "stress": 43, } }, "magnitudeProductresults": 0.6,{ "user_id_01": { // Clients listen here permanently "halflifeProduct": 0.3for ChildAdded, ChildChanged and ChildRemoved "durationworkout_id_01": 5678,{ // Server posts workout results here "volumeworkoutDefId": 3456"wktdef1", }"finish": 987654345, // Unix timestamp (seconds) "metabolicAWI": { 0.1, "stressresponseDuration": 433456, "magnitudeProduct": "intensity": 0.69, "halflifeProductresponses": 0.3,{ "durationcardio": 5678,{ "volumestress": 345643, } "magnitudeProduct": 0.6, }, "muscleGroupshalflifeProduct": 0.3, { "upperduration": 0.35678, "lowervolume": 0.3,3456 "core": 0.4}, } "strength": { } } "stress": 43, } }, "afterburnmagnitudeProduct": { 0.6, "user_id_01halflifeProduct": { // Clients listen here permanently0.3, "startduration": 3456789875678, // Unix timestamp (seconds) "responsevolume": {3456 "resolution": 600}, // Secs "epoc": [0.6,0.5,0.3,0.2,0.1,0.0],{ "cardiostress": [0.6,0.5,0.3,0.2,0.1,0.0],43, "strengthmagnitudeProduct": [0.6,0.5,0.3,0.2,0.1,0.0], "metabolic": [0.6,0.5,0.3,0.2,0.1,0.0] "halflifeProduct": 0.3, }, "impactCreditduration": {5678, "resolutionvolume": 600,3456 // Secs "futureCredit": 0.9, }, "pendingmetabolic": [0.0,0.1,0.2,0.3,0.4,0.5]{ }, "messagesstress": [43, // Messages displayed below the radar chart {"tmagnitudeProduct": 0,"body":"Restoring body temperature", "detail": ""},.6, "halflifeProduct": 0.3, {"t":120,"body":"Replenishing glycogen stores", "detailduration": "detail/glycogen"}5678, ], "notificationsvolume": [3456 {"t":6000,"body":"Great workout! You're still burning calories and building strength." } }, { "tmuscleGroups":14400,"body":"Fitness test unlocked! You're ready to take another fitness test."} { "upper": 0.3, ] } }, "timelineArticleslower": {0.3, "user_id_01": { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "core": 0.4 "article_id_01": { } "date": 4567890987, // Unix timestamp (seconds) } } } "title": "Post title"}, "afterburn": { "readuser_id_01": false, { // Clients listen here permanently "locationstart": "post/location.html", "icon": "default" } } }, "journeyTriggers: { "trigger01345678987, // Unix timestamp (seconds) "response": { "category": "achievement", "triggerType": "activitiesInDays", "triggerValAresolution": 7600, // 7Secs activities "triggerValB": 7, // in 7 days "actionsepoc": [ {"action":"post","articleId":"article_id_01","data":"e.g. url parameters"}, {"action":"unlock","itemId":"workoutDef_id_01","articleId":"article_id_02","data":""} ] }, "trigger02": { "category": "education", "triggerType": "totalActivities", "triggerValA": 10, // 10 activities "triggerValB": 0, // Not used "actions": [ {"action":"post","articleId":"article_id_01","data":"e.g. url parameters"} ] } }, "definitions": { "version": 1, "exerciseDefs": { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "exdef1": { "behaviour": 1, "title": "Cruches", "video": "01-Crunches.mp4", "image": "abs", "desc": "A crunch begins with lying face up on the floor with knees bent. The movement begins by curling the shoulders towards the pelvis. The hands can be behind or beside the neck or crossed over the chest. Injury can be caused by pushing against the head or neck with hands.", "subtitle": "Target your abs for a balanced set of stomach muscles.", "calPerSec": 5, "skill": 0.2, "strength": 0.7, "cardio": 0.1, "epoc": 0.4, "metabolic": 0.4, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef2": { "behaviour": 1, "title": "Squats", "video": "02-Squats.mp4", "image": "abs", "desc": "Squats are an excellent exercise for training the lower body and core muscles, if done regularly they help to define thighs and buttocks.", "subtitle": "Train your lower body and core.", "calPerSec": 4, "skill": 0.2, "strength": 0.6, "cardio": 0.3, "epoc": 0.4, "metabolic": 0.6, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef3": { "behaviour": 1, "title": "Planks", "video": "03-Plank.mp4", "image": "abs", "desc": "The plank helps you to build strength in your core, upper and lower body so its a good full body work out. You do not need any equipment to perform this exercise all you need is a bit of space, and it really helps improve flexibility by stretching muscles and will improve posture if performed regularly.", "subtitle": "Work out your core muscles.", "calPerSec": 6, "skill": 0.3, "strength": 0.5, "cardio": 0.2, "epoc": 0.4, "metabolic": 0.4, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef4": { "behaviour": 1, "title": "Push Ups", "video": "04-PushUps.mp4", "image": "abs", "desc": "The push up is a great muscle toning exercise for the arms, chest, triceps and the front of the shoulders, whether performed on the knees or toes this is a good strength building exercise that can be performed anywhere.", "subtitle": "Train your upper body.", "calPerSec": 3, "skill": 0.1, "strength": 0.8, "cardio": 0.2, "epoc": 0.6, "metabolic": 0.6, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef5": { "behaviour": 1, "title": "Side Plank", "video": "06-SidePlank.mp4", "image": "abs", "desc": "The side plank helps you to build strength in your core, upper and lower body so its a good full body work out. It helps improve flexibility by stretching muscles and will improve posture if performed regularly.", "subtitle": "Target your abs for a balanced set of stomach muscles.", "calPerSec": 5, "strength": 0.7, "cardio": 0.2, "epoc": 0.5, "metabolic": 0.5, "skill": 0.2, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef6": { "behaviour": 1, "title": "Jumping Jacks", "video": "33-JumpingJack.mp4", "image": "abs", "desc": "Jumping Jacks are the original circuit training exercise that evenly targets your muscle groups to elicit a strong cardiovascular response.", "subtitle": "Get those heart muscles jumping!", "calPerSec": 6, "strength": 0.1, "cardio": 0.8, "metabolic": 0.6, "epoc": 0.6, "skill": 0.1, "upper": 0.5, "core": 0.5, "lower": 0.5 }, "exdef7": { "behaviour": 1, "title": "Burpees", "video": "42-Burps.mp4", "image": "abs", "desc": "Burpees are a full body exercise which work virtually every muscle in the body, this means that you can burn more calories in a lot less time.", "subtitle": "Burpees are tough but well worth your time.", "calPerSec": 6, "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6, "skill": 0.3, "upper": 0.5, "core": 0.5, "lower": 0.5 } }, "workoutDefs": { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "wktdef1": { "type": 1, "title": "Aerobic", "image": "abs", "desc": "Aerobic Basic Movement", "breakDuration": 5, "appStoreId: "workout01", "exercises": [ { "id": "exdef1", "duration": 20 }, { "id": "exdef2", "duration": 15 }, { "id": "exdef3", "duration": 10 }, { "id": "exdef4", "duration": 5 }, { "id": "exdef5", "duration": 10 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "core": 10 } }, "wktdef2": { "type": 1, "title": "Thai Boxing", "image": "abs", "desc": "Boxing With Kicking", "breakDuration": 4, "appStoreId: "workout02", "exercises": [ { "id": "exdef5", "duration": 15 }, { "id": "exdef3", "duration": 10 }, { "id": "exdef1", "duration": 5 } ], "stress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "core": 10 } }, "wktdef3": { "type": 1, "title": "Silat", "image": "abs", "desc": "Traditional Martial Arts", "breakDuration": 5, "appStoreId: "workout03", "exercises": [ { "id": "exdef4", "duration": 5 }, { "id": "exdef5", "duration": 10 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "core": 10 } }, "wktdef4": { "type": 1, "title": "OCD", "image": "abs", "desc": "Modern Exercise", "breakDuration": 6, "appStoreId: "workout04", "exercises": [ { "id": "exdef3", "duration": 20 }, { "id": "exdef2", "duration": 15 }, { "id": "exdef4", "duration": 5 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "core": 10 } }, "wktdef5": { "type": 1, "title": "Warming Up", "image": "abs", "desc": "Basic", "breakDuration": 5, "appStoreId: "workout05", "exercises": [ { "id": "exdef2", "duration": 20 }, { "id": "exdef2", "duration": 15 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { 0.6,0.5,0.3,0.2,0.1,0.0], "uppercardio": 10[0.6,0.5,0.3,0.2,0.1,0.0], "lowerstrength": 10[0.6,0.5,0.3,0.2,0.1,0.0], "coremetabolic": 10 }[0.6,0.5,0.3,0.2,0.1,0.0] }, "wktdef6impactCredit": { "typeresolution": 1600, // Secs "titlefutureCredit": "6 Min Strength"0.9, "imagepending": "abs",[0.0,0.1,0.2,0.3,0.4,0.5] }, "descmessages": "Quick[ workout// thatMessages targets strength building, increasing your restimng metabilic rate.",displayed below the radar chart "breakDuration{"t":0,"body": 5"Restoring body temperature", "detail"appStoreId: "workout06"}, "exercises{"t":120,"body":"Replenishing glycogen stores", "detail": ["detail/glycogen"} ], { "notifications": [ {"idt": "exdef1", 6000,"body":"Great workout! You're still burning calories and building strength."}, "duration{"t":14400,"body":"Fitness 55test unlocked! You're ready to take another },fitness test."} ] { } }, "timelineArticles": { "user_id_01": "exdef4", "duration": 55 }, { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "article_id_01": { { "date": 4567890987, // Unix timestamp (seconds) "idtitle": "exdef5Post title", "durationread": 55false, "location": }, "post/location.html", "icon": "default" } { } }, "journeyTriggers: { "trigger01": { "idcategory": "exdef1achievement", "triggerType": "activitiesInDays", "durationtriggerValA": 557, // 7 activities }"triggerValB": 7, // in 7 days "actions": [ { "id": "exdef4", "duration": 55 }, { "id": "exdef5", "duration": 55 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, {"action":"post","articleId":"article_id_01","data":"e.g. url parameters"}, {"action":"unlock","itemId":"workoutDef_id_01","articleId":"article_id_02","data":""} ] }, "trigger02": { "category": "education", "triggerType": "totalActivities", "triggerValA": 10, // 10 activities "triggerValB": 0, // Not used "actions": [ {"action":"post","articleId":"article_id_01","data":"e.g. url parameters"} ] } }, "definitions": { "version": 1, "exerciseDefs": { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "metabolicexdef1": 0.6,{ "epocbehaviour": 0.61, }"title": "Cruches", "muscleStressvideo": {"01-Crunches.mp4", "upperimage": 10"abs", "lowerdesc": 10, "core": 10 } }, "wktdef7": { "type": 1 "A crunch begins with lying face up on the floor with knees bent. The movement begins by curling the shoulders towards the pelvis. The hands can be behind or beside the neck or crossed over the chest. Injury can be caused by pushing against the head or neck with hands.", "titlesubtitle": "6Target Minyour Cardio",abs for a balanced set of "image": "absstomach muscles.", "desccalPerSec": "Short workout that pushes your cardiovascular system to burn fat now and for the next 24 hours." 5, "skill": 0.2, "strength": 0.7, "breakDurationcardio": 5, "appStoreId: "workout07"0.1, "exercisesepoc": [0.4, "metabolic": 0.4, { "idupper": "exdef6", 0.5, "durationcore": 550.5, "lower": 0.5 }, }, { "exdef2": { "idbehaviour": "exdef7"1, "durationtitle": 55"Squats", }"video": "02-Squats.mp4", "image": "abs", { "iddesc": "exdef6",Squats are an excellent exercise for training the lower "duration": 55 }body and core muscles, if done regularly they help to define thighs and buttocks.", "subtitle": "Train {your lower body and core.", "idcalPerSec": "exdef7"4, "skill": 0.2, "duration": 55 "strength": 0.6, }, "cardio": 0.3, { "epoc": 0.4, "idmetabolic": "exdef6", 0.6, "durationupper": 550.5, "core": },0.5, "lower": 0.5 { } }, "idworkoutDefs": "exdef7", { // Clients listen here permanently for ChildAdded, ChildChanged and ChildRemoved "durationwktdef1": 55{ "type": 1, } ]"title": "Aerobic", "adaptiveStressimage": { "abs", "strengthdesc": 0.2"Aerobic Basic Movement", "breakDuration": 5, "cardio"appStoreId: 0.9, "workout01", // StoreKit product id "metabolicin7MW": 0.6true, // For server use "epocinAfterburner": 0.6 },false, // For server use "muscleStressexercises": [ { { "upper": 10, "lowerid": 10"exdef1", "coreduration": 10 20 } }, "wktdef8": { { "type": 1, "titleid": "exdef2"2, Min Cardio Blast", "imageduration": "abs",15 "desc": "Short workout}, that pushes your cardiovascular system to burn fat now and for{ the next 24 hours.", "breakDurationid": 5"exdef3", "appStoreId: "workout08", "exercisesduration": [ 10 }, { "id": "exdef6exdef4", "duration": 555 }, { "id": "exdef7exdef5", "duration": 5510 } ], "adaptiveStress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "epoccore": 0.610 }, }, "muscleStresswktdef2": { "uppertype": 101, "lowertitle": "Thai 10Boxing", "image": "coreabs":, 10 } "desc": "Boxing With Kicking", }, "breakDuration": 4, "appStoreId: "wktdef9": {", // StoreKit product id "typein7MW": 1,false, // For server use "titleinAfterburner": "2 Min Cardio Blast 2x",true, // For server use "imageexercises": "abs",[ "desc": "Short workout{ that pushes your cardiovascular system to burn fat now and for the next 24 hours."id": "exdef5", "breakDurationduration": 5, "appStoreId: "workout09",15 "exercises": [}, { "id": "exdef6exdef3", "duration": 5510 }, { "id": "exdef7exdef1", "duration": 555 } ], "adaptiveStressstress": { "strength": 0.2, "cardio": 0.9, "metabolic": 0.6, "epoc": 0.6 }, "muscleStress": { "upper": 10, "lower": 10, "core": 10 } } } } } |
...