Skip to content
Snippets Groups Projects
Commit 968ddda7 authored by tomaszrudowski's avatar tomaszrudowski
Browse files

added leadership attribute

parent ef55d278
No related branches found
No related tags found
1 merge request!1Master
...@@ -31,7 +31,11 @@ class APIController extends Controller ...@@ -31,7 +31,11 @@ class APIController extends Controller
'init_following_a' => 'required|integer|min:0|max:100', 'init_following_a' => 'required|integer|min:0|max:100',
'init_following_b' => 'required|integer|min:0|max:100', 'init_following_b' => 'required|integer|min:0|max:100',
'spread_following_a' => 'required|integer|min:0|max:100', 'spread_following_a' => 'required|integer|min:0|max:100',
'spread_following_b' => 'required|integer|min:0|max:100' 'spread_following_b' => 'required|integer|min:0|max:100',
'init_leadership_a' => 'required|integer|min:0|max:100',
'init_leadership_b' => 'required|integer|min:0|max:100',
'spread_leadership_a' => 'required|integer|min:0|max:100',
'spread_leadership_b' => 'required|integer|min:0|max:100'
]); ]);
} catch (ValidationException $e) { } catch (ValidationException $e) {
return response()->json([ return response()->json([
...@@ -76,6 +80,15 @@ class APIController extends Controller ...@@ -76,6 +80,15 @@ class APIController extends Controller
$maxFollowingValueB = $attributes['init_following_b'] + $attributes['spread_following_b']; $maxFollowingValueB = $attributes['init_following_b'] + $attributes['spread_following_b'];
$maxFollowingValueB = $maxFollowingValueB > $maxValue ? $maxValue : $maxFollowingValueB; $maxFollowingValueB = $maxFollowingValueB > $maxValue ? $maxValue : $maxFollowingValueB;
$minLeadershipValueA = $attributes['init_leadership_a'] - $attributes['spread_leadership_a'];
$minLeadershipValueA = $minLeadershipValueA < $minValue ? $minValue : $minLeadershipValueA;
$maxLeadershipValueA = $attributes['init_leadership_a'] + $attributes['spread_leadership_a'];
$maxLeadershipValueA = $maxLeadershipValueA > $maxValue ? $maxValue : $maxLeadershipValueA;
$minLeadershipValueB = $attributes['init_leadership_b'] - $attributes['spread_leadership_b'];
$minLeadershipValueB = $minLeadershipValueB < $minValue ? $minValue : $minLeadershipValueB;
$maxLeadershipValueB = $attributes['init_leadership_b'] + $attributes['spread_leadership_b'];
$maxLeadershipValueB = $maxLeadershipValueB > $maxValue ? $maxValue : $maxLeadershipValueB;
$data = new \stdClass(); $data = new \stdClass();
$data->meta = new \stdClass(); $data->meta = new \stdClass();
$data->meta->size_a = $attributes['size_a']; $data->meta->size_a = $attributes['size_a'];
...@@ -85,13 +98,17 @@ class APIController extends Controller ...@@ -85,13 +98,17 @@ class APIController extends Controller
$data->meta->max_confidence_a = $maxConfidenceValueA; $data->meta->max_confidence_a = $maxConfidenceValueA;
$data->meta->min_following_a = $minFollowingValueA; $data->meta->min_following_a = $minFollowingValueA;
$data->meta->max_following_a = $maxFollowingValueA; $data->meta->max_following_a = $maxFollowingValueA;
$data->meta->min_leadership_a = $minLeadershipValueA;
$data->meta->max_leadership_a = $maxLeadershipValueA;
$data->meta->size_b = $attributes['size_b']; $data->meta->size_b = $attributes['size_b'];
$data->meta->min_expertise_b = $minExpertiseValueB; $data->meta->min_expertise_b = $minExpertiseValueB;
$data->meta->max_expertise_b = $maxExpertiseValueB; $data->meta->max_expertise_b = $maxExpertiseValueB;
$data->meta->min_confidence_b = $minConfidenceValueB; $data->meta->min_confidence_b = $minConfidenceValueB;
$data->meta->max_confidence_b = $maxConfidenceValueB; $data->meta->max_confidence_b = $maxConfidenceValueB;
$data->meta->min_following_b = $minFollowingValueA; $data->meta->min_following_b = $minFollowingValueB;
$data->meta->max_following_b = $maxFollowingValueA; $data->meta->max_following_b = $maxFollowingValueB;
$data->meta->min_leadership_b = $minLeadershipValueB;
$data->meta->max_leadership_b = $maxLeadershipValueB;
/* /*
$data->random_expertise_array_a = array(); $data->random_expertise_array_a = array();
$data->random_expertise_array_b = array(); $data->random_expertise_array_b = array();
...@@ -119,11 +136,13 @@ class APIController extends Controller ...@@ -119,11 +136,13 @@ class APIController extends Controller
//$data->random_confidence_array_a[$randomConfidenceValue]++; //$data->random_confidence_array_a[$randomConfidenceValue]++;
$randomFollowingValue = random_int($minFollowingValueA, $maxFollowingValueA); $randomFollowingValue = random_int($minFollowingValueA, $maxFollowingValueA);
//$data->random_following_array_a[$randomFollowingValue]++; //$data->random_following_array_a[$randomFollowingValue]++;
$randomLeadershipValue = random_int($minLeadershipValueA, $maxLeadershipValueA);
Voter::create([ Voter::create([
'population_id' => $population->id, 'population_id' => $population->id,
'expertise' => $randomExpertiseValue, 'expertise' => $randomExpertiseValue,
'confidence' => $randomConfidenceValue, 'confidence' => $randomConfidenceValue,
'following' => $randomFollowingValue, 'following' => $randomFollowingValue,
'leadership' => $randomLeadershipValue,
'group' => 'A' 'group' => 'A'
]); ]);
} }
...@@ -137,11 +156,13 @@ class APIController extends Controller ...@@ -137,11 +156,13 @@ class APIController extends Controller
//$data->random_confidence_array_b[$randomConfidenceValue]++; //$data->random_confidence_array_b[$randomConfidenceValue]++;
$randomFollowingValue = random_int($minFollowingValueB, $maxFollowingValueB); $randomFollowingValue = random_int($minFollowingValueB, $maxFollowingValueB);
//$data->random_following_array_b[$randomFollowingValue]++; //$data->random_following_array_b[$randomFollowingValue]++;
$randomLeadershipValue = random_int($minLeadershipValueB, $maxLeadershipValueB);
Voter::create([ Voter::create([
'population_id' => $population->id, 'population_id' => $population->id,
'expertise' => $randomExpertiseValue, 'expertise' => $randomExpertiseValue,
'confidence' => $randomConfidenceValue, 'confidence' => $randomConfidenceValue,
'following' => $randomFollowingValue, 'following' => $randomFollowingValue,
'leadership' => $randomLeadershipValue,
'group' => 'B' 'group' => 'B'
]); ]);
......
...@@ -32,6 +32,7 @@ class Population extends Model ...@@ -32,6 +32,7 @@ class Population extends Model
$newGroup->expertise_average = $this->voters()->where('group', '=', $name)->average('expertise'); $newGroup->expertise_average = $this->voters()->where('group', '=', $name)->average('expertise');
$newGroup->confidence_average = $this->voters()->where('group', '=', $name)->average('confidence'); $newGroup->confidence_average = $this->voters()->where('group', '=', $name)->average('confidence');
$newGroup->following_average = $this->voters()->where('group', '=', $name)->average('following'); $newGroup->following_average = $this->voters()->where('group', '=', $name)->average('following');
$newGroup->leadership_average = $this->voters()->where('group', '=', $name)->average('leadership');
$groups[] = $newGroup; $groups[] = $newGroup;
} }
return [ return [
...@@ -39,7 +40,8 @@ class Population extends Model ...@@ -39,7 +40,8 @@ class Population extends Model
'no_of_voters' => $this->voters()->count(), 'no_of_voters' => $this->voters()->count(),
'expertise_average' => $this->voters()->average('expertise'), 'expertise_average' => $this->voters()->average('expertise'),
'confidence_average' => $this->voters()->average('confidence'), 'confidence_average' => $this->voters()->average('confidence'),
'following_average' => $this->voters()->average('following') 'following_average' => $this->voters()->average('following'),
'leadership_average' => $this->voters()->average('leadership')
]; ];
} }
......
...@@ -13,6 +13,7 @@ class Voter extends Model ...@@ -13,6 +13,7 @@ class Voter extends Model
'expertise', 'expertise',
'confidence', 'confidence',
'following', 'following',
'leadership',
'group' 'group'
]; ];
......
...@@ -20,6 +20,7 @@ class CreateVotersTable extends Migration ...@@ -20,6 +20,7 @@ class CreateVotersTable extends Migration
$table->smallInteger('expertise', false, true)->nullable(false); $table->smallInteger('expertise', false, true)->nullable(false);
$table->smallInteger('confidence', false, true)->nullable(false); $table->smallInteger('confidence', false, true)->nullable(false);
$table->smallInteger('following', false, true)->nullable(false); $table->smallInteger('following', false, true)->nullable(false);
$table->smallInteger('leadership', false, true)->nullable(false);
$table->char('group')->nullable(false)->default('x'); $table->char('group')->nullable(false)->default('x');
}); });
} }
......
This diff is collapsed.
...@@ -192,6 +192,50 @@ ...@@ -192,6 +192,50 @@
<span v-for="val_error in validationErrors['spread_following_b']" class="text-danger">{{ val_error}}</span> <span v-for="val_error in validationErrors['spread_following_b']" class="text-danger">{{ val_error}}</span>
</div> </div>
</div> </div>
<div class="row form-group">
<div class="col-md-6 form-inline">
<label for="init_leadership_a"
:class="['col-md-6', 'col-form-label', validationErrors['init_leadership_a'] ? 'text-danger' : '']"
>Leadership A (init):</label>
<input type="number"
class="form-control col-md-6"
id="init_leadership_a"
v-model="population.init_leadership_a">
<span v-for="val_error in validationErrors['init_leadership_a']" class="text-danger">{{ val_error}}</span>
</div>
<div class="col-md-6 form-inline">
<label for="init_leadership_b"
:class="['col-md-6', 'col-form-label', validationErrors['init_leadership_b'] ? 'text-danger' : '']"
>Leadership B (init):</label>
<input type="number"
class="form-control col-md-6"
id="init_leadership_b"
v-model="population.init_leadership_b">
<span v-for="val_error in validationErrors['init_leadership_b']" class="text-danger">{{ val_error}}</span>
</div>
</div>
<div class="row form-group">
<div class="col-md-6 form-inline">
<label for="spread_leadership_a"
:class="['col-md-6', 'col-form-label', validationErrors['spread_leadership_a'] ? 'text-danger' : '']"
>Leadership A (spread):</label>
<input type="number"
class="form-control col-md-6"
id="spread_leadership_a"
v-model="population.spread_leadership_a">
<span v-for="val_error in validationErrors['spread_leadership_a']" class="text-danger">{{ val_error}}</span>
</div>
<div class="col-md-6 form-inline">
<label for="spread_leadership_b"
:class="['col-md-6', 'col-form-label', validationErrors['spread_leadership_b'] ? 'text-danger' : '']"
>Leadership B (spread):</label>
<input type="number"
class="form-control col-md-6"
id="spread_leadership_b"
v-model="population.spread_leadership_b">
<span v-for="val_error in validationErrors['spread_leadership_b']" class="text-danger">{{ val_error}}</span>
</div>
</div>
</div> </div>
</form> </form>
</div> </div>
...@@ -225,13 +269,17 @@ ...@@ -225,13 +269,17 @@
spread_confidence_a: 0, spread_confidence_a: 0,
init_following_a: 50, init_following_a: 50,
spread_following_a: 0, spread_following_a: 0,
init_leadership_a: 50,
spread_leadership_a: 0,
size_b: 0, size_b: 0,
init_expertise_b: 50, init_expertise_b: 50,
spread_expertise_b: 0, spread_expertise_b: 0,
init_confidence_b: 50, init_confidence_b: 50,
spread_confidence_b: 0, spread_confidence_b: 0,
init_following_b: 50, init_following_b: 50,
spread_following_b: 0 spread_following_b: 0,
init_leadership_b: 50,
spread_leadership_b: 0
} }
} }
}, },
......
...@@ -91,6 +91,9 @@ ...@@ -91,6 +91,9 @@
<li> <li>
Avg Following: {{current_population.voters_stats.following_average}} Avg Following: {{current_population.voters_stats.following_average}}
</li> </li>
<li>
Avg Leadership: {{current_population.voters_stats.leadership_average}}
</li>
</ul> </ul>
<hr> <hr>
<div class="row"> <div class="row">
...@@ -101,6 +104,7 @@ ...@@ -101,6 +104,7 @@
avg Expertise {{group.expertise_average}} <br> avg Expertise {{group.expertise_average}} <br>
avg Confidence {{group.confidence_average}} <br> avg Confidence {{group.confidence_average}} <br>
avg Following {{group.following_average}} <br> avg Following {{group.following_average}} <br>
avg Leadership {{group.leadership_average}} <br>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -60,6 +60,9 @@ ...@@ -60,6 +60,9 @@
<li> <li>
Avg Following: {{population_stats.voters_stats.following_average}} Avg Following: {{population_stats.voters_stats.following_average}}
</li> </li>
<li>
Avg Leadership: {{population_stats.voters_stats.leadership_average}}
</li>
</ul> </ul>
<hr> <hr>
<div class="row"> <div class="row">
...@@ -70,6 +73,7 @@ ...@@ -70,6 +73,7 @@
avg Expertise {{group.expertise_average}} <br> avg Expertise {{group.expertise_average}} <br>
avg Confidence {{group.confidence_average}} <br> avg Confidence {{group.confidence_average}} <br>
avg Following {{group.following_average}} <br> avg Following {{group.following_average}} <br>
avg Leadership {{group.leadership_average}} <br>
</div> </div>
</div> </div>
</div> </div>
...@@ -152,6 +156,7 @@ ...@@ -152,6 +156,7 @@
<th>Expertise<br><i class="text-muted">(1-100)</i></th> <th>Expertise<br><i class="text-muted">(1-100)</i></th>
<th>Confidence<br><i class="text-muted">(1-100)</i></th> <th>Confidence<br><i class="text-muted">(1-100)</i></th>
<th>Following<br><i class="text-muted">(1-100)</i></th> <th>Following<br><i class="text-muted">(1-100)</i></th>
<th>Leadership<br><i class="text-muted">(1-100)</i></th>
<th>Group</th> <th>Group</th>
<th>Correct<br><i class="text-muted">(majority)</i></th> <th>Correct<br><i class="text-muted">(majority)</i></th>
<th>Incorrect<br><i class="text-muted">(majority)</i></th> <th>Incorrect<br><i class="text-muted">(majority)</i></th>
...@@ -163,6 +168,7 @@ ...@@ -163,6 +168,7 @@
<td>{{voter.expertise}}</td> <td>{{voter.expertise}}</td>
<td>{{voter.confidence}}</td> <td>{{voter.confidence}}</td>
<td>{{voter.following}}</td> <td>{{voter.following}}</td>
<td>{{voter.leadership}}</td>
<td>{{voter.group}}</td> <td>{{voter.group}}</td>
<td>{{voter.majority_votes_stats.correct}}</td> <td>{{voter.majority_votes_stats.correct}}</td>
<td>{{voter.majority_votes_stats.incorrect}}</td> <td>{{voter.majority_votes_stats.incorrect}}</td>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment