TIY Final Project: Day Zero

This week marks the beginning of development on our final projects at TIY. I plan to document the inevitable hit-wall/breakthrough moments throughout the process with a daily blog post. My hope is that detailing the day-to-day build will help me know my product in and out once demo day arrives, and serve as a reference for when I run into similar issues down the road. Initial format for the blog posts will be as follows:

— — — — — — — — — — —

Additions:

Deletions:

Set-backs:

Breakthroughs:

Today’s Takeaway:

Tomorrow’s Goal:

— — — — — — — — — — —

Project details as of 4/3/2016:

Idea: As the owner of a growing crossfit gym, my sister guides her members along the path to their fitness goals (weight loss, strength gain, cardio improvement). She takes initial measurements with new members and tracks their progress over time saving the data in a boring excel spreadsheet. My goal is to create an application that not only tracks these statistics, but brings them to life in a powerful way through use of graphical representation and statistical comparison. Members will belong to groups (time of class), and comparisons of group measurement averages will be represented graphically. Gym owners and staff will be able to effectively monitor progress of their members from measurement station to measurement station on an individual and group level.

A gym (user) will be able to register and login, create/update groups (class time) that belong to the gym, create/update members that belong to a specific group, and create/update measurements that belong to a specific member.

A user will be able to log new data from a mobile device. This data will be represented in graphical form for a user-friendly statistical analysis experience. Ideas for data representation include change in Group A average for a metric X over Y amount of time vs change in Group B average for a metric X over Y amount of time. A user will be able to export desired data in excel spreadsheet format (roo gem) and email to desired email address utilizing default Rails Mailer. Measurement stations will include current photo of gym member to be able to track change in appearance over time (utilizing js slideshow https://jsfiddle.net/wq7c9cq1/).

Name: TBD

Gems:

Models:

Gym attributes: gym_name:string, password_digest:string, address:string, email:string

-has_many: groups, members, measurements

Group attributes: gym_id:integer, time:string, coach_first_name:string, coach_last_name:string

-belongs_to: gym

-has_many: members, measurements

Member attributes: gym_id:integer, group_id:integer, member_first_name:string, member_last_name:string, age:integer, gender:string, height:integer, notes:string

-belongs_to: gym, group

-has_many: measurements

Measurement attributes: gym_id:integer, group_id:integer, member_id:integer, photo:string, weight:integer, bicep_circ:integer, forearm_circ:integer, chest_circ:integer, waist_circ:integer, abdomen_circ:integer, hips_circ:integer, thigh_circ:integer, calf_circ:integer, bmi:integer, body_fat_percentage:integer

-belongs_to: gym, group, member