Generate form now redirects to a new page, favicon changed, work on admin pages begun - specifically for exercises management, lots of backend development for generator done, workout generation coming soon.
This commit is contained in:
parent
ce60756360
commit
23c5a18d9b
15 changed files with 383 additions and 77 deletions
21
app/Http/Controllers/ExercisesController.php
Normal file
21
app/Http/Controllers/ExercisesController.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace WorkoutGenerator\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use WorkoutGenerator\Http\Requests;
|
||||
use WorkoutGenerator\Http\Controllers\Controller;
|
||||
use WorkoutGenerator\Exercise;
|
||||
|
||||
class ExercisesController extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$exercises = Exercise::all();
|
||||
return view('exercises.index')->with('exercises', $exercises);
|
||||
}
|
||||
|
||||
public function create() {
|
||||
return view('exercises.add');
|
||||
}
|
||||
}
|
|
@ -2,10 +2,11 @@
|
|||
|
||||
namespace WorkoutGenerator\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Request;
|
||||
use WorkoutGenerator\Http\Requests;
|
||||
use WorkoutGenerator\Http\Controllers\Controller;
|
||||
use WorkoutGenerator\Exercise;
|
||||
use DB;
|
||||
|
||||
class GeneratorController extends Controller
|
||||
{
|
||||
|
@ -16,72 +17,104 @@ class GeneratorController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('generate');
|
||||
return view('generator/generate');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
public function generate()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
$input = Request::all();
|
||||
$goal = Request::get('goal');
|
||||
$sets = 0;
|
||||
$reps = "";
|
||||
switch ($goal) {
|
||||
case "strength":
|
||||
$sets = 8;
|
||||
$reps = "1-6";
|
||||
break;
|
||||
case "endurance":
|
||||
$sets = 3;
|
||||
$reps = "15-25";
|
||||
break;
|
||||
case "definition":
|
||||
$sets = 4;
|
||||
$reps = "8-12";
|
||||
break;
|
||||
default:
|
||||
$sets = 3;
|
||||
$reps = "10";
|
||||
};
|
||||
$preferences = [
|
||||
Request::get('free_weights'),
|
||||
Request::get('dumbbells'),
|
||||
Request::get('barbells'),
|
||||
Request::get('selectorized'),
|
||||
Request::get('cables'),
|
||||
Request::get('calisthenics')
|
||||
];
|
||||
if (isset($preferences)) {
|
||||
foreach (array_keys($preferences, '') as $key) {
|
||||
unset($preferences[$key]);
|
||||
};
|
||||
$chest_exercises = [];
|
||||
$back_exercises = [];
|
||||
$legs_exercises = [];
|
||||
$lower_legs_exercises = [];
|
||||
$biceps_exercises = [];
|
||||
$triceps_exercises = [];
|
||||
$shoulders_exercises = [];
|
||||
$forearms_exercises = [];
|
||||
$abs_exercises = [];
|
||||
#$_exercises = [];
|
||||
function getExercises($muscle, $preference) {
|
||||
$exercises = DB::table('exercises')
|
||||
->where('exercise_type', $preference)
|
||||
->where('muscle_group', $muscle)
|
||||
->lists('exercise_name');
|
||||
return $exercises;
|
||||
};
|
||||
foreach ($preferences as $preference) {
|
||||
$chest_exercises = array_merge($chest_exercises, getExercises('chest', $preference));
|
||||
$back_exercises = array_merge($back_exercises, getExercises('back', $preference));
|
||||
$legs_exercises = array_merge($legs_exercises, getExercises('legs', $preference));
|
||||
$lower_legs_exercises = array_merge($lower_legs_exercises, getExercises('lower_legs', $preference));
|
||||
$biceps_exercises = array_merge($biceps_exercises, getExercises('biceps', $preference));
|
||||
$triceps_exercises = array_merge($triceps_exercises, getExercises('triceps', $preference));
|
||||
$shoulders_exercises = array_merge($shoulders_exercises, getExercises('shoulders', $preference));
|
||||
$forearms_exercises = array_merge($forearms_exercises, getExercises('forearms', $preference));
|
||||
$abs_exercises = array_merge($abs_exercises, getExercises('abs', $preference));
|
||||
};
|
||||
};
|
||||
$years = intval(Request::get('years'));
|
||||
$months = intval(Request::get('months'));
|
||||
$total = ($years * 12) + $months;
|
||||
$experience = 0;
|
||||
switch ($total) {
|
||||
case ($total >= 24):
|
||||
$experience = 3;
|
||||
break;
|
||||
case ($total > 6):
|
||||
$experience = 2;
|
||||
break;
|
||||
default:
|
||||
$experience = 1;
|
||||
};
|
||||
$frequency = intval(Request::get('frequency'));
|
||||
$large_muscle = 3;
|
||||
$small_muscle = 2;
|
||||
return view('generator/workout', [
|
||||
'goal' => $goal,
|
||||
'preferences' => implode(', ', $preferences),
|
||||
'experience' => $experience,
|
||||
'frequency' => $frequency,
|
||||
'chest_exercises' => array_slice($chest_exercises, 0, $large_muscle),
|
||||
'back_exercises' => array_slice($back_exercises, 0, $large_muscle),
|
||||
'legs_exercises' => array_slice($legs_exercises, 0, $large_muscle),
|
||||
'lower_legs_exercises' => array_slice($lower_legs_exercises, 0, $small_muscle),
|
||||
'biceps_exercises' => array_slice($biceps_exercises, 0, $small_muscle),
|
||||
'triceps_exercises' => array_slice($triceps_exercises, 0, $small_muscle),
|
||||
'shoulders_exercises' => array_slice($shoulders_exercises, 0, $small_muscle),
|
||||
'forearms_exercises' => array_slice($forearms_exercises, 0, $small_muscle),
|
||||
'abs_exercises' => array_slice($abs_exercises, 0, $small_muscle)
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -26,7 +26,7 @@ class PagesController extends Controller
|
|||
|
||||
public function generate()
|
||||
{
|
||||
return view('generate');
|
||||
return view('generator/generate');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,3 +17,8 @@ Route::get('/about', 'PagesController@about');
|
|||
|
||||
Route::get('/generate', 'PagesController@generate');
|
||||
|
||||
Route::get('/exercises', 'ExercisesController@index');
|
||||
|
||||
Route::get('/exercises/create', 'ExercisesController@create');
|
||||
|
||||
Route::post('/generate/workout', 'GeneratorController@generate');
|
|
@ -6,7 +6,8 @@
|
|||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=5.5.9",
|
||||
"laravel/framework": "5.1.*"
|
||||
"laravel/framework": "5.1.*",
|
||||
"illuminate/html": "^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fzaninotto/faker": "~1.4",
|
||||
|
|
48
composer.lock
generated
48
composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "9b17480643a3385848d169584a3ae257",
|
||||
"hash": "2618ca87ca2b8b0f1430af64e18d9ed2",
|
||||
"packages": [
|
||||
{
|
||||
"name": "classpreloader/classpreloader",
|
||||
|
@ -216,6 +216,52 @@
|
|||
],
|
||||
"time": "2014-12-20 21:24:13"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/html",
|
||||
"version": "v5.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/html.git",
|
||||
"reference": "3d1009bb8e0f25720c914af5c1f4015dd373c9ef"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/html/zipball/3d1009bb8e0f25720c914af5c1f4015dd373c9ef",
|
||||
"reference": "3d1009bb8e0f25720c914af5c1f4015dd373c9ef",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/http": "~5.0",
|
||||
"illuminate/session": "~5.0",
|
||||
"illuminate/support": "~5.0",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Illuminate\\Html\\": ""
|
||||
},
|
||||
"files": [
|
||||
"helpers.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Taylor Otwell",
|
||||
"email": "taylorotwell@gmail.com"
|
||||
}
|
||||
],
|
||||
"time": "2015-01-01 16:31:18"
|
||||
},
|
||||
{
|
||||
"name": "jakub-onderka/php-console-color",
|
||||
"version": "0.1",
|
||||
|
|
|
@ -126,6 +126,7 @@ return [
|
|||
Illuminate\Filesystem\FilesystemServiceProvider::class,
|
||||
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
|
||||
Illuminate\Hashing\HashServiceProvider::class,
|
||||
Illuminate\Html\HtmlServiceProvider::class,
|
||||
Illuminate\Mail\MailServiceProvider::class,
|
||||
Illuminate\Pagination\PaginationServiceProvider::class,
|
||||
Illuminate\Pipeline\PipelineServiceProvider::class,
|
||||
|
@ -172,7 +173,9 @@ return [
|
|||
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
|
||||
'Event' => Illuminate\Support\Facades\Event::class,
|
||||
'File' => Illuminate\Support\Facades\File::class,
|
||||
'Form' => Illuminate\Html\FormFacade::class,
|
||||
'Hash' => Illuminate\Support\Facades\Hash::class,
|
||||
'Html' => Illuminate\Html\HtmlFacade::class,
|
||||
'Input' => Illuminate\Support\Facades\Input::class,
|
||||
'Inspiring' => Illuminate\Foundation\Inspiring::class,
|
||||
'Lang' => Illuminate\Support\Facades\Lang::class,
|
||||
|
|
17
public/assets/css/styles.css
vendored
17
public/assets/css/styles.css
vendored
|
@ -175,6 +175,7 @@ body {
|
|||
text-shadow:0px 0px 5px #000;
|
||||
border:1px solid #000;
|
||||
padding:3px 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.generator input[type='checkbox'] {
|
||||
|
@ -184,6 +185,7 @@ body {
|
|||
border:1px solid #000;
|
||||
padding:5px;
|
||||
margin:0 5px 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.generator input[type='checkbox']:disabled {
|
||||
|
@ -195,6 +197,21 @@ body {
|
|||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.workout {
|
||||
width:75%;
|
||||
border:1px solid black;
|
||||
margin:auto;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.workout th, .workout tr, .workout td {
|
||||
border:1px solid black;
|
||||
}
|
||||
|
||||
.workout th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.generator {
|
||||
background-position: right bottom;
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 0 B After Width: | Height: | Size: 1.1 KiB |
14
resources/views/create.blade.php
Normal file
14
resources/views/create.blade.php
Normal file
|
@ -0,0 +1,14 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('title', 'Add an Exercise')
|
||||
@endsection
|
||||
|
||||
{{!! Form::open() !!}}
|
||||
|
||||
{{!! Form::text('Name') !!}}
|
||||
|
||||
{{ Form::close() !!}}
|
||||
|
||||
@section('content')
|
||||
|
||||
@endsection
|
17
resources/views/exercises/add.blade.php
Normal file
17
resources/views/exercises/add.blade.php
Normal file
|
@ -0,0 +1,17 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('title', 'Add an Exercise')
|
||||
@section('header')
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<h1>Add a New Exercise</h1>
|
||||
<fieldset>
|
||||
{!! Form::open() !!}
|
||||
|
||||
{!! Form::text('name', null, ['placeholder'=>'Name']) !!}
|
||||
|
||||
{!! Form::close() !!}
|
||||
</fieldset>
|
||||
</div>
|
||||
@endsection
|
22
resources/views/exercises/index.blade.php
Normal file
22
resources/views/exercises/index.blade.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('title', 'Exercises')
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td>Muscle Group</td>
|
||||
<td>Type</td>
|
||||
</tr>
|
||||
@foreach ($exercises as $exercise)
|
||||
<tr>
|
||||
<td>{{ $exercise->exercise_name }}</td>
|
||||
<td>{{ $exercise->muscle_group }}</td>
|
||||
<td>{{ $exercise->exercise_type }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
@endsection
|
|
@ -2,15 +2,14 @@
|
|||
|
||||
@section('title', 'Generate')
|
||||
|
||||
@section('header')
|
||||
|
||||
@section('content')
|
||||
<div class="content" style="padding-bottom:0;">
|
||||
<h1>Workout Generator</h1>
|
||||
<div class="generator">
|
||||
<div class="fs-div">
|
||||
<form method="post">
|
||||
<form method="post" action="/generate/workout">
|
||||
<fieldset>
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<legend>Background Info:</legend>
|
||||
<label>What is your primary goal?:</label>
|
||||
<br />
|
||||
|
@ -26,7 +25,7 @@
|
|||
<label>Which of the following equipment/exercise styles do you have access to and enjoy doing? Check all that apply:</label>
|
||||
<br />
|
||||
<br />
|
||||
<input type="checkbox" name="free-weights" id="free-weights" value="free-weights" onClick="control()">Free Weights
|
||||
<input type="checkbox" name="free_weights" id="free-weights" value="free_weights" onClick="control()">Free Weights
|
||||
<br />
|
||||
<input type="checkbox" name="dumbbells" id="dumbbells" value="dumbbells" disabled><span class="dtext">Dumbbells</span>
|
||||
<br />
|
||||
|
@ -34,7 +33,7 @@
|
|||
<br />
|
||||
<input type="checkbox" name="selectorized" value="selectorized">Selectorized Equipment
|
||||
<br />
|
||||
<input type="checkbox" name="cables" value="cables">Cable Equipment
|
||||
<input type="checkbox" name="cable" value="cable">Cable Equipment
|
||||
<br />
|
||||
<input type="checkbox" name="calisthenics" value="calisthenics">Calisthenics
|
||||
<br />
|
||||
|
@ -51,7 +50,7 @@
|
|||
<select name="months">
|
||||
<?php
|
||||
for ($i = 0; $i <= 11; $i++) {
|
||||
echo '<option value="{$i}">' . $i . ' months</option>';
|
||||
echo "<option value=\"{$i}\">{$i} months</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
@ -64,7 +63,7 @@
|
|||
<select name="frequency">
|
||||
<?php
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
echo '<option value="{$i}">' . $i . '</option>';
|
||||
echo "<option value=\"{$i}\">{$i}</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
|
102
resources/views/generator/generate.blade.php
Normal file
102
resources/views/generator/generate.blade.php
Normal file
|
@ -0,0 +1,102 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('title', 'Generate')
|
||||
|
||||
@section('content')
|
||||
<div class="content" style="padding-bottom:0;">
|
||||
<h1>Workout Generator</h1>
|
||||
<div class="generator">
|
||||
<div class="fs-div">
|
||||
<form method="post" action="/generate/workout">
|
||||
<fieldset>
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<legend>Background Info:</legend>
|
||||
<label>What is your primary goal?:</label>
|
||||
<br />
|
||||
<br />
|
||||
<select name='goal'>
|
||||
<option value="strength">Gain Strength</option>
|
||||
<option value="endurance">Gain Endurance</option>
|
||||
<option value="definition">Gain Definition</option>
|
||||
</select>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<label>Which of the following equipment/exercise styles do you have access to and enjoy doing? Check all that apply:</label>
|
||||
<br />
|
||||
<br />
|
||||
<input type="checkbox" name="free_weights" id="free-weights" value="free_weights" onClick="control()">Free Weights
|
||||
<br />
|
||||
<input type="checkbox" name="dumbbells" id="dumbbells" value="dumbbells" disabled><span class="dtext">Dumbbells</span>
|
||||
<br />
|
||||
<input type="checkbox" name="barbells" id="barbells" value="barbells" disabled><span class="dtext">Barbells</span>
|
||||
<br />
|
||||
<input type="checkbox" name="selectorized" value="selectorized">Selectorized Equipment
|
||||
<br />
|
||||
<input type="checkbox" name="cables" value="cables">Cable Equipment
|
||||
<br />
|
||||
<input type="checkbox" name="calisthenics" value="calisthenics">Calisthenics
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<label>How long have you consistently followed an exercise routine?</label>
|
||||
<br />
|
||||
<br />
|
||||
<select name="years">
|
||||
<option value="0">0 years</option>
|
||||
<option value="1">1 year</option>
|
||||
<option value="2">2+ years</option>
|
||||
</select>
|
||||
<select name="months">
|
||||
<?php
|
||||
for ($i = 0; $i <= 11; $i++) {
|
||||
echo "<option value=\"{$i}\">{$i} months</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<label>How many days would you like to workout this week?</label>
|
||||
<br />
|
||||
<br />
|
||||
<select name="frequency">
|
||||
<?php
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
echo "<option value=\"{$i}\">{$i}</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<br />
|
||||
<br />
|
||||
<button name="submit" class="home-button">Generate My Workout!</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var fw = document.getElementById("free-weights");
|
||||
var db = document.getElementById("dumbbells");
|
||||
var bb = document.getElementById("barbells");
|
||||
var dtext = document.getElementsByClassName("dtext");
|
||||
for (var i = 0; i < dtext.length; i++) {
|
||||
dtext[i].style.color = "#CCCCCC";
|
||||
};
|
||||
function control () {
|
||||
if (fw.checked === true) {
|
||||
db.disabled = false;
|
||||
bb.disabled = false;
|
||||
for (var i = 0; i < dtext.length; i++) {
|
||||
dtext[i].style.color = "#000000";
|
||||
};
|
||||
} else {
|
||||
db.disabled = true;
|
||||
bb.disabled = true;
|
||||
for (var i = 0; i < dtext.length; i++) {
|
||||
dtext[i].style.color = "#CCCCCC";
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@endsection
|
26
resources/views/generator/workout.blade.php
Normal file
26
resources/views/generator/workout.blade.php
Normal file
|
@ -0,0 +1,26 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('title', 'Home')
|
||||
|
||||
@section('header')
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<h1>Your Workout, Should You Choose to Accept It...</h1>
|
||||
<br style="clear:both;" />
|
||||
<p style="text-align:center;">This part is still under development, but check back soon!</p>
|
||||
{{-- <table class="workout">
|
||||
<th>Your Goal:</th>
|
||||
<th>Your Preferred Workout Types:</th>
|
||||
<th>Your Experience:</th>
|
||||
<th>Your Desired Workout Frequency:</th>
|
||||
<tr>
|
||||
<td>{{ $goal }}</td>
|
||||
<td>{{ $preferences }}</td>
|
||||
<td>{{ $experience }} months</td>
|
||||
<td>{{ $frequency }} days per week</td>
|
||||
</tr>
|
||||
</table>--}}
|
||||
<br style="clear:both;" />
|
||||
</div>
|
||||
@endsection
|
Loading…
Reference in a new issue