Quizknown is system that help teachers and students make exams to test their knowledge. Quizknown has own routing system and is near MVC system. I made this system because I want to train for final exams. I hope that any other can use this system so I made this project open source. So everyone can contribute to make it better.
TODO
- core
- KaTex fully function
- dark/light mode switch
- Control improvement
Send me dm on discord to Honzasko#1552 if you want to suggest ideas. After I gather enough ideas I will start working on version 2 and it will be reworked to Laravel framework
If you want ton deploy this system you need to simply download source and extract to your hosting . You need apache 2 to run this without security issues because htaccess. Head to files to know how to make exercices and groups
There is json file named groups.json which contain entry info about groups or subjects for exercices.
Here is example of groups.json:
{
"technology": [{
"group_name":"Technologie",
"group_folder":"technologie"
}],
"elektrotechnics": [{
"group_name":"Elektrotechnika",
"group_folder":"elektrotechnika"
}]
}
Each group has identifier as string and this each group has following properties:
group_name- name of group that is displayed on the web
group_folder - name of folder that is used to store group.json and exercices
group.json store information about exercices,name and file
Example of group.json:
{
"odpor": [{
"name":"Odpor",
"file":"odpor.json"
}],
"elektrotechnics": [{
"name":"Proud",
"file":"proud.json"
}]
}
and it has following properties:
name - name that is displayd on the web
file - point to file where is exercise stored
Example of exercise json file:
{
"num" : "2",
"0": [{
"question" : "Výpočet odporu 2 rezistorů v sériovém řazení",
"answers_num" : "2",
"answers" : [
{
"type" : "text",
"value" : "[math]R = \\frac{1}{R_1} + \\frac{1}{R_2}[/math]",
"correct" : "false"
}, {
"type" : "text",
"value" : "[math]R = R1 + R2[/math]",
"correct" : "true"
}
]
}],
"1": [{
"question": "Výpočet odporu 2 rezistorů v pararelním řazení",
"answers_num" : "2",
"answers" : [
{
"type" : "text",
"value" : "[math]\\frac{R_1 * R_2}{R_1 + R_2}[/math]",
"correct" : "true"
}, {
"type" : "text",
"value" : "[math]R = R1 + R2[/math]",
"correct" : "false"
}
]
}]
}
properties of exercise file:
num - contain number of questions
question - question in literall form
answer_num - number of answers
properties of answers:
type - set type of answer(image,text)
value - if type is text then it is literall answer,if image then it store url of image,preffered image size is 100x100
correct - set if this answer is correct or not(true/false)
If you want to use math,use [math]
to start the KaTex syntax and [/math]
to end the syntax
/ - root of site
/app - application data
/app/content - store groups and exercies and their info
/app/controllers/ - controllers of site
/app/template/ - templates of site
/app/langs/ - used to store translations
/static/ - static files of site
/static/css/ - used to store cascade styles
/static/img/ - used to store images