disc-in / ultimateapp Goto Github PK
View Code? Open in Web Editor NEWDeveloping a mobile app to enhance Ultimate coaching abilities
Home Page: https://www.facebook.com/DiscInApp/
License: MIT License
Developing a mobile app to enhance Ultimate coaching abilities
Home Page: https://www.facebook.com/DiscInApp/
License: MIT License
There is a need to complete the database with the first real drill that will be integrate in the app.
For the fitness drill, we try to add video with a nice realization as on these examples:
https://www.youtube.com/channel/UCjNE2-Yeiwo4mTJ3HdfrSHA/videos
https://www.youtube.com/user/FitnessBlender/videos
https://www.youtube.com/channel/UCCgDGih2kSp0A6W_0cVYuaQ/videos
https://www.youtube.com/watch?v=tpVhJNQURk4
https://www.youtube.com/channel/UC_aLZ9YxRrGmCe1Zd3GSkEA/videos
@guillaumemoby : I will ask to the coaches in my network to share with us some drills that I will implement in the V1.
we'll want to set up a system to recognize the user.
Users will be able to group together in teams and share exercises in private.
Users will be able to see what the next recommended exercise for the team is through the application.
When the user taps the filter button on the Drill List, it opens a filters view
Fitler button could look like :
Instead of the check at the upper right corner
Same layout as the 'start training' button
Remove the training bravo page
We don't want too many levels of descriptions on the drill page
With instructions for each step of an animation, we can't keep step description as well
It should look like this :
@guillaumemoby maybe you can send links to the images so that the developer can use them directly ?
Display trainings on the Training List Page
Trainings should be defined in the fixtures
Some improvement can be done on training page:
To present different version of a drill the app need to link to show more than one video.
We want to find a way to pass from a video to another one. In the following image, te idea is to use a button or to swipe to pass to the next video (as in the app Nike training):
Here is a representation of the following drill:
{
id: 3,
type: 'fitness', // vs technical
source: 'Fraser Wilson',
title: 'Legs Workout Off-season',
image: 'https://assets.afcdn.com/story/20180529/1160936_w980h638c1cx622cy473cxt0cyt0cxb2121cyb1414.jpg',
description: 'A full body workout that you can do whenever and wherever you like!!',
nbPlayers: 1,
equipmentLabel: 'No Equipment', // Basic Equipment , Full Equipment
equipment: 'None',
durationInMinutes: 10,
intensity: 'Low', // Moderate , High
goals: ['Legs'], // Upper , Full Body , Core , Conditioning
seasontiming: 'Off-season', // Pre-season , In-season , Anytime
level: 'Intermediate', // Beginner , Advanced
video: '',// if there is only one 1 video to show complete with a youtube link
steps: [
{
video: 'https://www.youtube.com/embed/gNS2ZRQQ9sY'
title: 'Reverse Lunge From a Riser',
subtitle: '20 lunges',
},
{
video: 'https://www.youtube.com/embed/vr8OToLRGyQ'
title: 'Barbell Romanian Deadlift',
subtitle: '15 deadlifts',
},
{
video: 'https://www.youtube.com/embed/uzjfcTvgpoc'
title: 'Front DB Box Squat',
subtitle: '20 squats',
},
{
video: 'https://www.youtube.com/embed/mnzEGjv0IQQ'
title: 'Glute Bridge',
subtitle: '20 glute bridges',
},
{
video: 'https://www.youtube.com/embed/_iYwv4QVFjM'
title: 'Standing Calf Raise',
subtitle: '25 calf raises',
},
{
video: 'https://www.youtube.com/embed/55e1a7McsXo '
title: 'Standing Hip Flexion',
subtitle: '30 hip flexions',
},
],
},
@sallesma and @Adeloche : do you think that it's a good way to save our drill?
We must think about
As i wondered what the difference is between training and practice (we use "training" but a canadian coach in paris uses "practice")
I think we should have a review from a native speaker just to make sure we are not introducing confusion
When we add a player or cone, it appears somewhere else, pretty annoying
Users don't understand it
Use a star, or heart, or whatever icon better understood
For now, we are using images found on the internet.
Before going live, we need to use images we have the right to use.
(An idea could be to use Focus photos, since they would probably accept)
This issue is not to be assigned and treated. It gathers the specifications of the app.
We want to be able to play/pause, see progress, go full screen and choose volume
But previous and next buttons make no sense if they are'nt mapped to previous/next step
We could use expo-video-player
(referenced in expo documentation)
I am looking for idea to link a series of exercises or trainings. This "series" will be made by experience coachs which will have to create coherent and thoughtful sequences adapted to a defined level.
Here is the list of my idea :
Add pre-commit hook with npm run prettier-fix
.
I think we should also enforce eslint rulses, but there are a bunch of warnings atm that I didn't get to fix
In order to have a nice documentation and automated snapshot testing, Bernie suggested we use Storybook there #47 (comment)
What do you guys think about instead of writing all these snapshot tests manually we could start using storybook (https://storybook.js.org/) in combination with storyshots (https://storybook.js.org/docs/testing/structural-testing/#using-storyshots)?
That way we both get the benefit from storyshot (develop components in isolation or grouped, better testability because of the encouraged capsulation, better documentation) as well as automated snapshot testing with only a one-time setup being necessary
Add splash screen at the same time
Replace gradient
Tweak other buttons
Now that we have a few pages working, we should have some automated testing to make sure we don't break anything.
What are the best practices there? should we be using jest?
We need icons instead of <
and >
We have security alerts on Mem and Minimist
Minimist alert (high severity) come from a dependency of a dependency of a dependency of Jest.
So we should update jest
We could also set up an automatic update of npm dependencies. Otherwise we'll end up outdated after a while
On a drill page, load animation/video associated to the selected step.
Update
On drill page we should have:
So for now a drill should have:
drill:
id (integer),
type (['fitness','technical']),
title: (text),
img: (image link)
description: (text),
nbPlayers: (integer),
duration: (integer minutes)
goals: [(keywords)],
level: ['beginner'/'intermediate'/'advanced'],
[optional] animation: (animation name),
[optional] video: (link to video),
[optional] steps: [
{
key: (integer),
title: (text),
subtitle: '(text),
},
],
In order to enforce consistent quality and help with review we should have an automated pipeline running tests, etc. for us.
We want the user being able to create their own drill. The animation is a key part of this app ,
we want to obtain something close to:
https://www.ultiplays.com/invite/VeEqZ2DDZ1IM3eBBWM74
We need cut and counter cut to be in the same animation step
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.