Skip to content

michaeljstevens/takeupless

Repository files navigation

takeupless

takeupless live

takeupless is a single page full-stack web application that was inspired by Strava, but expands on its functionality by tracking lifting and walking in addition to biking and running. takeupless was built using PostgreSQL, Rails, React, and Redux, and uses the Google Maps and Charts APIs as well as Cloudinary.

Features & Implementation

Login/Sign Up

Users are prompted to login or sign up upon visiting the site. A demo login is provided. Users are initialized in the database with a username, password-digest(encrypted with bcrypt), and unique session-token. Users can add other information later to their profile upon update.

User Profile/Edit/Dashboard

Upon login, users are directed to the dashboard, which contains profile information, his or her most recent workout, and stats about his or her workouts(uses Google Charts API).

Users can click the update profile button to add or update information and change profile picture (uses Cloudinary). When a profile is updated, if age, gender, weight, activity level, and height are all available, the program will calculate the user's estimated daily caloric expenditure.

Route Creation

By clicking on the plus in the top right corner, users are able to create new routes. Each walking/running/biking workout must have a route. This features relies on the Google Maps API(including directions and places). The user can click on two points on the map (or search in the searchbox) and Google Maps will draw a route. The user can then click "Create Route" and a modal will appear which allows the user to add a name and description and submit the route. Since Google doesn't have a built in running type, I calculated the estimated duration for running and biking based on Google's walking route estimation.

Exercise Creation

By clicking on the plus in the top right corner, users are able to create new exercises. Each lifting workout can have many exercises through a join table called workout_exercises. Exercises must have a name, description and associated muscle group.

Workout Creation

There are two basic types of workouts: Travel Workouts and Static Workouts. Travel workouts include walking, running, and biking. Static workouts including lifting. Each travel workout must have a route and each static workout may have workout_exercises.

Travel Workouts

To submit a travel workout, the Walk, Run, or Bike tab must be selected. The user can then add a date, optional notes, and a route and press "Create".

Static Workouts

To submit a static workout, the Lift tab must be selected. The user can then add a date, optional notes, and a duration. Once the user clicks "Create", the workout is submitted, and returned to the form as a prop. A dropdown box will appear with all the user's exercises. Each time an exercise is selected, it will appear below. A user can add sets, reps, and weight to the exercise. When a user clicks "Add", a workout_exercise object is added to a list. When the user clicks "Done", all the workout_exercises in the list are submitted to the database with the respective exercise and Static Workout from the props.

Feeds

The application contains three feeds for workouts, routes, and exercises. They can be accessed by clicking their respective tabs in the navbar.

Workout Feed

By clicking the "my workouts" tab in the navbar, users can see all their workouts sorted by date. The page displays the user's first 10 workouts, with the option to move to the next or previous page at the bottom. By using the dropdown menu at the top, users can choose to see only their walk/run/bike/lift type workouts. Users can delete workouts from this page.

Route Feed

By clicking the "my routes" tab in the navbar, users can see all their routes. The page displays the user's first 10 routes, with the option to move to the next or previous page at the bottom. By using the dropdown menu at the top, users can choose to see only their walk/run/bike type routes. Users can delete routes from this page.

Exercise Feed

By clicking the "my exercises" tab in the navbar, users can see all their exercises. The page displays the user's first 10 exercises, with the option to move to the next or previous page at the bottom. By using the dropdown menu at the top, users can choose to filter their exercises by muscle group. Users can delete exercises from this page.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors