Bakalárska Práca

(3-AIN 2022/2023)

Vedúci

Mgr. Pavel Petrovič, PhD

Názov Práce

Systém pre dlhodobú správu zadaní úloh

Zdrojový kód

Anotácia

Viac ako desať rôznych predmetov v študijnom programe Aplikovaná informatika využíva systém LIST, v ktorom sú uložené zadania úloh z viac ako desiatich rokov, zostavy úloh, automatické testy, systém umožňuje rozdelenie študentov do skupín zverejňovanie materiálov, hodnotenie, automaticky vytvára tabuľky hodnotení, poskytuje automatickú a manuálnu spätnú väzbu študentom a prispieva tak k zlepšovaniu kvality výučby. Systém je vyvinutý vo webovom frameworku, ktorý za dobu jeho prevádzky morálne zastaral a skôr alebo neskôr bude portebné vytvoriť celkom nový systém.

Cieľ

Cieľom tejto práce je navrhnúť a položiť dobré základy nového systému. Vzhľadom na rozsah systému LIST je ťažké predpokladať, že nová verzia vznikne v rozsahu jednej bakalárskej práce, ale mal by vzniknúť funkčný a používateľný základ, ktorého kód bude ľahko udržiavateľný, modulárny, dobre dokumenovaný a prehľadný tak, aby sme postupným rozširovaním systému mohli získať plnohodnotnú náhradu systému LIST.

Východiská

Podobné Práce

Súčasné riešenia (vrámci praxe v PosAm s.r.o.)

note: súkromne a verejne nedostupné webové aplikácie

  • Ministerstvo Financii SR, Rozpočtový informačný systém - Modul úprav rozpočtu (RIS - MUR)
  • Ministerstvo Financii SR, Rozpočtový informačný systém - Development Cooperation (RIS - DEV)

Literatúra

Iné

Denník

30. Sept. 2022

  • Prvotné stretnutie a konzultácia k téme bakalárskej práce s vedúcim
  • Úvod do aktuálneho riešenia odovzdávacieho systému LIST
  • Určenie stanovísk, potrieb a funkcionality systému

5. Okt. 2022

  • Stretnutie s vedúcim: Doménové intro do aktuálneho LIST

7. Okt. 2022

  • Analýza domény, prvotný návrh jednoduchšieho modela domény
  • Analýza funkcionality a rozbor potrebných technológii pre nový systém

14. Okt. 2022

  • Práca na návrhu domény a architektúry

22. - 23. Okt. 2022

  • Dokončenie prvotného návrhu domény prostredníctvom ERD diagramu a architektúry

ERD v1

ERD v1

26. Okt. 2022

  • Konzultácia v PosAm s.r.o. - Návrh architektúry s Marínou Madovou
  • Úprava návrhu architektúry podľa nových myšlienok

ERD v1

27. Okt. 2022

  • Stretnutie s vedúcim
    • Prezentácia návrhu domény a architektúry
    • Prezentácia technológii, brainstorming o potrebe a možných problémoch

28. Okt. 2022

  • Úprava návrhu domény po konzultácii s vedúcim

ERD v1

3. Nov. 2022

  • Stretnutie s vedúcim
    • Odprezentovanie zmien v doménovom modeli (návrh oficiálne odsúhlasený)
    • Odprezentovanie a vysvetlenie prepojenia jednotlivých služieb, komunikácia, prepojenie na UI
    • Zadefinovanie štruktúry UI projektu tak, aby sedel s modularitou návrhu
    • Zistili sme, že keď už mám prehľad v doméne a pripravený návrh, je potrebné dohodnúť konzultáciu s inými učiteľmi (úživateľmi akt. LIST-u) a zistil sa ich pohľad na LIST (nedostatky, podmienky pre nový systém, čo by úvitali, ...)

18. - 19. Nov. 2022

  • Prvotná implementácia
    • Vytvorenie projektov, repozitára, zadefinovanie štruktúry
    • Návrh parent projektu pre všetky služby tak, aby v prípade potreby pridania novej služby nebude treba krkolomný rozbor existujúcich služieb. Po správnej implementácii parent projektu bude postačujúce vytvoriť novy Maven projekt, zadefinovať jednu závislosť na parent, skopírovať predprípravenú štruktúru kódu (directories, property file, main class)
    • Implementácia domény do listng-core

23. Nov. 2022

  • Stretnutie s RNDr. Andrej Blaho, PhD
    • Veľa postrehov k nedostatkom aktuálneho systému (zložitosť ovládania učiteľského rozhrania, nastavovania, ...)
    • Poznámky k funkcionalite nového LIST-u (Čo MUSÍ obsahovať, čo by bolo uvítane, možné rozšírenia v budúcnosti)
    • Na čo si dávať pozor pri implementácii a navrhovani UI

konzultacia notes

24. Nov. 2022

    • Stretnutie s RNDr. Peter Borovanský, PhD
      • Je dôležité si spojazdniť lokálne aktuálny LIST, odskúšať si jeho funkcionalitu, zoznámiť sa s rôznymi nastaveniami a možnosti. Je potrebné niečo ponechať ale hlavne lepšie navrhnúť nastavenie napr. testovač pre zostavu a iné
      • Čo je VEĽMI dôležitá funkcionalita čo treba zahrnúť (kopírovanie kurzu s jeho zostavami, študenti ako admin vrámci kurzu, historia submitov, ...)

konzultacia notes

30. Nov. 2022

  • Stretnutie s Ing. František Gyárfáš, PhD
    • Implementačné rady a vystrahy pri tvorbe vlastného odozdavácieho systému
    • Testovač MUSÍ byť zabalený do vlastného VM alebo iného prostredia, tak aby nemal prístup k dátam, internetu a iné.
    • Treba si dávať pozor na verziu jazykov (Java SDK, Python version, ...)
    • Proces prototypovania

konzultacia notes

7. Dec. 2022

  • Stretnutie s vedúcim
    • Odprezentovanie zistení zo stretnutí s inými učiteľmi
    • Vytvorenie playground databázy na Kempelen server
    • Diskusia o založení web server pre LIST-NG, aby pri vývoji nebola potreba mať spústené všetky služby lokálne

16. - 17. Dec. 2022

  • Štúdia inštalácie Tomcat webserver-a. Je to zdlhavý proces inštalácie kde jej správne nastavenie bude časovo drahá záležitosť. V počiatočnej fáze vývoju nebude potreba Tomcat, nakoľko až kým sa dostanem na UI tak bude postačovať lokálne spustené služby.

1. Feb. 2023

  • Zahájenie full-on implementácie projektu
  • Research produktu Consul a jej nastavenie pre localhost. Tu bude treba si dať pozor ešte na to, že localhost Consul sa líši od tej čo bude na webserver, teda po inštalácii Tomcat bude potrebné sa venovať opätovnému nastaveniu Consul pre Linux server

5. Feb. 2023

  • Implementácia domény, namapovanie na databázové tabuľky
  • Vytvorenie parent project pre služby, definícia spoločných properties a Bean-ov
  • Vytvorenie projektu pre localhost Consul, nastavenie autodiscovery pre služby

10. Feb. 2023

  • Práca s localhost Consul
  • Zmena prepojenia služieb na parent project (listng-infrastructure)

14. Feb. 2023

  • Zmena mapovania tried na databázové tabuľky
  • Štúdia DDD a Hexagonal architecture spolu s príkladmi z práce

15. Feb. 2023

  • Stretnutie s vedúcim
    • Odprezentovanie pokrokov v implementácii
    • Konzultácia ohľadom bakalárskej práce (dokument), obsah kapitol, plán kedy treba začať pracovať na ňom.

19. Feb. 2023

  • Vytvorenie stránky pre bakalársku prácu
  • Zadefinovanie timeline implementácie

20. Feb. 2023

  • Štúdia a playground implementácia tool pre migrácie databázy (Liquibase)
  • Zadefinovanie API pre jednotlivé služby (návrh funkcionality každej služby, jej zodpovednosti a prepojenie medzi ostatnými službami)

1. - 7. Mar. 2022

  • Analýza a vyhľadavanie potrebných technológii pre vývoj ďalšej funkcionality.
  • Štúdia a testovanie technológie Thymeleaf pre generovanie HTML stránok, ktoré chceme využiť pre posielanie emailov. Vytvorenie predlohy a testovanie odosielania emailov.

formatted email

10. - 15. Mar. 2022

  • Vytvorenie Angular aplikácie, zadefinovanie jej štuktúry
  • Tvorba wireframes a náčrtov okien pre stránky
  • Analýza potrebných implementácií v rámci Angular aplikácie

18. - 30. Mar. 2022

  • Štúdia a implementácia Spring security - manažovanie oprávnení a prístupov na gateway

1. - 5. Apr. 2022

  • Implementácie komunikácie medzi službami
  • Štúdia FeignClient
  • Úprava implementácie Consul

7. - 15. Apr. 2022

  • Vytvorenie dokumentácie textu bakalárskej práce
  • Definícia jednotlivých kapitol a podkapitol
  • Študia a implementácia JWT Tokenov, šifrovania, Request Headers

17. - 24. Apr. 2022

  • Implementácia služieb a util tried pre autorizáciu, JWT tokeny v module gateway
  • Spracovanie interceptorov a guard pre riadenie oprávnenia na používateľskom rozhraní

27. - 30. Apr. 2022

  • Implementácia layout-u pre okna, zamedzenie responzivity aby sme zarucili na stranke jednotne rozlozenie obsahu na vsetkych zariadeniach.
  • Implementácia navigácie, vzhľadu, Angular Material témy

1. - 7. Máj. 2022

  • Práca na východiskovej časti textu
  • Setup server, SKD, Postgres, NodeJs, Consul pre unix
  • Vyhľadavánie zdrojov pre text a pomoc pri ukončení implementácie Spring Security.
  • Implementácia znovupoužívateľných komponentov pre filtrovanie a tabuľky na okna so správou.

8. - 12. Máj. 2022

  • Problémy s autorizáciou. Odstúpili sme od implementácie JWT tokenov v hlavičke odpovedi ale ako náhradu sme použili Cookies.
  • Testovanie novej implementácie, automatické vypršanie platnosti Cookie s tokénom
  • Zmena návrhu, odstránenie jednotného projektu pre zdielanie závislosti. Infrastructure je po novom iba balík so zdieľanými implementáciami.
  • Spracovanie kapitoly návrhu a jednotlivých iterácii, abstrakt a záver.

13. - 20. Máj. 2022

  • Error handling na UI pomocou dialogov, presmerovanie na 404 page, odchytávanie odpovedí na dopyty a kontrola ich HTTP response code
  • Nginx setup pokus
  • Ukončenie implementácie User a Course module, okno pre správu používateľov
  • Spracovanie kapitoly implementácie, doladenie detailov v ostatných častiach

404 page

layout of webpage

20. - 30. Máj. 2022

  • Ukončenie textu bakalárskej práce
  • Upratanie kódu, analýza nedostatkov aktualného riešenia, ďalšie kroky a postupnosť implementácie pre nasledujúcu bakalársku prácu.