VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika
Informační systém cestovní kanceláře bakalářská práce
Autor: Milan Sochor Vedoucí práce: PaedDr. František Smrčka, Ph.D. Jihlava 2016
Abstrakt Tato bakalářská práce se zabývá vytvořením informačního systému cestovní kanceláře, který nalezne uplatnění na Vysoké škole Polytechnické Jihlava jako výukový program předmětu Informační a rezervační technologie. Každému studentovi tohoto předmětu je umožněno, aby se staral o svoji vlastní cestovní kancelář a pracoval pouze se svými daty. Základem informačního systému je datový model využívající databázový systém MySQL. Funkce jsou naprogramovány v jazyce PHP, prezentační vrstva stojí na HTML, CSS a jQuery.
Klíčová slova informační systém, cestovní kancelář, MySQL, PHP, HTML, CSS
Abstract This bachelor thesis is concerned with the creation of the travel agency information system, which finds its use at the College of Polytechnics Jihlava as educational application in the course Information and reservation technologies. Each student of this subject uses his own travel agency and works only with his data. The basis of the information system is data model that uses the MySQL database system. Functions are programmed in the PHP language, presentation layer stands on HTML, CSS and jQuery.
Key words information system, travel agency, MySQL, PHP, HTML, CSS
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne
Poděkování Na tomto místě bych rád využil příležitosti a poděkoval svému vedoucímu práce PaedDr. Františku Smrčkovi, Ph.D. za to, že mi poskytl téma a dal mi možnost vytvářet práci pod jeho vedením. Velice si také cením jeho užitečných rad.
Srovnání s existujícími systémy ....................................................................... 37
6.3
Možnosti rozšíření ............................................................................................ 38
Seznam použité literatury ............................................................................................... 39 Seznam obrázků .............................................................................................................. 40 Seznam použitých zkratek .............................................................................................. 41 Přílohy............................................................................................................................. 42 1
Obsah přiloženého CD ............................................................................................ 42
1 Úvod Na Vysokou školu polytechnickou Jihlava jsem přicházel jako téměř nepopsaný list papíru. Ze střední školy jsem samozřejmě měl základní znalosti informačních technologií a věděl jsem, jaké možnosti se přede mnou otevírají. V té době jsem ovšem ještě neměl nejmenší ponětí o tom, na kterou z mnoha možných cest bych se chtěl v budoucnu vydat. Které z mnoha odvětví aplikované informatiky by mě nejvíce naplňovalo. V tomto ohledu mi škola ohromně pomohla. V průběhu studia, během kterého jsem se postupně seznamoval s informačními technologiemi více do hloubky, mě nejvíce oslovil svět webových technologií a vytváření webových aplikací. Sympatie k tomuto oboru se ještě výrazně zvýšily během povinné školní praxe, kterou jsem absolvoval ve firmě just4web.cz s. r. o., kde pracuji dodnes. Tyto výše zmíněné skutečnosti hrály výraznou roli při vybírání tématu mé bakalářské práce. Bakalářskou práci navíc vnímám jako šanci na prohloubení dosud nabytých znalostí a získání nových zkušeností, které následně zhodnotím v budoucím zaměstnání. Proto jsem si jako téma vybral vytvoření informačního systému cestovní kanceláře, které nám bylo školou nabízeno. Cílem práce tedy bude vytvořit informační systém cestovní kanceláře, který bude sloužit jako výukový program v předmětu Informační a rezervační technologie. Systém bude mít tři základní role, v jakých půjde do systému přistupovat. Nejvyšší rolí bude administrátor, který bude mít kontrolu nad celým systémem. Tato role je určena pro vyučujícího předmětu Informační a rezervační technologie. Administrátor bude mít práva vytvářet účty uživatelů s nižšími právy, bude jim moci měnit hesla a bude mu umožněno tyto uživatele ze systému také odstranit. Dále bude moct vytvořit a mazat účty dalším administrátorům pro případ změny vyučujícího předmětu. Jediné, co nebude moct odstranit, je jeho administrátorský účet, pod kterým bude právě přihlášený. Kliknutím jednoho tlačítka pak bude schopen vyprázdnit celou databázi a připravit tak systém pro používání v novém semestru. Administrátor vstoupí do systému po zadání svého uživatelského jména a hesla na přihlašovací stránce, která bude od ostatních oddělena vlastní adresou.
8
Již zmíněnou rolí s nižšími právy bude správce. Tuto roli budou mít jednotliví studenti předmětu Informační a rezervační technologie. Každý nový účet s rolí správce se bude chovat jako nová cestovní kancelář. Uživatelé s touto rolí budou vytvářet a případně odstraňovat jednotlivé zájezdy, ke kterým následně vypíší termíny. Také termíny daných zájezdů budou moci zrušit. Mimoto budou mít přehled o všech objednávkách, které budou rozděleny na nové a potvrzené. Nové objednávky budou moci potvrdit a k těm potvrzeným vytisknout fakturu. Dále uvidí také přehled všech zákazníků, kteří odeslali nějakou objednávku. Správci se přihlásí do systému na vlastní oddělené adrese po zadání svých přihlašovacích údajů. Třetí a poslední rolí v systému je zákazník. I pro jeho vstup do systému je určena vlastní adresa. Zákazníci ovšem nemají zaregistrovaný účet, a tak se na stránky jakékoliv cestovní kanceláře dostanou bez vyplnění hesla. Ti pak vidí výpis všech zájezdů v dané cestovní kanceláři a k nim patřících termínů, na které se mohou po vyplnění formuláře přihlásit. K uchovávání všech potřebných dat bude využito databázového systému MySQL. Naprogramování zadaných funkcí systému bude realizováno pomocí jazyka PHP. Postavení kostry prezentační vrstvy obstará značkovací jazyk HTML. Vzhled bude doladěn s využitím kaskádových stylů CSS a jQuery.
9
2 Analýza Studenti oboru cestovní ruch na Vysoké škole polytechnické Jihlava mají podle doporučeného studijního plánu v pátém semestru povinný předmět Informační a rezervační technologie v cestovním ruchu. V tomto předmětu si mimo jiné vyzkouší i práci s takovýmto systémem. Škola do této doby k tomuto účelu využívala externí komerční systém. Takovéto řešení má ovšem několik nevýhod. Jednou z nevyhovujících vlastností takového řešení je fakt, že dosud využívaný komerční systém umožňuje vytvořit pouze 20 uživatelských účtů. Pokud se do předmětu Informační a rezervační technologie přihlásí vyšší počet studentů, nastane velmi výrazný problém. Z tohoto pohledu je dosavadní řešení zcela nevhodné. Další neduh tohoto řešení vychází z vlastní podstaty dosud využívaného systému. Tato aplikace totiž vyžaduje instalaci a pracuje lokálně. V praxi kvůli tomu nastávají různé problémy. Například pokud se výuka z nějakého důvodu přesune do jiné učebny, znamená to značné komplikace nejen pro studenty. Nevýhodou, která výrazně znesnadňuje pohodlné používání systému, je také skutečnost, že vyučující nemá nad systémem absolutní kontrolu. Když chce připravit systém pro výuku v novém semestru, nemá na to jednoduchý nástroj, který by mu to umožnil, a celá akce mu zabere velké množství času. V neposlední řadě vzpomeňme také finanční stránku této věci, kdy škola musí platit licenci k tomuto systému. Naprogramováním vlastního informačního systému cestovní kanceláře se všechny výše zmíněné problémy vyřeší. Vlastní systém bude navržený tak, aby v něm nebyl počet uživatelů nijak omezen. Nad všemi uživateli bude mít administrátor dokonalou kontrolu. Bude je moci podle potřeby přidávat i mazat. Naimplementována bude i funkce pro pohodlný přechod na nový semestr jednoduchým vyčištěním databáze. Nový informační systém cestovní kanceláře bude řešen jako webová aplikace na školním serveru. Tím pádem bude přístupný úplně odkudkoliv.
10
2.1 Existující řešení 2.1.1 Řešení vyžadující instalaci na lokální disk Na trhu existuje několik komerčních informačních systémů pro cestovní kancelář, které se mohou svými funkcemi od sebe drobně lišit, obecně však mají mnoho společného. Zásadní nevýhodou, která spojuje všechny tyto systémy, je fakt, že se musejí instalovat na lokální disk. Mohou být propojeny pomocí počítačové sítě, stále je to ovšem omezující, jelikož nejsou přístupné odkudkoliv. Jako příklad produktu z této kategorie si můžeme uvést informační systém pro cestovní kanceláře PRODIS CK. Tento konkrétní systém obsahuje několik modulů:
katalog zájezdů,
seznam zákazníků,
cestovní smlouva,
přehled plateb,
rozmístění cestujících,
definice autobusu,
rezervace ubytování,
rezervace zájezdu,
přehled cestovních smluv,
aktualizace faktury.
Tento systém obsahuje mnoho propracovaných funkcí, které reálné cestovní kanceláři zcela jistě usnadní její práci. Pro účely předmětu Informační a rezervační systémy je však nepoužitelný. Nabízí vytvoření pouze 3 účtů majitele cestovní kanceláře. Navíc neobsahuje žádné funkce pro vyučujícího, jelikož systém není vytvořený pro tento účel, a je zastaralý. [1]
11
2.1.2 Webové řešení Webové řešení eliminuje problém s přístupností informačního systému cestovní kanceláře, jelikož se k němu uživatelé dostanou odkudkoliv, kde mají internetové připojení. Tyto systémy jsou ovšem cílené na koncového zákazníka, nikoliv na školy jako výukový program. Proto jim chybí možnost vytvoření několika účtů tak, aby se každý z nich choval jako samostatná cestovní kancelář, a aby měl nad nimi administrátor plnou moc a mohl je libovolně přidávat či mazat. V této kategorii si jako příklad můžeme ukázat rezervační systém pro cestovní kancelář od společnosti MATCOMP s.r.o., která se mimo jiné zabývá také tvorbou webových stránek a tvorbou e-shopů. Tento systém se chlubí funkcemi pro vytváření zájezdů včetně editace země, lokace, ubytování, místa odletu, popisku, fotogalerie, termínu, ceny a podobně. Dále nabízí správu rezervací, detailní možnosti třídění a vyhledávání zájezdů, možnost online rezervace pro klienty, podporu různých typů akcí jako jsou last minute a jiné, export databáze do XML či možnost importu dat z MS Excel. Tento rezervační systém navíc obsahuje také redakční systém pro snadnou správu internetových stránek dané cestovní kanceláře. Umožňuje upravovat menu webu, editovat textový obsah jednotlivých stránek a vytvářet ankety pro zpětnou vazbu zákazníků. [2] Z výčtu funkcí je na první pohled jasné, že se ani tento systém pro výuku předmětu Informačních a rezervačních systémů příliš nehodí. Systém od společnosti MATCOMP s. r. o. si klade za cíl pomoci cestovním kancelářím a agenturám v jejich podnikání. Aby si mohli zákazníci těchto cestovních kanceláří snadno vybírat zájezd na svoji dovolenou, zejména pak aby si vybraný zájezd také objednali a tím generovali zisk těchto cestovních agentur. O to v této práci úplně nejde.
2.1.3 Školou používané řešení Vysoká škola polytechnická Jihlava do této doby používala rezervační systém STOVKA. Tento systém považuje za svoji výhodu to, že není pouze rezervačním systémem, ale obsahuje komplexní softwarové řešení pro cestovní kancelář. Nabízí také speciální program pro školy, ten je ovšem omezený počtem uživatelských účtů, administrátor nad ním nemá absolutní kontrolu a navíc je zpoplatněn měsíčním paušálem. [3] 12
2.2 Funkční požadavky Informační systém cestovní kanceláře bude vytvořen jako jednoduchá webová aplikace. Ta totiž s sebou nese několik výhod a vlastností, které jsou klíčové pro bezstarostný chod výukového programu. Webová aplikace se oproti té desktopové mnohem snadněji spravuje. Výuka předmětu totiž může každý semestr probíhat v jiné učebně. Nebo dokonce v rámci jednoho semestru může dojít k výjimečným situacím či nečekaným změnám, kvůli kterým se výuka přesune do jiné učebny. V případě využívání desktopové aplikace bychom v takovou chvíli řešili zbytečné problémy. V případě přesunutí výuky do jiné učebny pro nový semestr by problém nebyl tak kritický, pouze by nám znepříjemňoval práci. Aplikace by se musela v učebně instalovat na každý počítač zvlášť, což by zabralo spoustu času, který by se dal mnohem lépe využít. V druhém případě, kdy by došlo k výjimečné události, a výuka se přesunula do jiné učebny, se kterou se předem nepočítalo, by byl problém mnohem horší. V této učebně by totiž aplikace nebyla nainstalována a výuka by byla ohrožena. Webová aplikace těmto problémům předchází. K jejímu spuštění stačí pouze přístup na internet a webový prohlížeč, který je ve všech učebnách ve škole. V budoucnosti navíc může dojít k aktualizaci či vylepšení tohoto informačního systému pro cestovní kancelář. Díky webovému řešení se nesrovnatelně zjednoduší jeho nasazení do provozu. Stačí nahrát nejnovější verzi systému na školní server. Odpadá tím otravné aktualizování systému na každém počítači zvlášť, což by opět zbytečně zabralo ohromné množství času. Další výhoda, která plyne z tohoto řešení, je vysoká kompatibilita. Vzhledem k tomu, že aplikace běží na školním serveru a přistupuje se k ní přes internet skrze webový prohlížeč, vůbec se neřeší operační systém, který pohání daný počítač. Systém tak mohou uživatelé používat prakticky odkudkoliv. Bez problémů se přihlásí ke svému účtu i z pohodlí domova. Ať už z počítače, na kterém běží jakýkoliv operační systém s internetovým prohlížečem, nebo z mobilního zařízení. Mezi požadavky na aplikaci patří také jednoduchost. V dnešní době se totiž webové aplikace i weby samotné ubírají směrem zjednodušování. Ne ovšem ve smyslu, že by daná aplikace měla umět čím dál méně věcí a mít méně funkcí. Jednoduchostí se rozumí 13
především přímočaré řešení a pohodlí pro uživatele. Systém by měl být co nejintuitivnější, aby každý uživatel při prvním setkání s tímto systémem ihned věděl, co kterým tlačítkem provede. Jedním z nejdůležitějších požadavků potom je, aby každý student mohl systém využívat pro svoji vlastní cestovní kancelář. Aby si studenti do svých cestovních kanceláří nemohli vzájemně zasahovat. Tomu musí být přizpůsobený datový model webové aplikace, který si níže podrobněji představíme.
2.2.1 Role administrátor Používání systému bude rozděleno do tří základních rolí. Administrátor je v hierarchii rolí na samotném vrcholu. Uživatel, kterému bude přidělena tato role, je totiž vyučující předmětu Informační a rezervační technologie. Bude mít tak nástroje pro administraci celého systému, aby výuka probíhala v pořádku. Administrátor bude moci využívat následující funkce:
přehled všech uživatelů systému,
přidat správce (chcete-li, studenty či cestovní kanceláře),
změnit heslo správce,
smazat správce,
přidat administrátora,
smazat administrátora (ne však sám sebe),
vyprázdnit celou databázi (kromě svého účtu).
Administrátor se do systému přihlásí po zadání svého loginu (uživatelského jména) a hesla.
Přihlašovací
obrazovka
administrátora
je
dostupná
na
adrese
195.113.207.171/~ck/admin.
2.2.2 Role správce Studenti předmětu Informační a rezervační technologie mají roli správce. Účet studenta může vytvořit pouze vyučující s rolí administrátora. Studenti s rolí správce mají 14
k dispozici nástroje pro vedení vlastní cestovní kanceláře. Každý student má svoji vlastní cestovní kancelář. Správce vede svoji cestovní kancelář díky následujícím funkcím:
přidat zájezd (včetně obrázku zájezdu),
smazat zájezd,
přidat termín zájezdu,
smazat termín zájezdu,
potvrdit novou objednávku,
vytisknout fakturu potvrzené objednávky,
zobrazit přehled zákazníků.
Správce se do systému přihlásí po zadání svého uživatelského jména (shodného se školním loginem) a hesla. Přihlašovací stránka správce je dostupná na adrese 195.113.207.171/~ck/spravce.
2.2.3 Role zákazníka Vzhledem k povaze tohoto systému, který slouží jako výukový program, si zákazníky budou simulovat sami studenti, jelikož v jejich cestovních kancelářích nebudou reálné zájezdy. Zákazník bude mít následující možnosti:
zobrazit všechny zájezdy v dané cestovní kanceláři,
zobrazit všechny termíny patřící k danému zájezdu,
zobrazit úplně všechny termíny,
odeslat objednávku k danému termínu.
Zákazník v systému nemá zaregistrovaný svůj účet, proto nemusí zadávat žádné přihlašovací údaje. Na úvodní stránce si pouze vybere cestovní kancelář, do níž chce
15
vstoupit. Úvodní stránka pro vstup do cestovní kanceláře se nachází na adrese 195.113.207.171/~ck.
Obrázek 1: Use case diagram
16
3 Návrh implementace 3.1 Použité technologie 3.1.1 PHP Pokud bychom se chtěli vrátit ke kořenům skriptovacího jazyka PHP, museli bychom cestovat v čase až do roku 1994. V té době chtěl totiž dánsko-kanadský programátor Rasmus Lerdorf, který se narodil v Grónsku a později se přestěhoval se svoji rodinou do Kanady, vědět, kolik lidí navštěvuje jeho životopis umístěný na internetu. Proto si v Perlu naprogramoval jednoduchý systém, který počítal přístupy na jeho stránky. Spouštění Perlu ovšem poměrně výrazně zatěžovalo server. Tomu chtěl Rasmus Lerdorf, jenž mimo jiné pracoval také pro americkou společnost Yahoo Inc., ulevit, a tak své počítadlo přepsal do jazyka C. Dánsko-kanadský programátor věděl, že by se tento systém brzy mohl stát velice populárním. I to byl jeden z důvodů, proč svůj systém ještě rozšiřoval. Zároveň si byl dobře vědom, že velice důležitá je také zpětná vazba od uživatelů. Věřil, že další zapálení programátoři mohou v jeho projektu nalézt chyby a upozornit na ně. Tím by mu mohli pomoci tento systém ještě zdokonalit. Proto svůj projekt na začátku roku 1995 uvolnil jako open source a pojmenoval ho jako Personal Home Page Tools. Odtud pochází zkratka PHP, později se tento systém nazýval také jako Personal Home Page Construction Kit. [5] Vývoj PHP pak nabral rychlý spád. Brzy došlo k dalšímu významnému rozšíření tohoto skriptovacího jazyka. Rasmus Lerdorf jazyk obohatil o možnost začlenění SQL příkazů přímo do stránek, zobrazování výsledků SQL dotazů a práci s formuláři. To dalo vzniknout druhé verzi pojmenované PHP/FI 2.0 (Personal Home Page / Form Interpreter ve verzi 2.0), která spatřila světlo světa v roce 1996 a jako jednoduchý programovací jazyk se rychle šířila po celém světě. Tato verze byla ovšem omezena, jelikož běžela pouze na linuxových operačních systémech. Tomuto omezení ale brzy odzvonilo s příchodem PHP 3.0, které už umělo pracovat také na operačních systémech Windows a operačním systému počítače Macintosh. Od této verze se změnil také význam původní zkratky na Hypertext Prepocessor, jak ho známe dnes. V současnosti se používá PHP ve verzi 5.6, novinkou je vydání verze 7.0 na konci roku 2015. [6] 17
PHP je velice oblíbeným a zároveň také nejrozšířenějším skriptovacím jazykem pro webové stránky. Na tomto faktu má svůj vliv celá řada vlastností. Tento programovací jazyk není nikterak složitý na pochopení a dá se za relativně krátkou dobu naučit. Proto s ním řada vývojářů brzy začíná. Podobnost jeho syntaxe k tomu není příliš vzdálená od jazyka C, většina programátorů si tak na ni rychle zvykne. Výhodou také je, že se na internetu nachází plno volně dostupných kódů. Existují také komunitní weby, na kterých ostatní uživatelé ochotně odpovídají na (někdy i hloupé) dotazy a rádi se podělí o své zkušenosti. Když si začínající programátor s něčím neví rady, může se snadno inspirovat již hotovým řešením nebo ho může rovnou využít. Na druhou stranu, nezkušený vývojář může serveru pořádně zatopit svými neoptimalizovanými SQL dotazy. Tím se dostáváme k další výhodě. PHP totiž velmi dobře komunikuje s drtivou většinou nejpoužívanějších databázových systémů. Tento skriptovací jazyk se může pochlubit také tím, že je multiplatformní a lze jej zprovoznit na většině webových serverů i na většině operačních systémů. Navíc pro něj nalezneme podporu u většiny poskytovatelů webhostingu. K rozšířenosti PHP přispívá i to, že obsahuje tisíce různých funkcí, které se dají ještě rozšířit přídavnými knihovnami. Z toho může ovšem plynout i nevýhoda. Některé sobě podobné funkce mají například rozdílné pořadí svých atributů (array_filter() proti array_map()). Tento problém řeší dokumentace, která je poměrně dobrá. PHP se často používá k tvorbě webových aplikací v kombinaci přezdívané LAMP. Jedná se o spojení operačního systému Linux (L) s webovým serverem Apache (A), databázovým systémem MySQL (M) a právě PHP (P). [4]
3.1.2 Knihovna mPDF PHP knihovna mPDF nabízí třídu pro generování PDF dokumentů. Vytvořil ji Ian Back pod GPL licencí a vychází ze základů knihoven FPDF, HTML2FPDF a UPDF. Oproti nim však nabízí řadu vylepšení. Rozdíl oproti některým výše zmíněným knihovnám spočívá také v samotném generování PDF dokumentu. Ten totiž nevzniká vytvářením za pomoci příkazů určujícími souřadnice, na kterých se má jaký prvek vykreslit, ale převedením HTML stránky do formátu PDF.
18
Tato knihovna obsahuje velké množství dalších funkcí, které jsou podrobně popsány v šestisetstránkové dokumentaci. Třída mPDF dovoluje provádět různá nastavení výstupního dokumentu od určení velikosti stran přes určení základní velikosti písma či velikost rozlišení stránky v počtu bodů na palec až po nastavení defaultního typu písma. Knihovna může server poměrně vysoce zatížit, proto má v sobě také skript, pomocí kterého si snadno vybereme funkce, které budeme využívat a které ne. Po spuštění skriptu s vybranými funkcemi dojde k optimalizaci celé knihovny. [7] Výhodou této knihovny je, že je její použití poměrně jednoduché. Na vygenerování PDF dokumentu stačí v podstatě pouhé tři příkazy. Prvním se nadefinuje nový dokument, druhým příkazem se knihovně předloží HTML stránka, která se má převést do výsledného dokumentu a třetím příkazem se již PDF dokument vytvoří. Určitou nevýhodou naopak je, že knihovna nepodporuje všechny kombinace HTML tagů. Například v tabulce nelze používat blokové elementy jako je div nebo odstavec. Při generování jednoduchých dokumentů se však na problémy narazí výjimečně. Seznam všech známých omezení je obsažen v dokumentaci této knihovny.
3.1.3 HTML HTML, což znamená Hyper Text Markup Language, je značkovací jazyk, který je naprostým základem pro tvorbu internetových stránek. Vznik jeho první verze se datuje do roku 1990. Poté přicházely nové verze poměrně pravidelně (až na výjimky) ve dvouletých cyklech, abychom na Vánoce 1999 dostali dárek v podobě HTML 4.01, která měla být poslední. Tehdejší plány směřovaly k tomu, že se značkovací jazyk HTML nahradí za XHTML (Extensible Hypertext Markup Language), který bude vyhovovat podmínkám tvorby XML dokumentů. Situace se však nakonec vyvinula jinak. V roce 2014 se o slovo přihlásil opět jazyk HTML, který dospěl do verze 5.0. HTML5 samozřejmě vychází ze svého předchůdce. Odstraňuje ovšem několik zastaralých a v současné době již nepoužívaných prvků a naopak přidává nové tak, aby reflektoval potřeby aktuálních i budoucích webových stránek. Při návrhu nové verze se velká důraz kladl na zpětnou kompatibilitu, většina funkcí HTML5 tak funguje i ve starších internetových prohlížečích.
19
Jednou z novinek jsou nové elementy, které upřesňují popis obsahu. Mezi ně patří například: