Itteratio – Informační systém pro MHD
• HTML 5, CSS 3, PHP, MySQL, JavaScript, jQuery, Google Maps API• 3 706 řádků kódu: 1 731 PHP+HTML, 1 470 CSS, 505 Javascript
Projekt itteratio byl vytvořen jako semestrální práce předmětu webové aplikace. Web byl napsán v dvoučlenném týmu s Janem Havlem.
Systém umožňuje uživateli vyhledání spoje MHD podle zadaných kritérií. Mou prací na projektu bylo vytvoření kódu pro vyhledávání a systém administrace dat zastávek a spojů. Mezi další funkce systému (realizované kolegou) patří našeptávač nebo využití map (Google Maps API) pro výběr zastávek pro vyhledávání a interaktivní mapy v administraci.
Pro samotné vyhledávání spojení je využit upravený dijkstrův algoritmus (předčasné ukončení) na grafovém vyjádření dat jednotlivých spojů.
Administrace
Ukázka kódu
// dijkstrův algoritmus (s predcasnym ukoncenim): $pruchodu = 0; while ($pocet_navstivenych < $i && $pruchodu < 1000) // dokud existují nenavstivene vrcholy { $min = extractMin($vrcholy, $i); $vrcholy[$min]["navstiven"] = TRUE; $sousedi = getNeighbors($vrcholy[$min]["id"], $hrany, $vrcholy, $i); if (isset($sousedi)) { foreach ($sousedi as &$value) { $rozdil = date_diff(date_create_from_format("H:i:s",$vrcholy[$min]["prijezd"]), date_create_from_format("H:i:s",$vrcholy[$value]["prijezd"])); if ($min != -1) { $alt = date_add($vrcholy[$min]["vzd"], $rozdil); $vzdd = $vrcholy[$value]["vzd"]; if ( ($vzdd == "inf") || ($alt < $vzdd)) // tato cesta k vrcholu je kratsi nez predchozi navrzena { $vrcholy[$value]["vzd"] = $alt; // nastavit novou vzdalenost a predchozi vrchol $vrcholy[$value]["predchozi"] = $min; if ($vrcholy[$value]["zastavka_id"] == $b) // je to cílová zastávka { $cilovy_index = $value; goto konec; } } } } unset($value); } $pruchodu++; } konec: