Kateřina Brabcová: Členský systém Czechitas

Cíl projektu

V den výběru mentora jsem stále neměla konkrétní představu, co bych chtěla vytvářet v rámci projektu. Jasno jsem měla pouze v tom, aby se jednalo o smysluplnou práci, která se v budoucnosti bude používat. Po sedánku s mým mentorem Pavlem Lasákem mi v hlavě zůstala myšlenka členského systému Czechitas, který by sloužil jak lektorům a účastníkům kurzů, ale také sponzorům a partnerům. Czechitas samy měly zájem o realizaci tohoto nápadu, který byl v plánu spolu se spuštěním nového webu, takže se vlastně setkala poptávka s nabídkou a jejímu zdárnému naplnění nestály v cestě (téměř) žádné komplikace. :)

Postup

Pro začátek jsem nevěděla, do jak velkého sousta jsem se zakousla, takže mé cíle byly v době registrace projektu značně přemrštěné. Základní formuláře pro přihlašování do systému (webové stránky) a formuláře s profilem uživatele byly nutností, bez které bych nemohla postoupit k dalším krokům. Při selekci mi ale stále zůstalo několik nerealizovaných nápadů, které snad přijdou na řadu při další práci na projektu.
První bod spočíval v instalaci a zprovoznění zálohy webu včetně databáze. Protože je veškerý kód psaný v PHP, upustila jsem o snahy projekt realizovat v Pythonu. Počáteční problémy jsme po několika sezeních s Pavlem Lasákem a Mirkou Jarešovou (Czechita mající na starosti web, projektově směruje vývoj a dělá drobné programátorské úpravy) rozjeli localhost, vše s využitím XAMPP a PHPMyAdmin. Několik rad a slov podpory poskytl programátor Jirka Prusek, který má co do činění se současným webem.
Druhým bodem programu bylo seznámit se s redakčním systémem Craft CMS, který je nasazen na webu Czechitas. Je to prostředí, ve kterém se spravují veškeré stránky běžící na webu, skrze něj se edituje obsah všech HTML souborů a dynamičnost jim přidávají tzv. „twigy“, template engine zapisované do složených závorek. S podobnou záležitostí jsem se loni setkala v rámci stáže u PHP programátorů, tehdy se jednalo TPL soubory. Jisté odlišnosti mezi nimi jsou, ale vesměs se vyplatila metoda pokus-omyl a pár vhodně mířených dotazů do Googlu.
Za třetí mě čekalo vytvoření přihlašovacího formuláře, formuláře pro obnovu zapomenutého hesla a formuláře s profilem uživatele. Na stránkách Craftu existuje několik šablon pro vyřešení tohoto problému, ale samotná implementace a propojení s databází bylo na mě (za vydatné podpory Pavla a Mirky). Do menu jsem přidala položku „Přihlášení“, která se dynamicky (po úspěšném přihlášení) mění na „Profil“. V tomto bodu nutno poznamenat, že Craft cashuje každou prkotinu, takže prohazování položek nefunguje tak, jak by mělo. Do budoucna bude potřeba tuto část vyřešit jinak.

Přihlášení uživatele do systému
Obrázek č. 1: Přihlášení uživatele do systému
Zapomenuté heslo
Obrázek č. 2: Zapomenuté heslo

Čtvrtou částí bylo vytvoření profilu uživatele – prozatím velmi strohého, obsahujícího fotografii, jméno, příjmení a e-mail. V rámci tohoto profilu je vize zobrazovat důležité informace o dráze účastnice – absolvované, probíhající či přihlášené kurzy (více v další kapitole), zvolené oblasti zájmu, vše tak, aby se data dala eventuálně využít pro cílenou nabídku připravovaných kurzů atd.

Profil uživatele
Obrázek č. 3: Profil uživatele

Vize do budoucna

Od bodu pět už měním čas z „minulého“ na „budoucí“. Po konci akademie se budu zaměřovat na provázání dosavadních záznamů v DB tak, aby si každá účastnice mohla prohlédnout, které kurzy již absolvovala. Z hlediska dat jsem měla pro tuto dílčí část projektu k dispozici strukturu tabulky se záznamy, která slouží pro uložení informací o všech účastnicích kurzů. Se Zdiškou Kyselákovou, která měla na starosti zpracování a čištění těchto dat, jsem tak získaly přehled o účastnicích a kurzech – co záznam, to jedna osoba účastnící se jednoho kurzu, ve finále tabulka o několika tisících řádků. Jedním z nápadů totiž byla i vizualizace absolvovaných kurzů ve formě časové osy. Pro samotné nasazení do systému ale bude třeba vytvořit dvě samostatné tabulky pro účastnice a kurzy (standardně by byly spojeny vazbou N:M), a dále pak propojovací tabulku nesoucí informace o účasti na kurzu (která inkriminovanou násobnou vazbu rozpadne na dvě vazby 1:N). Teprve poté bude možno SELECTem z DB vypisovat absolvované kurzy. Analogicky pak také s vhodnou podmínkou (datum a čas kurzu ještě neproběhl) a dalšími příznaky (přihláška na kurz ne-/byla schválena) bude snadné vypsat také kurzy, na které se účastnice přihlásila a na které byla přijata. Po přidání dalších informací získaných po termínu konání workshopu se bude aktualizovat seznam absolvovaných kurzů a tak stále dokola.

Relace mezi tabulkami
Obrázek č. 4: Relace mezi tabulkami

Mezistupněm bude třeba vytvořit unifikované přihlašovací formuláře na kurzy, které se tak z Google formulářů přesunou pod web Czechitas a bude je možno jednotně zpracovávat. Vizí je, že organizátoři konkrétního workshopu uvidí seznam přihlášených osob i s odpověďmi na otázky formuláře a zaškrtávacím tlačítkem budou přihlášky přesouvat do finálního seznamu účastnic workshopu. Nadstavbou bude tlačítko, které hromadně zašle e-mail o výsledku výběru a informacemi ke konání workshopu. V konkrétní den workshopu organizátoři uvidí výběrový seznam naposledy a budou zaškrtávacím tlačítkem vyplňovat prezenční listinu; systém bude možno posunout i dál – vytvořit i blacklist těch účastnic, které se na kurz nedostavily a zároveň se neomluvily.

Použité techniky

Z výše zmíněného vyplývá, že jsem využila znalosti tvorby webových stránek – značkovací jazyk HTML a kaskádové styly CSS, dále zkušenosti s programovacím jazykem PHP a dotazovacím jazykem SQL. Z programů jsem využívala Sublime Text 3, XAMPP a MS Access. Nové oblasti vědění, které jsem si prací na projektu rozšířila, byly template engine Craft CMS (tzv. twigy), práce s databází v PHPMyAdmin a práce s repozitáři v Bitbucket.

Závěr

Plánů je hodně, jsem teprve na začátku práce a byla by škoda doposud získané zkušenosti s Craftem hodit za hlavu. Základní cíl projektu se podařilo naplnit – na lokálním počítači funguje přihlášení do členského systému Czechitas, obnova hesla a zobrazení profilu uživatele. Zdá se to málo, ale věřte mi, že pro člověka beze zkušeností s Craftem to je hodně. Po konci akademie chci projekt dotáhnout do finále tak, aby se mohl opravdu využívat.
Na závěr bych chtěla ze srdce poděkovat Pavlovi, který mi byl po ruce nad rámec hodin určených pro konzultace, a Mirce, která se mnou měla trpělivost a našla si čas na četná setkání a zasvěcení do redakčního systému.

Zdroje

Craft CMS [online]. Pixel & Tonic, 2017 [cit. 2017-07-23]. Dostupné z: https://craftcms.com.
Dukt [online]. Dukt, 2017 [cit. 2017-07-23]. Dostupné z: https://dukt.net.
Stack Overflow [online]. Stack Exchange, 2017 [cit. 2017-07-23]. Dostupné z: https://stackoverflow.com.
Symfony and Twig [online]. SensioLabs, 2017 [cit. 2017-07-23]. Dostupné z: https://twig.symfony.com.










Komentáře

Populární příspěvky z tohoto blogu

Barbora Junová: Podpora začínajícího podnikání zaměřeného na prodej výrobků a poskytování služeb

Petra Havlínová: Automatické zpracování podkladů pro vyhodnocení vybraných KPI

Kateřina Kolouchová & Lenka Tomešová: Vliv počasí na kriminalitu v New Yorku a Brně