STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011
Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které jsem vypracoval samostatně. Zdroje mých informací, ze kterých jsem čerpal, případně je využil, uvádím v seznamu použitých zdrojů a literatury. Vedoucí práce: RNDr. Lenka Hrušková ii
Shrnutí Cílem práce je navrhnout a zrealizovat webovou aplikaci pro vytváření a správu stránek třídy. Projekt je realizován aplikací ve skriptovacím jazyce PHP, v jazyce HTML a pro popis způsobu jejich zobrazení je použito CSS. Potřebná data jsou ukládána v databázi MySQL. iii
Obsah Prohlášení...ii Shrnutí...iii Anotace...2 1 Uživatelské rozhraní...3 1.1 Správce systému...3 1.2 Správce třídy...3 1.3 Žák...3 2 Seznam studentů...4 2.1 Výpis seznamu...4 2.2 Vytvoření studenta...5 3 Materiály studentů...6 4 Kalendář akcí...7 5 Rozvrh...8 5.1 Výpis rozvrhu...8 5.2 Vkládání předmětů...8 5.3 Odstranění předmětu...8 6 Fórum...9 6.1 Komunikace...9 6.2 Přidání příspěvku...9 6.3 Smazání příspěvku...9 7 Diagram užití...10 8 Schéma databáze...11 9 Web design...12 Závěr...13 Seznam literatury...14 Seznam zkratek...14 Seznam ilustrací...15 1
Anotace Aplikace má umožnit sdílení informací a dat v rámci jedné třídy pomocí sítě internet. Každá třída si může pomocí jednoduchého webového rozhraní vytvořit svoje stránky a editovat je. K procházení i editování stránek se musí studenti přihlásit. Budou vytvořeny další role pro správu stránek, součástí bude autentizace a autorizace. 2
1 Uživatelské rozhraní Uživatelé se dělí do několika skupin, z niž každá má jiná oprávnění a tím i pohled na systém jako celek. První skupinou jsou správci systému, kteří mohou vše. Další skupinou jsou správci třídy, kteří mohou také vše, ale pouze v rámci své třídy. A konečně poslední skupinou jsou studenti. Administrátor celého webu může vytvořit administrátora pro jednotlivé třídy a spravovat stránky všech tříd, administrátor třídy může vytvořit dalšího administrátora své třídy a spravovat její stránky, poslední možností je student. 1.1 Správce systému Neboli administrátor webové stránky může, jak již bylo uvedeno, vytvořit dalšího správce systému, správce pouze pro vybranou třídu, samozřejmě má povoleno mazat všechny uživatele webu. Na stránce materiály, může nahrávat i mazat studijní texty všech tříd. V kalendáři akcí má právo přidávat akce a mazat akce všem třídám. Do rozvrhu má povoleno libovolně přidávat i mazat vyučovací hodiny, popřípadě přepsat. Příspěvky ve fóru může vkládat, nebo mazat v libovolné třídě. 1.2 Správce třídy Správce pro vybranou třídu může vytvořit pouze dalšího správce třídy, nebo žáka. Na stránce materiály, může nahrávat i mazat studijní texty své třídy. V kalendáři akcí má právo přidávat akce a mazat akce vlastní třídě. Do rozvrhu má povoleno libovolně přidávat i mazat vyučovací hodiny, popřípadě přepsat, to všechno samozřejmě ve své třídě. Příspěvky ve fóru může vkládat, nebo mazat v přidělené třídě. 1.3 Žák Žáci nemohou spravovat uživatele, ale mohou stahovat a nahrávat studijní materiály, prohlédnout si seznam žáků své třídy, přidávat akce do kalendáře, mazat akce z kalendáře, které sami vytvořili, přidat hodiny do rozvrhu, a komunikovat s ostatními žáky pomocí fóra, což jest přidávat příspěvky a popřípadě je posléze smazat. 3
2 Seznam studentů 2.1 Výpis seznamu Úvodní stránkou je záložka Třída, jejíž obsah vypíše seznam žáků z databáze a to pro třídu, ke které je student přihlášen, nemůže tedy vidět žáky jiných tříd. Je zde vypsán název třídy, příjmení a jméno žáka, pokud studuje žák obor, který je rozdělen na specializace, zobrazí se zkratka jeho specializovaného oboru a nakonec jsou vypsána práva žáka ohledně tohoto webu. Ilustrace 1: Seznam žáků 4
2.2 Vytvoření studenta Při přihlášení jako správce do záložky Třída, se nám zobrazí navíc se seznamem studentů i formulář pro vytvoření žáka. Pokud máme práva správce systému, můžeme si vybrat potřebnou třídu pomocí formuláře a vytvářet nové studenty, je-li za potřebí, můžeme si vytvořit i prázdnou třídu s jedním správcem třídy, který může dále tvořit podle potřeby. Správce třídy ovšem na výběr nemá přepínací tlačítko mezi třídami, tudíž se musí spokojit pouze se svou přidělenou třídou a spravovat její položky. Samozřejmostí je tlačítko pro smazání studenta, jak v případě správce třídy, tak v případě správce systému. Illustration 2: Vytvořit žáka 5
3 Materiály studentů V záložce materiály mohou studenti nabídnou svým spolužákům studijní materiály, kterými mohou být libovolné soubory, od PDF dokumentů, přes naskenované materiály v papírové podobě, schémata a diagramy až po vlastní software. Ostatní studenti ze stejné třídy si je následně mohou stáhnout. Soubory jsou ukládány do adresáře upload v kořeni webu. (Kořen webu je adresář obsahující index.php) Do tohoto adresáře musí mít PHP skript (a tedy nejčastěji uživatel www-data, pod kterým běžně běží webový server) právo zápisu, aby sem bylo možné soubory ukládat. Zároveň tyto soubory ale musíme ochránit před případnými neoprávněnými uživateli, kteří by se k těmto souborům mohli dostat přímým procházením tohoto adresáře. Do tohoto adresáře tedy vložíme soubor.htaccess s následujícím obsahem: deny from all Tím zabráníme přístupu k souborům v adresáři skrze webový server Apache. PHP skripty budou mít ale i nadále možnost se soubory v tomto adresáři volně nakládat. Oprávněným uživatelům tak stažení umožníme skrze PHP skript, jež vypíše obsah tohoto souboru s patřičnými hlavičkami. Předtím pochopitelně zkontroluje, zdali má uživatel patřičná oprávnění, jinak by celá tato snaha byla zbytečná. Illustrace 3: Materiály 6
4 Kalendář akcí Kalendář akcí umožňuje studentům jedné třídy udržovat společný kalendář, který mohou využít ke vzájemné výměně informací o termínech odevzdání maturitních prací, poznamenat blížící se písemky nebo i upozornit na zajímavé mimoškolní akce. Ilustrace 4: Kalendář 7
5 Rozvrh 5.1 Výpis rozvrhu Na stránce rozvrhu si můžou studenti prohlédnout jejich rozvrh, pokud má třída specializace, zobrazí se i pro specializace. Všechny údaje, které se zobrazí jsou ukládány do databáze, ze které vypisujeme rozvrh třídy aktuálního uživatele, výběr správného rozvrhu si zajistíme podmínkou v MySQL dotazu, takže se vypíše pouze rozvrh přihlášeného uživatele. Všechny položky daného rozvrhu zjistíme jednoduchým dotazem: $dotaz1=$mysqli->query("select * FROM rozvrh WHERE trida='{$_session["login"]["trida"]}' AND (specializace='{$radek2["specializace"]}' OR specializace='') AND den='$den'"); 5.2 Vkládání předmětů Pro vkládání předmětů slouží formulář, který se zobrazí zároveň s rozvrhem. Nastaví se den, hodina, délka hodiny(jednohodinovka, dvouhodinovka), předmět, zkratka učitele, číslo učebny, navíc je zde možnost zatrhnout pole společné, které nám uloží předmět do všech specializací dané třídy. Potvrzení tlačítka OK zajistí, že předmět byl odeslán do databáze a můžeme ho tedy vypisovat v rozvrhu. 5.3 Odstranění předmětu Samozřejmě by bylo pracné, pokud by se uživatel překliknul a vytvořil předmět, který nemá existovat, správcové by byli nuceni vymazat položky přímo v nastavení databáze(například v phpmyadmin). Proto zde existuje tlačítko x, které je odkazem na MySQL dotaz DELETE, nachází se vedle každého předmětu a je s ním provázán jeho identifikačním klíčem. Po jeho stistknutí se jednoduše vykoná příkaz k vymazání položky z databáze, podle již zmíněného id. Ilustrace 5: Za zkratkou předmětu si povšimněte tlačítka pro odstranění 8
6 Fórum 6.1 Komunikace Nedílnou součástí studentských stránek je určitě komunikace mezi studenty. V této práci je komunikace vyřešena pomocí jednoduchého studentského fóra, kam mohou studenti přidávat připomínky a poznatky. Každá třída má své vlastní fórum, takže není možné, aby si studenti pročítali příspěvky studentů z ostatních tříd. 6.2 Přidání příspěvku Pro vytvoření příspěvku se zde nachází formulář, kam student zadá text a tlačítkem přidat příspěvek odešle do databáze. Příspěvky jsou vypisovány v tabulce, ve které se nachází kromě textu příspěvku i jméno, datum s časem přidání příspěvku a navíc tlačítko pro smazání vlastního příspěvku. 6.3 Smazání příspěvku Správce třídy má právo smazat libovolný příspěvek ve fóru, samozřejmě ve své vlastní třídě. Správci systému je povoleno procházet fóra všech tříd a libovolně přidávat i mazat příspěvky. Ilustrace 6: Fórum 9
7 Diagram užití 10
8 Schéma databáze Následující schéma zobrazuje strukturu databáze a relace mezi tabulkami: Ilustrace 7: Schéma databáze 11
9 Web design Zvolil jsem jednoduché rozložení stránky. Hlavní blok je zaronaný na střed, uvniř něj se v horní části nachází blok s hlavičkou, která obsahuje jméno uživatele a odkaz pro odhlášení, pod tímto blokem je menu se záložkami a poslední blok je samotný obsah stránky. 12
Závěr Byla úspěšně vytvořena aplikace umožňující vzájemnou komunikaci studentů jedné třídy, která zahrnuje sdílení souborů, společný kalendář i diskusní fórum. 13
Seznam literatury - Jak psát web (http://www.jakpsatweb.cz/) - PHP.net - Konzultace: RNDr. Lenka Hrušková, Jan Kalina Seznam zkratek HTML- HyperText Markup Language, označovaný zkratkou HTML, je značkovací jazyk pro hypertext. Je jedním z jazyků pro vytváření stránek v systému World Wide Web, který umožňuje publikaci dokumentů na Internetu. CSS- Kaskádové styly (Cascading Style Sheets) je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML neboxml. PHP-Hypertextový preprocesor, je skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek. MySQL-databázový systém, komunikace s ním probíhá pomocí jazyka SQL 14
Seznam ilustrací Ilustrace 1: Seznam žáků...4 Illustration 2: Vytvořit žáka...5 Illustrace 3: Materiály...6 Ilustrace 4: Kalendář...7 Ilustrace 5: Za zkratkou předmětu si povšimněte tlačítka pro odstranění...8 Ilustrace 6: Fórum...9 Ilustrace 7: Schéma databáze...11 15