V Ackee jsme letos ve větší míře vypsali závěrečné práce pro studenty ČVUT FIT. Role externích vedoucích se chopili absolventi ČVUT FIT z našich řad a každý si vymyslel 1-2 témata ze svého oboru. Cílem není práce na žádné konkrétní zakázce, jedná se o výzkumná nebo společensky přínosná témata, kterými chceme umožnit studentům, aby mohli pracovat na něčem zajímavém.

Pokud vás témata zaujala, napište rovnou na kontakt pod tématem, budeme se na vás těšit!

Provoz gRPC backendu v cloudovém prostředí (DevOps

josef.gattermayer@ackee.cz 

Technologie gRPC je vážný kandidát na nahrazení RESTových API, avšak celý ekosystém je ještě ve stádiu vývoje, takže je zde z pohledu DevOps a operations spousty zajímavých nedořešených témat. Cílem práce je prozkoumat aktuální stav a pomocí proof-of-concept implementací navrhnout infrastrukturu pro imaginární službu s user base desítky milionů uživatelů. Volba konkrétní technologie bude po dohodě s vedoucím práce, aktuálně přichází v úvahu např. Kubernetes, CloudRun nebo Istio. 

  • Navrhněte architekturu imaginární služby s několika backendovými micro services.
  • Pro zvolenou architekturu vyberte 2 rozdílné technologie cloudové infrastruktury, které budete porovnávat.
  • Implementujte PoC několika micro services.
  • Implementuje infrastrukturu (as a code).
  • Implementujte infrastrukturu pro deployment nových verzí aplikace pomocí blue-green deployment nebo canary deployment.
  • Výsledné řešení změřte pod zátěží simulující miliony uživatelů, dokažte že ani při deploymentu nové verze aplikace nedojde k přerušení gRPC streamu aktivním uživatelům.

Webový lexikon zvířat ZOO Praha (Web) 

jakub.baierl@ackee.cz

Pražská ZOO uveřejnila v rámci portálu opendata.praha.eu monžství zajímavých informací o zde žijící zvěři – http://opendata.praha.eu/dataset/zoo-lexikon-zvirat. Cílem práce je vytvořit webovou aplikaci, která tato data atraktivní formou přiblíží návštěvníkům a to včetně serveru, který bude data pravidelně aktualizovat.

Součástí práce bude implementace PWA technologie (rozsah po dohodě s vedoucím práce) s důrazem na dobré skóre a optimalizaci pro prohlížeče (SEO, Web vitals, Lighthouse) a  responzivní verze pro lepší dostupnost z mobilních zařízení.

  1. Analyzujte a popište strukturu zdrojových dat poskytovaných hl. m. Praha.
  2. S vedoucím práce specifikujte funkční a nefunkční požadavky na webovou aplikaci.
  3. Po dohodě s vedoucím práce navrhněte uživatelské rozhraní mobilní aplikace.
  4. Implementujte webovou aplikaci podle návrhu.
  5. V průběhu kontrolujte výsledky analyzačních nástrojů (Lighthouse, Web vitals) a případně optimalizujte.
  6. Otestujte webovou aplikaci.
  7. Shrňte výsledek práce, popište její přínosy.

Testování mobilních aplikací (iOS, Android

marek.elznic@ackee.cz 

Cílem práce je analyzovat a popsat technologie určené k testování mobilních aplikací. Součástí práce bude analýza aktuálního stavu vybrané aplikace a zhodnocení ekonomické výhodnosti implementace. Hlavním výsledkem práce bude implementace end-to-end testů.

  1. Analyzujte a porovnejte technologie na testování mobilních aplikací.
  2. Navrhněte testovací plán.
  3. Pro Vámi vybrané případy užití mobilní aplikace navrhněte testovací scénáře. 
  4. Implementujte end-to-end testy pro vybrané testovací scénáře. 
  5. Zhodnoťte výhody a rizika nasazení nástrojů automatického testování pro mobilní aplikace z ekonomického hlediska.

Testování výkonnosti webových aplikací (web) 

marek.elznic@ackee.cz 

Cílem práce je analyzovat a popsat technologie určené k testování výkonu webových aplikací. Součástí práce bude implementace výkonnostních testů vybrané existující aplikace. 

  1. Porovnejte a analyzujte nástroje na testování výkonu webových aplikací.
  2. Na vybrané webové aplikaci proveďte výkonnostní audit.
  3. Navrhněte testovací plán.
  4. Za pomocí zvoleného nástroje proveďte test výkonnosti a výsledky interpretujte. 
  5. Zhodnoťte výhody a rizika testování výkonu z ekonomického hlediska.

Serverová reflexe pro gRPC (Backend) 

jaroslav.smolik@ackee.cz 

Opensource RPC framework gRPC nabízí specifikaci protokolu serverové reflexe (https://github.com/grpc/grpc/blob/master/doc/server-reflection.md) pro standardní komunikaci schéma RPC služby od serveru ke klientovi (jména a typy volání, vstupní a výstupní zprávy a jejich serializace).

Reflexe je implementována ve většině podporovaných jazyků (https://github.com/grpc/grpc/blob/master/doc/server-reflection.md#known-implementations). Cílem práce je implementace pro jazyk, kde ještě podpora není. Volbu konzultujte s vedoucím práce.

  1. Popište protokol serverové reflexe, sémantiku a serializaci jednotlivých RPC.
  2. Zanalyzujte alespoň jednu z existujících implementací reflexe v jiném jazyce.
  3. Implementujte gRPC reflexi.
  4. Použijte vhodný existující nástroj pro otestování implementace a jednotlivé volání otestujte automatickými testy.

Interaktivní webová dokumentace pro Protocol Buffers (Backend/Frontend) 

jaroslav.smolik@ackee.cz 

Cílem práce je navrhnout a implementovat generátor statické webové prezentace pro dokumentaci gRPC API. Vstupem jsou soubory proto files, které nesou popis služeb, volání a typů. Výstupem je HTML stránka s dokumentací a možností provolání API (za předpokladu že API podporuje gRPC-web).

  1. Proveďte rešerši existujících řešení pro Protocol Buffers a porovnejte vlastnosti s obdobnými nástroji pro GraphQL, resp. RESTful API.
  2. Navrhněte a otestujte uživatelské rozhraní
  3. Navrhněte a implementujte generátor dokumentace s možností provolání existujícího gRPC-web API.
  4. Diskutujte a případně implementujte alternativní zdroj dat pomocí gRPC reflexe.
  5. Aplikaci otestujte automatickými testy a proveďte uživatelské testování.

Srovnání REST, GraphQL a gRPC API v Node.js, (Backend) 

lukas.loukota@ackee.cz 

Cílem práce je je vytvořit shodné API v REST, GraphQL a gRPC nad Node.js. Součástí práce bude rešeršní část o jednotlivých technologiích, ekosystému a jejich podpoře v Node.js. Navazovat bude implementační část API s použitím daných technologií. Dále budou jednotlivé technologie srovnány mezi sebou.

1. Popište technologie Node.js, REST, GraphQL a gRPC.
2. Implementujte shodné API v Node.js s použitím daných technologií (s testy).
3. Popište metodologii porovnání (dokumentace, rychlost a DX vývoje, výkonnostní testování, …).
4. Proveďte srovnání a zhodnoťte.

Návrh business intelligence systému (ISM) 

marek.priban@ackee.cz 

Cílem práce je navrhnout interní firemní business intelligence systém nad datovou sadou z task management systému. Systém má poskytnout jednoduchý a intuitivní pohled na finanční a další ukazatele společnosti a projektů.

  1. Analyzujte dodané datové sady.
  2. Navrhněte architekturu systému, včetně synchronizace dat z externích datových sad.
  3. Po dohodě s vedoucím specifikujte funkční a nefunkční požadavky na systém.
  4. Navrhněte uživatelské rozhraní webové aplikace.
  5. Odhadněte časovou a finanční náročnost vytvoření systému.
  6. Zhodnoťte přínosy vytvoření systému a navrhněte další postup.

Aplikace pro zobrazení výsledků hlasování Poslanecké sněmovny (Android/iOS + backend) 

ondrej.john@ackee.cz

Cílem práce je návrh, implementace a otestování mobilní aplikace sloužící k zobrazení výsledků hlasování během jednotlivých schůzí Poslanecké sněmovny Parlamentu České republiky. Aplikace bude obsahovat následující funkce:

  • Souhrnný výsledek hlasování (přijat/nepřijat, počty hlasů pro/proti/zdržených).
  • Výsledek hlasování s rozpisem hlasování jednotlivých poslanců.
  • Profil poslance obsahující seznam jeho hlasů.
  • Odkazy na web PSP k příslušným poslancům / hlasováním.

Součástí práce bude implementace back-end služby poskytující data pro mobilní aplikaci prostřednictvím REST API.

  1. Analyzujte a popište strukturu zdrojových dat poskytovaných PSP.
  2. S vedoucím práce specifikujte funkční a nefunkční požadavky na mobilní aplikaci a back-end API.
  3. Po dohodě s vedoucím práce navrhněte uživatelské rozhraní mobilní aplikace.
  4. Navrhněte rozhraní REST API, které bude poskytovat data pro mobilní aplikaci.
  5. Implementujte REST API podle návrhu.
  6. Otestujte implementované API.
  7. Implementujte mobilní aplikaci podle návrhu.
  8. Otestujte mobilní aplikaci.
  9. Shrňte výsledek práce, popište její přínosy.

Mobilní aplikace Tříděný odpad Praha (Android/iOS + backend) 

ondej.john@ackee.cz 

Cílem práce je návrh, implementace a otestování aplikace pro OS Android obsahující seznam kontejnerů na tříděný odpad na území hlavního města Prahy. Budou podporovány mobilní telefony, tablety a wearables (chytré hodinky). Aplikace bude obsahovat následující funkce:

  • Zobrazení jednotlivých kontejnerů na interaktivní mapě.
  • Zobrazení formou seznamu s možností filtrování, třídění a vyhledávání.

Součástí práce bude implementace back-end služby poskytující data pro mobilní aplikaci prostřednictvím REST API.

  1. Analyzujte a popište strukturu zdrojových dat poskytovaných hl. m. Praha.
  2. S vedoucím práce specifikujte funkční a nefunkční požadavky na mobilní aplikaci a back-end API.
  3. Po dohodě s vedoucím práce navrhněte uživatelské rozhraní mobilní aplikace.
  4. Navrhněte rozhraní REST API, které bude poskytovat data pro mobilní aplikaci.
  5. Implementujte REST API podle návrhu.
  6. Otestujte implementované API.
  7. Implementujte mobilní aplikaci podle návrhu.
  8. Otestujte mobilní aplikaci.
  9. Shrňte výsledek práce, popište její přínosy.

Mobilní aplikace s veřejnou databází toalet 💩 (Android/iOS + backend) 

jan.misar@ackee.cz 

Cílem práce je vytvořit komunitní databázi veřejných toalet a prostřednictvím mobilní aplikace pro iOS umožnit uživateli rychlé nalezení a výběr toalety v jeho okolí. Základem databáze budou existující open data, která budou komunitou postupně doplňována o další toalety. Kromě veřejné databáze bude aplikace sloužit i jako uživatelův osobní zápisník návštěv toalet.

  1. Vyhledejte a porovnejte existující české i zahraniční služby pro veřejné toalety.
  2. Vyhledejte a analyzujte dostupná veřejná data.
  3. Navrhněte a implementujte serverovou část včetně REST API pro mobilní aplikaci. 
  4. Navrhněte a implementujte mobilní aplikaci pro iOS. Při návrhu se zaměřte na gamifikační prvky a UX techniky pro maximální user retention.
  5. Výslednou mobilní aplikaci a serverovou část otestujte.

Návrh aplikace pro vzdálenou výuku – (ISM) 

jan.vitek@ackee.cz 

Cílem práce je navrhnout a naplánovat vývoj webové aplikace, která bude sloužit pro vzdálenou výuku a komunikaci mezi žáky a učiteli na střední škole. Aplikace by měla co nejvíce zjednodušit jejich komunikaci v situacích, kdy žáci nenavštěvují školu na denní bázi, ale přesto se nadále vzdělávají.

  1. Analyzujte současná řešení, která slouží pro vzdálenou výuku.
  2. Po dohodě s vedoucím specifikujte požadavky cílové skupiny na funkce aplikace.
  3. Odhadněte časovou a finanční náročnost vytvoření aplikace.
  4. Vytvořte prototyp rozhraní webové aplikace.
  5. Definujte vývojový tým a simulujte průběh agilního vývoje projektu – minimálně prvních 5 sprintů.
  6. Zhodnoťte přínosy aplikace a navrhněte segmenty pro možná využití.

Mobilní aplikace Racing dashboard (iOS) 

lukas.hromadnik@ackee.cz  

Cílem práce je návrh, implementace a otestování aplikace pro iOS obsahující grafické znázornění dat ze závodního simulátoru. Budou podporovány mobilní telefony a tablety. Aplikace bude obsahovat následující funkce:

  • Zobrazení základních dat o závodním automobilu – aktuální rychlost, otáčky motoru, zařazenou rychlost.
  • Zobrazení základních dat o vybraném závodě – čas od začátku, počet kol, nejrychlejší a aktuální čas kola.
  • Zobrazení pokročilých dat – vývoj rychlosti v průběhu kola, vývoj užití plynového / brzdového pedálu v průběhu kola, apod.

Součástí práce bude implementace síťové vrstvy umožňující komunikaci s vybraným závodním simulátorem prostřednictvím UDP paketů.

  1. Analyzujte již existující aplikace pro zobrazování dat z herních simulátorů.
  2. Analyzujte a popište strukturu dat poskytovaných vybraným závodním simulátorem.
  3. Po dohodě s vedoucím práce specifikujte funkční a nefunkční požadavky na mobilní aplikaci.
  4. Po dohodě s vedoucím práce navrhněte uživatelské rozhraní mobilní aplikace.
  5. Navrhněte a implementujte síťovou vrstvu, pomocí které bude mobilní aplikace data přicházející ze závodního simulátoru zpracovávat.
  6. Otestujte správnost implementace síťové vrstvy.
  7. Naimplementujte mobilní aplikaci podle zadání.
  8. Otestujte mobilní aplikaci.
  9. Shrňte výsledek práce, popište její přínosy.

Máte zájem o spolupráci? Pojďme to probrat osobně!

Napište nám >