WebTest je webové rozhraní pro testy a domácí úkoly žáků. Tento projekt se zaměřuje hlavně na (elektro-)technické úlohy. Tento projekt nabízí:
- Zápis úloh pomocí jazyka Markdown.
- Vkládání matematických vzorců ala LaTeX mocí knihovny MathJax.
- Možnost vložit do zadání náhodné číslo a očekávaný výsledek zapsat jako vzorec.
Do editoru jdou zadávat proměnné, které můžeme použít v odpovědi jako vzorec. Proměnná musí začínat znakem $. V odpovědi může být výraz a můžou se použít proměnné definované v zadání. Výraz musí být mezi [] :
[$a+$b+5]
Kolik je [$a,20] + [$b,-5,100] - [$c=$b*2] ?
Jako správnou odpověď uvedeme např: [$a + $b - $c]
- [$a,20] číslo od 0 do 20
- [$b,-20] záporné číslo od -20 do 0
- [$c,5,100] číslo od 5 do 100
- [$d,2000,5000,2] číslo od 2000 do 30000, zaokrouhlené na 2 platná místa – např. 2500
- [$e=$a+5] do proměnné e se přiřadí proměnná a + 5
Funkce, které se dají zadávat do odpovědi a do editoru:
Příklady zápisu:
- [$a=Abs(-5)] Absolutní hodnota -> 5
- [$a=Prumer(1,2,3,4)] Průměr -> 2,5
- [$a=Jednotka(0.05,mV)] Převede na správnou jednotku -> 50 µuV
- [$a=Max(1,4,3,2)] Maximum nebo minimum -> 4 nebo 1
- [(-3-I)/(1+I)] -2 + 1*I
- [I3+I6+I**9] -1
Příklady zápisu a výsledek:
- [Prumer(1,2,3,4] Průměr -> 2.5
- [Max(2,45,4,8,7] Maximum nebo minimum -> 45 nebo 2
- [Jednotka(51234,µV)] Zobrazí číslo ve správné jednotce -> 51.234 mV
- [sin(3)] Sinus -> 0.1411
- [simplify(sin(3)*2)] Vypočítá výraz -> 0.2822
- [simplify(pi)] Konstanta pí -> 3.14159
- [Abs(-5)] Absolutní hodnota -> 5
- [R(3/9)] Vytvoří zlomek -> 1/3
- Derivace: [diff(sin(x), x)]
- Integrál: [integrate(x**2 * cos(x), x)]
- Limit: [limit((sin(x)-x)/x**3, x, 0)]
Příklad zápisu - výraz musí být mezi $$ $$, editor umí zobrazí náhled
- $$x = {[$a,20] \over x} + {[$a,20] \over 5} - \sqrt{{x} \over [$a,20]} $$
- Flask - Python web framework.
- Python-Markdown - Python implementace pro Markdown Johnyho Grubera.
- psycopg - PostgreSQL adaptér pro Python.
- Pony - ORM pro Python.
- Sympy --- kalkulačka pro Python - počítá výrazy
- SocketIO - Websockety - flask
- LDAP3 - LDAP - vzdálené přihlašování
- SimpleMDE --- editor v JS pro Markdown
- ERD databáze: https://editor.ponyorm.com/user/mz10/webtest
- Definice databázových tabulek je v modulu
db.py.
Přihlášení se děje pomocí modulu spojeni.py. Soubor může vypadat takto:
"Přihlašovací údaje k databázi."
DB = {
"host": "localhost",
"user": "webtest",
"database": "webtest",
"password": "tajneheslo"
}
V adresáři devtools/ je několik pomocných skriptů, které mají usnadnit vývoj
a práci s lokální databází.
autoMakeF5.zsh: při změně souborů automaticky odesílá do prohlížeče stisk F5.create-psql.usr.db: vytvoří v PostgreSQL uživatele a založí mu databázi.drop-psql.usr.db: zruší v PostgreSQL uživatele a všechny jeho databáze.db-insert_dev_data.py: vloží do vývojové databáze počáteční data.db-drop_create_insert.zsh: vývojovou databázi zruší, znovu vytvoří a vloží do ní počáteční data.devserver.zsh: spustí vývojový server.