From b82272d2cf7e7fe9dc4169c3f3f05ffd01d72b3d Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Tue, 7 Jul 2020 15:19:51 -0600 Subject: [PATCH 1/8] Updated file structures --- config/database.yml | 2 +- db/migrate/001_create_members | 0 db/migrate/002_create_gym_sessions | 0 db/migrate/003_create_workouts | 0 lib/models/gym_session.rb | 0 lib/models/member.rb | 0 lib/models/workout.rb | 0 7 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 db/migrate/001_create_members create mode 100644 db/migrate/002_create_gym_sessions create mode 100644 db/migrate/003_create_workouts create mode 100644 lib/models/gym_session.rb create mode 100644 lib/models/member.rb create mode 100644 lib/models/workout.rb diff --git a/config/database.yml b/config/database.yml index 7d4c3a6..463729e 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,3 +1,3 @@ development: adapter: sqlite3 - database: db/cats.sqlite3 \ No newline at end of file + database: db/GitFit_db.sqlite3 \ No newline at end of file diff --git a/db/migrate/001_create_members b/db/migrate/001_create_members new file mode 100644 index 0000000..e69de29 diff --git a/db/migrate/002_create_gym_sessions b/db/migrate/002_create_gym_sessions new file mode 100644 index 0000000..e69de29 diff --git a/db/migrate/003_create_workouts b/db/migrate/003_create_workouts new file mode 100644 index 0000000..e69de29 diff --git a/lib/models/gym_session.rb b/lib/models/gym_session.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/models/member.rb b/lib/models/member.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/models/workout.rb b/lib/models/workout.rb new file mode 100644 index 0000000..e69de29 From fb30191aaf8e9404c8dd6ff8f2c7e6a7db6c3e64 Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Tue, 7 Jul 2020 16:32:39 -0600 Subject: [PATCH 2/8] Created class and migration files --- Rakefile | 7 +++++- config/environment.rb | 14 +++++++++++- db/migrate/001_create_members | 0 db/migrate/001_create_members.rb | 9 ++++++++ db/migrate/002_create_gym_sessions | 0 db/migrate/002_create_gym_sessions.rb | 10 +++++++++ db/migrate/003_create_workouts | 0 db/migrate/003_create_workouts.rb | 8 +++++++ db/schema.rb | 32 +++++++++++++++++++++++++++ db/seeds.rb | 28 +++++++++++++++++++++++ lib/models/cli.rb | 2 ++ lib/models/gym_session.rb | 4 ++++ lib/models/member.rb | 4 ++++ lib/models/workout.rb | 5 +++++ runner.rb | 7 +++--- 15 files changed, 125 insertions(+), 5 deletions(-) delete mode 100644 db/migrate/001_create_members create mode 100644 db/migrate/001_create_members.rb delete mode 100644 db/migrate/002_create_gym_sessions create mode 100644 db/migrate/002_create_gym_sessions.rb delete mode 100644 db/migrate/003_create_workouts create mode 100644 db/migrate/003_create_workouts.rb create mode 100644 db/schema.rb create mode 100644 lib/models/cli.rb diff --git a/Rakefile b/Rakefile index 4e65a4f..3d42102 100644 --- a/Rakefile +++ b/Rakefile @@ -1,2 +1,7 @@ require_relative 'config/environment' -require 'sinatra/activerecord/rake' \ No newline at end of file +require 'sinatra/activerecord/rake' + +desc "start console" +task :console do + Pry.start +end \ No newline at end of file diff --git a/config/environment.rb b/config/environment.rb index 23718ce..59fc523 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,4 +1,16 @@ require 'bundler/setup' Bundler.require -require_all 'lib' \ No newline at end of file +require 'active_record' +require_all 'lib' +require_relative '../db/seeds' + +# ENV["PLAYLISTER_ENV"] ||= "development" + +# ActiveRecord::Base.establish_connection(ENV["PLAYLISTER_ENV"].to_sym) + +# ActiveRecord::Base.logger = nil + +# if ENV["PLAYLISTER_ENV"] == "test" +# ActiveRecord::Migration.verbose = false +# end \ No newline at end of file diff --git a/db/migrate/001_create_members b/db/migrate/001_create_members deleted file mode 100644 index e69de29..0000000 diff --git a/db/migrate/001_create_members.rb b/db/migrate/001_create_members.rb new file mode 100644 index 0000000..d88f694 --- /dev/null +++ b/db/migrate/001_create_members.rb @@ -0,0 +1,9 @@ +class CreateMembers < ActiveRecord::Migration[6.0] + + def change + create_table :members do |t| + t.string :name + t.string :goal + end + end +end \ No newline at end of file diff --git a/db/migrate/002_create_gym_sessions b/db/migrate/002_create_gym_sessions deleted file mode 100644 index e69de29..0000000 diff --git a/db/migrate/002_create_gym_sessions.rb b/db/migrate/002_create_gym_sessions.rb new file mode 100644 index 0000000..8a81838 --- /dev/null +++ b/db/migrate/002_create_gym_sessions.rb @@ -0,0 +1,10 @@ +class CreateGymSessions < ActiveRecord::Migration[6.0] + + def change + create_table :gym_sessions do |t| + t.string :name + t.references :member + t.references :workout + end + end +end \ No newline at end of file diff --git a/db/migrate/003_create_workouts b/db/migrate/003_create_workouts deleted file mode 100644 index e69de29..0000000 diff --git a/db/migrate/003_create_workouts.rb b/db/migrate/003_create_workouts.rb new file mode 100644 index 0000000..64d94f9 --- /dev/null +++ b/db/migrate/003_create_workouts.rb @@ -0,0 +1,8 @@ +class CreateWorkouts < ActiveRecord::Migration[6.0] + + def change + create_table :workouts do |t| + t.string :body_part + end + end +end \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 0000000..43b7e3d --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,32 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `rails +# db:schema:load`. When creating a new database, `rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema.define(version: 3) do + + create_table "gym_sessions", force: :cascade do |t| + t.string "name" + t.integer "member_id" + t.integer "workout_id" + t.index ["member_id"], name: "index_gym_sessions_on_member_id" + t.index ["workout_id"], name: "index_gym_sessions_on_workout_id" + end + + create_table "members", force: :cascade do |t| + t.string "name" + t.string "goal" + end + + create_table "workouts", force: :cascade do |t| + t.string "body_part" + end + +end diff --git a/db/seeds.rb b/db/seeds.rb index e69de29..a719425 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -0,0 +1,28 @@ +Workout.delete_all +Member.delete_all +GymSession.delete_all + +michael = Member.create(:name=>"Michael", :goal=>"strength") +derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") +gordo = Member.create(:name=>"Gordo", :goal=>"strength") + +chest_workout = Workout.create(:body_part=>"Chest") +back_workout = Workout.create(:body_part=>"back") +arms_workout = Workout.create(:body_part=>"arms") + +session1 = GymSession.create(:name=>"First of day") +session2 = GymSession.create(:name=>"2nd of day") +session3 = GymSession.create(:name=>"3rd of day") + +session1.member = michael +session2.member = derek +session3.member = gordo + +michael.gym_sessions << session1 +gordo.gym_sessions << session3 +derek.gym_sessions << session2 + +chest_workout.gym_sessions << session1 +back_workout.gym_sessions << session2 +arms_workout.gym_sessions << session3 + diff --git a/lib/models/cli.rb b/lib/models/cli.rb new file mode 100644 index 0000000..cae1d4f --- /dev/null +++ b/lib/models/cli.rb @@ -0,0 +1,2 @@ +class Cli < ActiveRecord::Base +end \ No newline at end of file diff --git a/lib/models/gym_session.rb b/lib/models/gym_session.rb index e69de29..523a276 100644 --- a/lib/models/gym_session.rb +++ b/lib/models/gym_session.rb @@ -0,0 +1,4 @@ +class GymSession < ActiveRecord::Base + belongs_to :member + belongs_to :workout +end \ No newline at end of file diff --git a/lib/models/member.rb b/lib/models/member.rb index e69de29..ba9cbd6 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -0,0 +1,4 @@ +class Member < ActiveRecord::Base + has_many :gym_sessions + has_many :workouts, through: :gym_sessions +end \ No newline at end of file diff --git a/lib/models/workout.rb b/lib/models/workout.rb index e69de29..b00b640 100644 --- a/lib/models/workout.rb +++ b/lib/models/workout.rb @@ -0,0 +1,5 @@ +class Workout < ActiveRecord::Base + has_many :gym_sessions + has_many :members, through: :gym_sessions + +end \ No newline at end of file diff --git a/runner.rb b/runner.rb index fa3c59b..846a4ae 100644 --- a/runner.rb +++ b/runner.rb @@ -1,6 +1,7 @@ require_relative 'config/environment' - -Cli.new.start_game - +require 'pry' +# Cli.new +binding.pry +0 From d5e1108369a93f4f2fefb081147e2b841c8c2eda Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Wed, 8 Jul 2020 09:22:21 -0600 Subject: [PATCH 3/8] MVP complete --- Gemfile | 1 + Gemfile.lock | 20 +++++++++++++++++++- db/seeds.rb | 42 +++++++++++++++++++++--------------------- lib/models/cli.rb | 40 +++++++++++++++++++++++++++++++++++++++- lib/models/member.rb | 4 ++++ runner.rb | 16 +++++++++++++--- 6 files changed, 97 insertions(+), 26 deletions(-) diff --git a/Gemfile b/Gemfile index 356e44a..83ba802 100644 --- a/Gemfile +++ b/Gemfile @@ -11,3 +11,4 @@ gem "sinatra-activerecord", "~> 2.0" gem "rake", "~> 13.0" gem "sqlite3", "~> 1.4" gem "require_all", "~> 3.0" +gem 'tty-prompt' diff --git a/Gemfile.lock b/Gemfile.lock index 2f1380f..ccda804 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,11 +14,16 @@ GEM zeitwerk (~> 2.2) coderay (1.1.2) concurrent-ruby (1.1.5) + equatable (0.6.1) i18n (1.7.0) concurrent-ruby (~> 1.0) method_source (0.9.2) minitest (5.13.0) mustermann (1.0.3) + necromancer (0.5.1) + pastel (0.7.4) + equatable (~> 0.6) + tty-color (~> 0.5) pry (0.12.2) coderay (~> 1.1.0) method_source (~> 0.9.0) @@ -38,8 +43,20 @@ GEM sqlite3 (1.4.1) thread_safe (0.3.6) tilt (2.0.10) + tty-color (0.5.1) + tty-cursor (0.7.1) + tty-prompt (0.21.0) + necromancer (~> 0.5.0) + pastel (~> 0.7.0) + tty-reader (~> 0.7.0) + tty-reader (0.7.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.7) + wisper (~> 2.0.0) + tty-screen (0.8.0) tzinfo (1.2.5) thread_safe (~> 0.1) + wisper (2.0.1) zeitwerk (2.2.2) PLATFORMS @@ -52,6 +69,7 @@ DEPENDENCIES require_all (~> 3.0) sinatra-activerecord (~> 2.0) sqlite3 (~> 1.4) + tty-prompt BUNDLED WITH - 2.0.2 + 2.1.4 diff --git a/db/seeds.rb b/db/seeds.rb index a719425..a38a274 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,28 +1,28 @@ -Workout.delete_all -Member.delete_all -GymSession.delete_all +Workout.destroy_all +Member.destroy_all +GymSession.destroy_all -michael = Member.create(:name=>"Michael", :goal=>"strength") -derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") -gordo = Member.create(:name=>"Gordo", :goal=>"strength") +# michael = Member.create(:name=>"Michael", :goal=>"strength") +# derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") +# gordo = Member.create(:name=>"Gordo", :goal=>"strength") -chest_workout = Workout.create(:body_part=>"Chest") -back_workout = Workout.create(:body_part=>"back") -arms_workout = Workout.create(:body_part=>"arms") +# chest_workout = Workout.create(:body_part=>"Chest") +# back_workout = Workout.create(:body_part=>"back") +# arms_workout = Workout.create(:body_part=>"arms") -session1 = GymSession.create(:name=>"First of day") -session2 = GymSession.create(:name=>"2nd of day") -session3 = GymSession.create(:name=>"3rd of day") +# session1 = GymSession.create(:name=>"First of day") +# session2 = GymSession.create(:name=>"2nd of day") +# session3 = GymSession.create(:name=>"3rd of day") -session1.member = michael -session2.member = derek -session3.member = gordo +# session1.member = michael +# session2.member = derek +# session3.member = gordo -michael.gym_sessions << session1 -gordo.gym_sessions << session3 -derek.gym_sessions << session2 +# michael.gym_sessions << session1 +# gordo.gym_sessions << session3 +# derek.gym_sessions << session2 -chest_workout.gym_sessions << session1 -back_workout.gym_sessions << session2 -arms_workout.gym_sessions << session3 +# chest_workout.gym_sessions << session1 +# back_workout.gym_sessions << session2 +# arms_workout.gym_sessions << session3 diff --git a/lib/models/cli.rb b/lib/models/cli.rb index cae1d4f..cb33b61 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -1,2 +1,40 @@ -class Cli < ActiveRecord::Base +require 'tty-prompt' +class Cli + + $prompt = TTY::Prompt.new + + def welcome + puts "Welcome to GitFit, your personal workout generator!" + end + + def new_user + Member.create_new + end + + def main_menu + main_menu = $prompt.select("Main Menu") do |menu| + menu.choice 'Build new profile' + menu.choice 'See user profile' + menu.choice 'Select your workout' + end + main_menu + # welcome if main_menu == 'Build new profile' + end + + # welcome if main_menu == 'Build new profile' + + + def select_type_of_workout + # prompt = TTY::Prompt.new + answer = $prompt.select("Choose your workout") do |menu| + menu.choice 'Full Body' + menu.choice 'Chest' + menu.choice 'Back' + menu.choice 'Legs' + menu.choice 'Arms' + end + puts "You have selected a #{answer} workout." + # puts "Please select 1 for an upper-body workout or 2 for a lower-body workout." + # user_input = gets.chomp + end end \ No newline at end of file diff --git a/lib/models/member.rb b/lib/models/member.rb index ba9cbd6..9b54146 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -1,4 +1,8 @@ class Member < ActiveRecord::Base has_many :gym_sessions has_many :workouts, through: :gym_sessions + + def self.create_new + puts "You have created your profile" + end end \ No newline at end of file diff --git a/runner.rb b/runner.rb index 846a4ae..9d618ce 100644 --- a/runner.rb +++ b/runner.rb @@ -1,7 +1,17 @@ require_relative 'config/environment' require 'pry' -# Cli.new +require 'tty-prompt' +prompt = TTY::Prompt.new +app = Cli.new +app.welcome +# app.main_menu +if app.main_menu == 'Build new profile' + app.new_user +end +app.select_type_of_workout -binding.pry -0 + + +# binding.pry +# 0 From b99f90094e6fea8d60380db5919162bd866e6b52 Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Wed, 8 Jul 2020 11:01:35 -0600 Subject: [PATCH 4/8] Basic Main Menu Complete --- Gemfile | 1 + Gemfile.lock | 8 ++++++++ lib/models/cli.rb | 27 +++++++++++++++++++++++---- lib/models/member.rb | 24 ++++++++++++++++++++++-- runner.rb | 27 ++++++++++++++++++++++----- 5 files changed, 76 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index 83ba802..2ccb4bb 100644 --- a/Gemfile +++ b/Gemfile @@ -12,3 +12,4 @@ gem "rake", "~> 13.0" gem "sqlite3", "~> 1.4" gem "require_all", "~> 3.0" gem 'tty-prompt' +gem 'tty-progressbar' diff --git a/Gemfile.lock b/Gemfile.lock index ccda804..f3573fc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -41,10 +41,16 @@ GEM activerecord (>= 3.2) sinatra (>= 1.0) sqlite3 (1.4.1) + strings-ansi (0.1.0) thread_safe (0.3.6) tilt (2.0.10) tty-color (0.5.1) tty-cursor (0.7.1) + tty-progressbar (0.17.0) + strings-ansi (~> 0.1.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.7) + unicode-display_width (~> 1.6) tty-prompt (0.21.0) necromancer (~> 0.5.0) pastel (~> 0.7.0) @@ -56,6 +62,7 @@ GEM tty-screen (0.8.0) tzinfo (1.2.5) thread_safe (~> 0.1) + unicode-display_width (1.7.0) wisper (2.0.1) zeitwerk (2.2.2) @@ -69,6 +76,7 @@ DEPENDENCIES require_all (~> 3.0) sinatra-activerecord (~> 2.0) sqlite3 (~> 1.4) + tty-progressbar tty-prompt BUNDLED WITH diff --git a/lib/models/cli.rb b/lib/models/cli.rb index cb33b61..24c5051 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -11,17 +11,38 @@ def new_user Member.create_new end + def see_user_profile + Member.see_user_profile + end + + def end_app + puts "See you next time!" + end + + def workout + bar = TTY::ProgressBar.new("Work out in progress [:bar]", total: 30) + 30.times do + sleep(0.1) + bar.advance(1) + end + puts "Great job! You finished your workout." + end + + # def completed_workout + # puts "Great job! You finished your workout." + # end + def main_menu main_menu = $prompt.select("Main Menu") do |menu| menu.choice 'Build new profile' menu.choice 'See user profile' menu.choice 'Select your workout' + menu.choice 'Exit GitFit' end main_menu - # welcome if main_menu == 'Build new profile' end - # welcome if main_menu == 'Build new profile' + def select_type_of_workout @@ -34,7 +55,5 @@ def select_type_of_workout menu.choice 'Arms' end puts "You have selected a #{answer} workout." - # puts "Please select 1 for an upper-body workout or 2 for a lower-body workout." - # user_input = gets.chomp end end \ No newline at end of file diff --git a/lib/models/member.rb b/lib/models/member.rb index 9b54146..151f83e 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -1,8 +1,28 @@ +require 'tty-prompt' + class Member < ActiveRecord::Base + $prompt = TTY::Prompt.new has_many :gym_sessions has_many :workouts, through: :gym_sessions def self.create_new - puts "You have created your profile" + puts "What is your name" + name = gets.chomp + goal = $prompt.select("What is your goal") do |menu| + menu.choice 'Losing weight' + menu.choice 'Gaining strength' + end + new_user = Member.create(:name=>name, :goal=>goal) + new_user + puts "Nice to meet you #{name}! Let's start working towards #{goal}!" + puts "Please note your member ID: #{new_user.id}. You will need it to view your profile later!" + end + + def self.see_user_profile + puts "Please enter your member ID" + member_id = gets.chomp + found_user = self.find_by id: member_id + puts "Name: #{found_user[:name]}" + puts "Goal: #{found_user[:goal]}" end -end \ No newline at end of file +end diff --git a/runner.rb b/runner.rb index 9d618ce..a90cb2d 100644 --- a/runner.rb +++ b/runner.rb @@ -2,14 +2,31 @@ require 'pry' require 'tty-prompt' -prompt = TTY::Prompt.new + +# prompt = TTY::Prompt.new app = Cli.new app.welcome -# app.main_menu -if app.main_menu == 'Build new profile' - app.new_user +loop do + case app.main_menu + when 'Build new profile' + app.new_user + when 'Select your workout' + app.select_type_of_workout + app.workout + # bar = TTY::ProgressBar.new("Work out in progress [:bar]", total: 30) + # 30.times do + # sleep(0.1) + # bar.advance(1) + # end + # app.completed_workout + when 'See user profile' + app.see_user_profile + when 'Exit GitFit' + app.end_app + break + end end -app.select_type_of_workout + From b4f910951b2923f282c1255efbaa8a15cf131d17 Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Wed, 8 Jul 2020 13:14:36 -0600 Subject: [PATCH 5/8] Connecting tables --- config/environment.rb | 10 -------- db/migrate/002_create_gym_sessions.rb | 1 - db/schema.rb | 1 - db/seeds.rb | 37 +++++++++++++-------------- lib/models/cli.rb | 4 --- lib/models/member.rb | 1 - runner.rb | 12 +-------- 7 files changed, 19 insertions(+), 47 deletions(-) diff --git a/config/environment.rb b/config/environment.rb index 59fc523..081063a 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -4,13 +4,3 @@ require 'active_record' require_all 'lib' require_relative '../db/seeds' - -# ENV["PLAYLISTER_ENV"] ||= "development" - -# ActiveRecord::Base.establish_connection(ENV["PLAYLISTER_ENV"].to_sym) - -# ActiveRecord::Base.logger = nil - -# if ENV["PLAYLISTER_ENV"] == "test" -# ActiveRecord::Migration.verbose = false -# end \ No newline at end of file diff --git a/db/migrate/002_create_gym_sessions.rb b/db/migrate/002_create_gym_sessions.rb index 8a81838..3a4648c 100644 --- a/db/migrate/002_create_gym_sessions.rb +++ b/db/migrate/002_create_gym_sessions.rb @@ -2,7 +2,6 @@ class CreateGymSessions < ActiveRecord::Migration[6.0] def change create_table :gym_sessions do |t| - t.string :name t.references :member t.references :workout end diff --git a/db/schema.rb b/db/schema.rb index 43b7e3d..05fd8e8 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -13,7 +13,6 @@ ActiveRecord::Schema.define(version: 3) do create_table "gym_sessions", force: :cascade do |t| - t.string "name" t.integer "member_id" t.integer "workout_id" t.index ["member_id"], name: "index_gym_sessions_on_member_id" diff --git a/db/seeds.rb b/db/seeds.rb index a38a274..febd59c 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -2,27 +2,26 @@ Member.destroy_all GymSession.destroy_all -# michael = Member.create(:name=>"Michael", :goal=>"strength") -# derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") -# gordo = Member.create(:name=>"Gordo", :goal=>"strength") +michael = Member.create(:name=>"Michael", :goal=>"strength") +derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") +gordo = Member.create(:name=>"Gordo", :goal=>"strength") -# chest_workout = Workout.create(:body_part=>"Chest") -# back_workout = Workout.create(:body_part=>"back") -# arms_workout = Workout.create(:body_part=>"arms") +chest_workout = Workout.create(:body_part=>"Chest") +back_workout = Workout.create(:body_part=>"back") +arms_workout = Workout.create(:body_part=>"arms") -# session1 = GymSession.create(:name=>"First of day") -# session2 = GymSession.create(:name=>"2nd of day") -# session3 = GymSession.create(:name=>"3rd of day") +session1 = GymSession.create() +session2 = GymSession.create() +session3 = GymSession.create() -# session1.member = michael -# session2.member = derek -# session3.member = gordo +session1.member = michael +session2.member = derek +session3.member = gordo -# michael.gym_sessions << session1 -# gordo.gym_sessions << session3 -# derek.gym_sessions << session2 - -# chest_workout.gym_sessions << session1 -# back_workout.gym_sessions << session2 -# arms_workout.gym_sessions << session3 +michael.gym_sessions << session1 +gordo.gym_sessions << session3 +derek.gym_sessions << session2 +chest_workout.gym_sessions << session1 +back_workout.gym_sessions << session2 +arms_workout.gym_sessions << session3 diff --git a/lib/models/cli.rb b/lib/models/cli.rb index 24c5051..988c496 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -28,10 +28,6 @@ def workout puts "Great job! You finished your workout." end - # def completed_workout - # puts "Great job! You finished your workout." - # end - def main_menu main_menu = $prompt.select("Main Menu") do |menu| menu.choice 'Build new profile' diff --git a/lib/models/member.rb b/lib/models/member.rb index 151f83e..4d9de45 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -13,7 +13,6 @@ def self.create_new menu.choice 'Gaining strength' end new_user = Member.create(:name=>name, :goal=>goal) - new_user puts "Nice to meet you #{name}! Let's start working towards #{goal}!" puts "Please note your member ID: #{new_user.id}. You will need it to view your profile later!" end diff --git a/runner.rb b/runner.rb index a90cb2d..dc568b1 100644 --- a/runner.rb +++ b/runner.rb @@ -2,8 +2,6 @@ require 'pry' require 'tty-prompt' - -# prompt = TTY::Prompt.new app = Cli.new app.welcome loop do @@ -13,22 +11,14 @@ when 'Select your workout' app.select_type_of_workout app.workout - # bar = TTY::ProgressBar.new("Work out in progress [:bar]", total: 30) - # 30.times do - # sleep(0.1) - # bar.advance(1) - # end - # app.completed_workout when 'See user profile' app.see_user_profile when 'Exit GitFit' app.end_app + binding.pry break end end - - - # binding.pry # 0 From 306f72fae0f63f3b0597726d89bf6c652a6943b6 Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Wed, 8 Jul 2020 15:01:31 -0600 Subject: [PATCH 6/8] Added funtionality in seeing user profile --- config/environment.rb | 1 + db/seeds.rb | 36 ++++++++++++++++++------------------ lib/models/cli.rb | 10 +++++++++- lib/models/member.rb | 29 +++++++++++++++++++++++++++-- runner.rb | 2 +- 5 files changed, 56 insertions(+), 22 deletions(-) diff --git a/config/environment.rb b/config/environment.rb index 081063a..0fa85f0 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -4,3 +4,4 @@ require 'active_record' require_all 'lib' require_relative '../db/seeds' +ActiveRecord::Base.logger = nil \ No newline at end of file diff --git a/db/seeds.rb b/db/seeds.rb index febd59c..94abc50 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -2,26 +2,26 @@ Member.destroy_all GymSession.destroy_all -michael = Member.create(:name=>"Michael", :goal=>"strength") -derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") -gordo = Member.create(:name=>"Gordo", :goal=>"strength") +# michael = Member.create(:name=>"Michael", :goal=>"strength") +# derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") +# gordo = Member.create(:name=>"Gordo", :goal=>"strength") -chest_workout = Workout.create(:body_part=>"Chest") -back_workout = Workout.create(:body_part=>"back") -arms_workout = Workout.create(:body_part=>"arms") +# chest_workout = Workout.create(:body_part=>"Chest") +# back_workout = Workout.create(:body_part=>"back") +# arms_workout = Workout.create(:body_part=>"arms") -session1 = GymSession.create() -session2 = GymSession.create() -session3 = GymSession.create() +# session1 = GymSession.create() +# session2 = GymSession.create() +# session3 = GymSession.create() -session1.member = michael -session2.member = derek -session3.member = gordo +# session1.member = michael +# session2.member = derek +# session3.member = gordo -michael.gym_sessions << session1 -gordo.gym_sessions << session3 -derek.gym_sessions << session2 +# michael.gym_sessions << session1 +# gordo.gym_sessions << session3 +# derek.gym_sessions << session2 -chest_workout.gym_sessions << session1 -back_workout.gym_sessions << session2 -arms_workout.gym_sessions << session3 +# chest_workout.gym_sessions << session1 +# back_workout.gym_sessions << session2 +# arms_workout.gym_sessions << session3 diff --git a/lib/models/cli.rb b/lib/models/cli.rb index 988c496..463c5d1 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -15,6 +15,10 @@ def see_user_profile Member.see_user_profile end + def sign_in + Member.sign_in + end + def end_app puts "See you next time!" end @@ -41,7 +45,7 @@ def main_menu - def select_type_of_workout + def select_type_of_workout user # prompt = TTY::Prompt.new answer = $prompt.select("Choose your workout") do |menu| menu.choice 'Full Body' @@ -51,5 +55,9 @@ def select_type_of_workout menu.choice 'Arms' end puts "You have selected a #{answer} workout." + new_session = GymSession.create() + new_workout = Workout.find_or_create_by(:body_part=>answer) + new_workout.gym_sessions << new_session + user.gym_sessions << new_session end end \ No newline at end of file diff --git a/lib/models/member.rb b/lib/models/member.rb index 4d9de45..42bf5f4 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -1,3 +1,4 @@ +require 'pry' require 'tty-prompt' class Member < ActiveRecord::Base @@ -18,10 +19,34 @@ def self.create_new end def self.see_user_profile + user = self.sign_in + puts "Name: #{user[:name]}" + puts "Goal: #{user[:goal]}" + # workout_array = user.workouts.map do |workout| + # workout.body_part + # end + # hash = {} + # workout_array.each do |value| + # hash[value] ? hash[value] += 1 : hash[value] = 1 + # end + puts "Workouts completed: #{self.get_user_workouts user}" + end + + def self.sign_in puts "Please enter your member ID" member_id = gets.chomp found_user = self.find_by id: member_id - puts "Name: #{found_user[:name]}" - puts "Goal: #{found_user[:goal]}" + found_user + end + + def self.get_user_workouts user + workout_array = user.workouts.map do |workout| + workout.body_part + end + hash = {} + workout_array.each do |value| + hash[value] ? hash[value] += 1 : hash[value] = 1 + end + hash end end diff --git a/runner.rb b/runner.rb index dc568b1..ae81027 100644 --- a/runner.rb +++ b/runner.rb @@ -9,7 +9,7 @@ when 'Build new profile' app.new_user when 'Select your workout' - app.select_type_of_workout + app.select_type_of_workout app.sign_in app.workout when 'See user profile' app.see_user_profile From 6b6876f2c9fed140ad639e20b9d8bb162667597b Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Thu, 9 Jul 2020 07:03:36 -0600 Subject: [PATCH 7/8] Changed user to member in all places --- db/seeds.rb | 6 +++--- lib/models/cli.rb | 9 ++++----- lib/models/member.rb | 33 +++++++++++++-------------------- runner.rb | 5 ++--- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index 94abc50..df82765 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,6 +1,6 @@ -Workout.destroy_all -Member.destroy_all -GymSession.destroy_all +# Workout.destroy_all +# Member.destroy_all +# GymSession.destroy_all # michael = Member.create(:name=>"Michael", :goal=>"strength") # derek = Member.create(:name=>"Derek", :goal=>"Weight Loss") diff --git a/lib/models/cli.rb b/lib/models/cli.rb index 463c5d1..73b99e1 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -7,7 +7,7 @@ def welcome puts "Welcome to GitFit, your personal workout generator!" end - def new_user + def new_member Member.create_new end @@ -35,7 +35,7 @@ def workout def main_menu main_menu = $prompt.select("Main Menu") do |menu| menu.choice 'Build new profile' - menu.choice 'See user profile' + menu.choice 'See member profile' menu.choice 'Select your workout' menu.choice 'Exit GitFit' end @@ -45,8 +45,7 @@ def main_menu - def select_type_of_workout user - # prompt = TTY::Prompt.new + def select_type_of_workout member answer = $prompt.select("Choose your workout") do |menu| menu.choice 'Full Body' menu.choice 'Chest' @@ -58,6 +57,6 @@ def select_type_of_workout user new_session = GymSession.create() new_workout = Workout.find_or_create_by(:body_part=>answer) new_workout.gym_sessions << new_session - user.gym_sessions << new_session + member.gym_sessions << new_session end end \ No newline at end of file diff --git a/lib/models/member.rb b/lib/models/member.rb index 42bf5f4..ed2b2b0 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -10,37 +10,30 @@ def self.create_new puts "What is your name" name = gets.chomp goal = $prompt.select("What is your goal") do |menu| - menu.choice 'Losing weight' - menu.choice 'Gaining strength' + menu.choice 'I want to lose weight' + menu.choice 'I want to gain strength' end - new_user = Member.create(:name=>name, :goal=>goal) - puts "Nice to meet you #{name}! Let's start working towards #{goal}!" - puts "Please note your member ID: #{new_user.id}. You will need it to view your profile later!" + new_member = Member.create(:name=>name, :goal=>goal) + puts "Nice to meet you #{name}! GitFit is here to help you #{goal.remove("I want to ")}!" + puts "Please note your member ID: #{new_member.id}. You will need it to view your profile and log workouts later!" end def self.see_user_profile - user = self.sign_in - puts "Name: #{user[:name]}" - puts "Goal: #{user[:goal]}" - # workout_array = user.workouts.map do |workout| - # workout.body_part - # end - # hash = {} - # workout_array.each do |value| - # hash[value] ? hash[value] += 1 : hash[value] = 1 - # end - puts "Workouts completed: #{self.get_user_workouts user}" + member = self.sign_in + puts "Name: #{member[:name]}" + puts "Goal: #{member[:goal]}" + puts "Workouts completed: #{self.get_user_workouts member}" end def self.sign_in puts "Please enter your member ID" member_id = gets.chomp - found_user = self.find_by id: member_id - found_user + found_member = self.find_by id: member_id + found_member end - def self.get_user_workouts user - workout_array = user.workouts.map do |workout| + def self.get_user_workouts member + workout_array = member.workouts.map do |workout| workout.body_part end hash = {} diff --git a/runner.rb b/runner.rb index ae81027..6ca6372 100644 --- a/runner.rb +++ b/runner.rb @@ -7,15 +7,14 @@ loop do case app.main_menu when 'Build new profile' - app.new_user + app.new_member when 'Select your workout' app.select_type_of_workout app.sign_in app.workout - when 'See user profile' + when 'See member profile' app.see_user_profile when 'Exit GitFit' app.end_app - binding.pry break end end From d30b9243e51abd4f6ac585918817e77ad17d4142 Mon Sep 17 00:00:00 2001 From: mnavoy4 Date: Thu, 9 Jul 2020 07:16:33 -0600 Subject: [PATCH 8/8] Now changed user to member in all places --- lib/models/cli.rb | 4 ++-- lib/models/member.rb | 2 +- runner.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/models/cli.rb b/lib/models/cli.rb index 73b99e1..c95073c 100644 --- a/lib/models/cli.rb +++ b/lib/models/cli.rb @@ -11,8 +11,8 @@ def new_member Member.create_new end - def see_user_profile - Member.see_user_profile + def see_member_profile + Member.see_member_profile end def sign_in diff --git a/lib/models/member.rb b/lib/models/member.rb index ed2b2b0..a843a73 100644 --- a/lib/models/member.rb +++ b/lib/models/member.rb @@ -18,7 +18,7 @@ def self.create_new puts "Please note your member ID: #{new_member.id}. You will need it to view your profile and log workouts later!" end - def self.see_user_profile + def self.see_member_profile member = self.sign_in puts "Name: #{member[:name]}" puts "Goal: #{member[:goal]}" diff --git a/runner.rb b/runner.rb index 6ca6372..26794eb 100644 --- a/runner.rb +++ b/runner.rb @@ -12,7 +12,7 @@ app.select_type_of_workout app.sign_in app.workout when 'See member profile' - app.see_user_profile + app.see_member_profile when 'Exit GitFit' app.end_app break