Wellcaster is a platform that helps coaches sell their training programs and helps their clients stick to goal and complete programs. Almost entire interface is built with angular using rest api. We've implemented first version of application, it's supported by other developers now.
Wellcaster has different UIs based on user type - coaches and clients. The most interesting part of the project is a coach part, where user can compose training program using our flexible editor.
Training program consists of days, for each day coach can set one or multiple goals to achieve. Goals can very different - from having a healthy breakfast to running a marathon. Editor is based on angular.js and uses extensible backend API that we've built to support different types of goals.
Coach can add new ad-hoc goals or reuse existing from library. This is useful for gym or yoga exercises - coach only describes technique once and then just specifies reps and sets for each specific training session.
Data is validated on save on client and on backend, so data is always correctly formatted.
Interesting feature built for this site is a media library. Whenever user needs to upload a file, he is presented with this nice sliding panel containing his entire media library. User can either upload new files or reuse existing. All media is directly uploaded to s3, so there's no traffic hits application server. Video files are converted to multiple formats using amazon video transcoder.
Our team developed an MVP of the project. While looking for correct product vision to fit market, we've developed different features, that didn't make it to final product, but still were a lot of fun to do. For example there were three versions of wellcast builder, registration wizard and manual video encoding on our server before we moved to amazon.
We've also built this cool scheduling section, where coaches can manage group and individual classes.
Using calendar on coach page, clients can book training time and pay for it using our custom UI, built on top of Stripe.
Mobile application was built by client's developers using our API. Since entire application is built with angular, we've already had rest api and we only needed to adjust it a little to work more effectively with mobile application structure.
One of the features built purely for mobile app are streaks or habits. Habit is a simple task that you repeat every day. For example, user can start a habit of running. Every day he goes for a run and then marks task as completed. We track progress, build charts and let user compete with each other.
Public pages are served as simple html, without angular, so that they were correctly indexed by search engines.