Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions assets/css/app.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
$body-bg: #ff622b;
// customize some Bootstrap variables
$primary: darken(#428bca, 20%);

Expand Down
4 changes: 2 additions & 2 deletions assets/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ require('../css/app.scss');
const $ = require('jquery');
require('bootstrap');

$(document).ready(function() {
$(document).ready(function () {
$('[data-toggle="popover"]').popover();
});

Expand All @@ -26,4 +26,4 @@ if (typeof usingVersionedFileJs !== "undefined") {
.catch(function (error) {
versionedFileElement.innerText = 'Error: '.error;
});
}
}
44 changes: 37 additions & 7 deletions assets/js/validation.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,51 @@
const axios = require('axios');

let name = document.getElementById('name');
let validationResult = document.getElementById('validation-result');

let validationResultName = document.getElementById('validation-result-name');

const validateName = function () {
validationResult.innerText = '...';
axios.post(validationResult.dataset.path, {input: name.value})
.then(function(response) {
validationResultName.innerText = '...';
axios.post(validationResultName.dataset.path, {input: name.value})
.then(function (response) {
if (response.data.valid) {
validationResult.innerHTML = ":)";
validationResultName.innerHTML = ":)";
} else {
validationResult.innerHTML = ":(";
validationResultName.innerHTML = ":(";
}
})
.catch(function (error) {
validationResult.innerText = 'Error: ' + error;
validationResultName.innerText = 'Error: ' + error;
});
};


let team = document.getElementById('team');
let validateResultTeam = document.getElementById('validation-result-team');
const validateTeam = function () {
validateResultTeam.innerText = '...';
axios.post(validateResultTeam.dataset.path, { input: team.value})
.then(function (response) {
if (response.data.valid) {
validateResultTeam.innerHTML = ":)";
} else {
validateResultTeam.innerHTML = ":(";
}
})
.catch(function (error) {
validateResultTeam.innerText = 'Error: ' + error;
});
};

name.onkeyup = validateName;
name.onchange = validateName;
team.onkeyup = validateTeam;
team.onchange = validateTeam;

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jei nesikartoju...

Nepalikinėk šiukšlių.








181 changes: 181 additions & 0 deletions public/students.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
{
"team1": {
"name": "Team1",
"mentors": [
"Mantas"
],
"students": [
"Tadas",
"Gytis",
"Ričardas"
]
},
"baltichalatai": {
"name": "BaltiChalatai",
"mentors": [
"Lukas"
],
"students": [
"Vytas",
"Lukas",
"Diana"
]
},
"nnizer": {
"name": "ePacientas",
"mentors": [
"Tadas"
],
"students": [
"Kornelijus",
"Dominykas",
"Miglė"
]
},
"activegen": {
"name": "ActiveGen",
"mentors": [
"Arnoldas"
],
"students": [
"Andrius",
"Nojus",
"Martynas",
"Edvinas"
]
},
"mms": {
"name": "Membership-management-system",
"mentors": [
"Mindaugas"
],
"students": [
"Erika",
"Rokas",
"Valentinas",
"Eligijus"
]
},
"pamainos": {
"name": "NFQ pamainu sistema",
"mentors": [
"Paulius"
],
"students": [
"Liudas",
"Justina",
"Andrius"
]
},
"receptai": {
"name": "Receptai",
"mentors": [
"Mantas"
],
"students": [
"Arnoldas",
"Arentas",
"Tautvydas"
]
},
"pulse": {
"name": "NFQ pulse",
"mentors": [
"Lorenas"
],
"students": [
"Arvydas",
"Titas",
"Kristijonas",
"Andrius"
]
},
"lita": {
"name": "NFQ Petro atrankos problema akademijai",
"mentors": [
"Paulius"
],
"students": [
"Kristina",
"Indrė",
"Dmitri"
]
},
"myfleet": {
"name": "MyFleet",
"mentors": [
"Laurynas"
],
"students": [
"Artūras",
"Ignas",
"Jonas"
]
},
"career": {
"name": "NFQ Career Criteria Assessment",
"mentors": [
"Erikas"
],
"students": [
"Matas",
"Andrius",
"Ainis"
]
},
"carparking": {
"name": "NFQ Car parking",
"mentors": [
"Andrejus"
],
"students": [
"Kęstas",
"Lukas",
"Lukas"
]
},
"podcast": {
"name": "Krepšinio podcastai",
"mentors": [
"Eligijus"
],
"students": [
"Edvardas",
"Nerijus",
"Kazimieras"
]
},
"Barakas": {
"name": "barakas",
"mentors": [
"Armandas"
],
"students": [
"Raimondas",
"Mantas",
"Tomas"
]
},
"devcollab": {
"name": "Education sharing platform",
"mentors": [
"Viktoras"
],
"students": [
"Karolis",
"Arnas",
"Evaldas",
"Algirdas"
]
},
"hack<b>er</b>'is po .mySubdomain &project=123": {
"name": "' OR 1 -- DROP DATABASE",
"mentors": [
"<b>Ponas</b> Programišius"
],
"students": [
"Aurelijus",
"<b>Ir</b> jo \"geras\" draug'as"
]
}
}
22 changes: 20 additions & 2 deletions src/Controller/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,35 @@
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController
{
/**
* @Route("/", name="home")
* @param KernelInterface $kernel
* @return \Symfony\Component\HttpFoundation\Response
*/
public function index()
public function index(KernelInterface $kernel)
{
$projects = json_decode(file_get_contents($kernel->getProjectDir() . '/public/students.json'), true);

$students = $this->groupByStudents($projects);
return $this->render('home/index.html.twig', [
'someVariable' => 'NFQ Akademija',
'someVariable' => $students,
'projects' => $projects
]);
}

private function groupByStudents(array $projects)
{
$result = [];
foreach ($projects as $projectName => $project) {
foreach ($project['students'] as $student) {
$result[] = ['student' => $student, 'project' => $projectName, 'mentor' => $project['mentors'][0]];
}
}
return $result;
}
}
22 changes: 18 additions & 4 deletions src/Controller/PeopleController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

Expand All @@ -27,6 +27,9 @@ public function index()
* name="validatePerson",
* methods={"POST"}
* )
* @param Request $request
* @param string $element
* @return JsonResponse
*/
public function validate(Request $request, string $element)
{
Expand All @@ -37,18 +40,20 @@ public function validate(Request $request, string $element)
}

$students = $this->getStudents();
$teams = $this->getTeams();
switch ($element) {
case 'name':
return new JsonResponse(['valid' => in_array(strtolower($input), $students)]);
case 'team':
return new JsonResponse(['valid' => in_array(strtolower($input), $teams)]);
}

return new JsonResponse(['error' => 'Invalid arguments'], Response::HTTP_BAD_REQUEST);
}

private function getStorage()
{
return /** @lang json */
'{
'{
"team1": {
"name": "Team1",
"mentors": [
Expand Down Expand Up @@ -230,7 +235,6 @@ private function getStorage()
}
}';
}

private function getStudents(): array
{
$students = [];
Expand All @@ -242,4 +246,14 @@ private function getStudents(): array
}
return $students;
}
private function getTeams(): array
{
$teams = [];
$storage = json_decode($this->getStorage(), true);
$storage = array_keys($storage);
foreach ($storage as $teamData) {
$teams[] = strtolower($teamData);
}
return $teams;
}
}
27 changes: 27 additions & 0 deletions src/Controller/StudentController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;

class StudentController extends AbstractController
{
/**
* @Route("/student", name="student")
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/

public function index(Request $request)
{
$name = $request->get('name');
$project = $request->get('project');

return $this->render('student/index.html.twig', [
'name' => $name,
'project' => $project,
]);
}
}
Loading