The core library to create tests and certifications
.yaml
extension by @mickaelandrieuThanks to all the contributors !
416b57e Symfony 4 support 796630d Updated Composer configuration
e18e9a5 Fixed error in YamlLoader
by @20uf
64c363d Improved readme by @20uf
Thank you!
Certificationy provides a complete system to build multiple choice question system. This is useful for any company that need to test an applicant, or to make a certification website/training tool.
As usual, use composer to install the library:
composer require "certificationy/certificationy"
Then, you need to load questions using a loader: for now only PhpArray and Yaml loaders are provided, but thanks to the Loader interface you can create your owns.
For instance, let's say you have created a Yaml file with some few questions:
# question.yaml
category: basics
questions:
-
question: '2 + 2 = ?'
answers:
- {value: 4, correct: true}
- {value: 3, correct: false}
- {value: 2, correct: false}
Then you can do:
<?php
use Certificationy\Loaders\YamlLoader;
$loader = new YamlLoader(['path/to/question.yaml']);
$questions = $loader->load(1, []); // (nbQuestions, fromCategories)
$loader->categories(); // ['basics']
$set = Set::create($questions);
Then, for each question you can set user answers (as answers can be multiple):
<?php
$set->setUserAnswers(0, [4]); // (questionIndex, [values])
At every moment, you can get the correct and wrong answers (non answered questions are wrong).
$set->getCorrectAnswers();
$set->getWrongAnswers();
Certificationy provides a complete system to build multiple choice question system. This is useful for any company that need to test an applicant, or to make a certification website/training tool.
As usual, use composer to install the library:
composer require "certificationy/certificationy"
Then, you need to load questions using a loader: for now only PhpArray and Yaml loaders are provided, but thanks to the Loader interface you can create your owns.
For instance, let's say you have created a Yaml file with some few questions:
# question.yaml
category: basics
questions:
-
question: '2 + 2 = ?'
answers:
- {value: 4, correct: true}
- {value: 3, correct: false}
- {value: 2, correct: false}
Then you can do:
<?php
use Certificationy\Loaders\YamlLoader;
$loader = new YamlLoader(['path/to/question.yaml']);
$questions = $loader->load(1, []); // (nbQuestions, fromCategories)
$loader->categories(); // ['basics']
$set = Set::create($questions);
Then, for each question you can set user answers (as answers can be multiple):
<?php
$set->setUserAnswers(0, [4]); // (questionIndex, [values])
At every moment, you can get the correct and wrong answers (non answered questions are wrong).
$set->getCorrectAnswers();
$set->getWrongAnswers();
A CLI tool is available under the following repository: http://www.github.com/certificationy/certificationy-cli.
You can submit PR with your own questions into the packs located under the Certificationy organization.
We provide packs for both PHP5 and Symfony certifications.
As of today (03/04/2017), Certificationy CLI uses Certificationy library
1.x
branch.
More we will have questions, the more powerful will be this tool!
0f81d5f8601e2f77c365c9f403126f85bdf82e71 Added Help question by @20uf e8bd8f68f148f3fb79ee4c6df30107779614491d Updated CONTRIBUTING.md by @mickaelandrieu b5723252801d78a264c4dda6d11ca391d7b43d87 Removed notion of web platform by @20uf 0e653bb4cf4367cee36b8a85cad432b1261943f2 Improved random selection by @Cronos87
Loader
class (51fec2de3bd3d7f5f5795a61f1dad8cccf6cb18f), thank you @mazhuravlev