Master's Thesis

Kolaborativní sdílení dat v aplikaci pro správu času

Final Thesis 13.24 MB

Author of thesis: Ing. Jan Zimola

Acad. year: 2024/2025

Supervisor: Ing. Jiří Hynek, Ph.D.

Reviewer: Ing. Kristýna Zaklová

Abstract:

This thesis lays the groundwork for future cross-platform support and user collaboration in TimeNoder2. It introduces two synchronization strategies: one for a single user across multiple devices, based on the WatermelonDB protocol, and another for multi-user collaboration across devices, utilizing the existing PowerSync synchronization framework. A key contribution is the implementation of shared documents with conflict resolution and full offline capability, built upon the AppFlowy editor. The project also extends TimeNoder2 to WearOS using Flutter, resulting in a standalone smartwatch application with persistent offline functionality. This design addresses several limitations found in existing smartwatch apps, such as TickTick and Focus ToDo.

Keywords:

Synchronization protocols, conflict-free replicated data types, collaborative editing, smartwatch applications, WearOS development, Flutter framework, offline-first design, PowerSync, WatermelonDB protocol

Date of defence

23.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Můžete upřesnit, jaké kroky by bylo třeba učinit, aby bylo možné obě synchronizační strategie integrovat a nabídnout uživatelům v rámci aplikace TimeNoder2?
  2. Jaká verze aplikace je nyní k dispozici?
  3. Jaká vylepšení jste realizoval v rámci práce nad rámec již publikované verze?
  4. Co byl hlavní cíl vaší diplomové práce?
  5. V čem je vaše řešení lepší než jiná řešení, která jsou k dispozici?
  6. Proč používáte (nebo jste používal) nenormalizovanou databázi?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Application Development (NADE)

Composition of Committee

prof. Ing. Tomáš Hruška, CSc. (předseda)
Ing. Vladimír Bartík, Ph.D. (člen)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)
Ing. Vladimír Veselý, Ph.D. (člen)
Ing. Jan Pluskal, Ph.D. (člen)
Ing. Tomáš Goldmann, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Hynek, Ph.D.

Student řešil rozsáhlé téma, v kterém se podařilo najít, implementovat a otestovat principy řešení všech požadovaných problémů. Oceňuji, že se student rozhodl psát práci v anglickém jazyce. Navrhuji hodnocení stupněm C.

Evaluation criteria Verbal classification
Informace k zadání

Zadání vzniklo jako nápad studenta rozšířit mobilní aplikaci TimeNoder2, která původně vznikla v rámci bakalářské práce studenta [1] a kterou dále rozvíjel jako svůj osobní projekt. Úkolem bylo rozšířit řešení o podporu synchronizace dat mezi více zařízeními, více uživateli a také zajistit podporu spuštění a synchronizace na chytrých hodinkách. Mimo jiné se student rozhodl řešit synchronizaci dokumentů. Práci pojal více jako rešerši a rozhodl se prozkoumat různé přístupy, např. koncept CRDT (Conflict-free replicated data type). Náročnost zadání hodnotím jako průměrnou, nicméně vyžadovanou práci z důvodu velikosti datového modelu aplikace TimeNoder2 jako rozsáhlou. Student proto implementoval jednotlivé koncepty, demonstrující řešení, které aplikoval na podmnožinu datového modelu. Nepokryl celý datový model aplikace. Z hlediska diplomové práce to nicméně považuji za dostačující.

[1] ZIMOLA, Jan. Smart Task Planner. Brno, 2023. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce: Ing. Jiří Hynek, Ph.D.

Aktivita při dokončování

Práce byla dokončována na posledních chvíli a její finální obsah by si zasloužil lepší prostor pro konzultování.

Publikační činnost, ocenění

Výsledky současně představují spíše tzv. proof of concept. Po pokrytí celého datového modelu by je bylo potenciálně možné začlenit do uveřejněné aplikace TimeNoder2 dostupné na Google Play.

Práce s literaturou

Student si aktivně dohledával literaturu týkající se zejména použitých technologií a problematiky lokalizace v reálném čase.

Aktivita během řešení, konzultace, komunikace

Student byl až na některá krátká období aktivní během celého akademického roku. Rád bych vyzdvihl jeho samostatnost a schopnost řešit netriviální problémy.

Points proposed by supervisor: 75

Grade proposed by supervisor: C

Reviewer’s report
Ing. Kristýna Zaklová

Student prostudoval vybranou problematiku a navrhl, implementoval i demonstroval řešení, které splňuje vytyčené cíle. S ohledem na výše uvedené výhrady navrhuji hodnocení stupněm C.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání téměř splněno s drobnými výhradami

Zadání považuji za splněné. Textová část práce obsahuje informace, které pokrývají všechny body zadání, s výjimkou bodu 2, z něhož nebyl popsán hardware pro chytré hodinky. Diskutabilní je bod 5, neboť z hlediska synchronizace byly implementovány pouze ukázky jednotlivých konceptů, které nebyly zcela integrovány do vyvíjené aplikace. S tím souvisí i bod 6, část řešení nebylo možné otestovat v reálném prostředí. Výstupy však rozsahem odpovídají diplomové práci.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce má 71 stran včetně seznamu literatury, rozsah technické zprávy splňuje předepsané požadavky. 

Prezentační úroveň technické zprávy

Struktura technické zprávy se skládá z osmi kapitol. Zpráva má logické členění a její obsah je vhodně rozdělen. V nadpisech v sekci 2.4 se zbytečně opakuje název “Existing Time-Management Applications”. Nad sekcí 4.1 chybí úvodní text a bylo by vhodnější výchozí stav aplikace lépe představit a nenutit čtenáře zkoumat první verzi v bakalářské práci autora. Dále v praktické části postrádám obrázek architektury celého řešení (původní aplikace, nové výstupy atd.). Nešťastný je úvod šesté kapitoly, kde autor uvádí, že navržené výstupy není možné ihned implementovat, tato kapitola tedy nenavazuje na kapitolu předchozí.

70
Formální úprava technické zprávy

Technická zpráva je psaná angličtinou na dobré úrovni a neobsahuje zjevné chyby. Po jazykové i typografické stránce je text také na dobré úrovni.

80
Práce s literaturou

Práce se odkazuje celkem na 69 zdrojů, část tvoří vědecké publikace, ale velkou část tvoří také webové zdroje. Šest zdrojů zahrnuje videa z YouTube, která nepovažuji za vhodné hlavní zdroje informací, příklad nevhodného použití je na konci sekce 2.2.

70
Realizační výstup

Realizační výstup zahrnuje aplikaci TimeNoder2 pro chytré hodinky s operačním systémem WearOS. Z hlediska plánování a synchronizace úkolů byly implementovány dva přístupy – jeden založený na protokolu WatermelonDB pro jednoho uživatele na více zařízeních, druhý využívající synchronizační rámec PowerSync pro spolupráci více uživatelů na různých zařízeních. Dále byl vytvořen plugin pro Appflowy editor pro synchronizaci dokumentů mezi zařízeními.

80
Využitelnost výsledků

Aplikace TimeNoder2 je dostupná na Google Play a vytvořené výstupy pro plánování a synchronizaci úkolů jsou do ní potenciálně integrovatelné.

Náročnost zadání

Evaluation level: průměrně obtížné zadání

Zadání práce hodnotím jako průměrně obtížné. Student prostudoval problematiku plánování a synchronizace úkolů. Dále se zabýval technologií chytrých hodinek, přičemž se soustředil především na využívané operační systémy. V praktické části navázal na svou bakalářskou práci, v rámci níž vytvořil mobilní aplikaci pro inteligentní plánování úkolů. Tato aplikace měla být rozšířena o synchronizaci mezi zařízeními a uživateli, a dále měla být vytvořena varianta aplikace pro chytré hodinky. Výsledné řešení mělo být otestováno v reálném prostředí.

Topics for thesis defence:
  1. Můžete upřesnit, jaké kroky by bylo třeba učinit, aby bylo možné obě synchronizační strategie integrovat a nabídnout uživatelům v rámci aplikace TimeNoder2?
Points proposed by reviewer: 75

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová