Skip to content

Latest commit

 

History

History
1201 lines (798 loc) · 158 KB

README.md

File metadata and controls

1201 lines (798 loc) · 158 KB

Načrt sistema

Naziv projekta Občinski Obveščevalnik
Člani projektne skupine Eva Bizilj, Klemen Jerman, Miha Širovnik, Nikolay Vasilev, Andraž Zrimšek
Kraj in datum Ljubljana, 1. 5. 2022

Povzetek

Dokument načrta sistema prikazuje 3 sklope načrta programske rešitve aplikacije.

V okviru načrta arhitekture smo prikazali 3 različne poglede (logični, fizični in razvojni), ki prikazujejo splošno zgradbo spletne aplikacije iz različnih perspektiv. Pri tem smo uporabili postavitvene, paketne in komponentne diagrame. Arhitekturni vzorec model-pogled-krmilnik (MVC) smo uporabili za logični pogled.

V okviru načrta strukture smo naredili razredni diagram, ki predstavlja podrobnejšo strukturo sistema. Na njem smo označili 4 načrtovalske vzorce, ki jih bomo uporabljali tekom razvoja aplikacije. Nato smo opisali razrede ter njegove atribute (ime, podatkovni tip, pomen in zalogo vrednosti) in metode (ime, imena in tipi parametrov, tip rezultatov in pomen).

V zadnjem delu dokumenta smo opisali načrt obnašanja naše aplikacije, kjer so prikazani diagrami zaporedja. Vsak diagram zaporedja predstavlja en tok dogodkov primera uporabe iz diagrama primerov uporabe, ki smo ga opisali v dokumentu zajema zahtev.

1. Načrt arhitekture

V sklopu načrta arhitekture so prikazani trije pogledi na arhitekturo sistema in sicer logični, razvojni in fizični.

Pogled 1: Logični pogled

Logični pogled prikazuje ključne abstrakcije v sistemu v obliki objektov oz. razredov. Za prikaz smo uporabili postavitveni diagram in vzorec model-pogled-krmilnik (MVC). Sistem smo strukturirali v tri logične komponente, ki medsebojno sodelujejo:

  • model (upravitelj sistemskih podatkov in povezanih operacij na teh podatkih)
  • pogled (opredelitelj in upravitelj načina predstavitve podatkov uporabnikov)
  • krmilnik (upravitelj uporabniške interakcije, ki le te prenese v pogled in model)

Dodali pa smo še pomožno komponento sistemski vmesniki, ki prikazuje interakcijo med komponento krmilniki in sistemskim vmesnikom SVGoogleCalendar API.

Vse komponente so povezane preko brskalnika, ker drugače ne moremo dostopati do spletne aplikacije.

Logični pogled

Izvorna koda digrama 📊 PlantUML

V nadaljevanju so podrobno prikazani naslednji podsistemi:

  • avtentikacija
  • uporabnik
  • predlog
  • novica
  • občina
  • dogodek

Podsistem 1: Avtentikacija

Podsistem Avtentikacija vključuje upravljanje z dvema pogledoma ZMRegistracijkiObrazec in ZMPrijavniObrazec. KrmilnikRegistracija in KrmilnikPrijava smo za večjo preglednost združili v KrmilnikAvtentikacija. KrmilnikAvtentikacija pošlje zahtevo za prikaz obrazca za registracijo oz. za prikaz obrazca za prijavo, v katerega uporabniki sistema vnesejo potrebne podatke. Pogleda nato pošljeta zahtevo po izvedbi dane funkcionalnosti (registracija oz. prijava uporabnika v sistem), s katero upravlja krmilnik avtentikacije (KrmilnikRegistracija, KrmilnikPrijava). Po izvedeni funkcionalnosti se podatki prenašajo skozi model Uporabnik, kateri z njimi nato upravlja in tudi vrne sporočilo o pravilni prijavi krmilniku avtentikacije.

Podsistem 1: Avtentikacija

Izvorna koda digrama 📊 PlantUML

Podsistem 2: Uporabnik

Podsistem Uporabnik vključuje upravljanje z dvema pogledoma ZMUporabniškiProfil in ZMSeznamUporabnikov. KrmilnikUporabnik pošlje zahtevo za prikaz uporabniškega profila pogledu ZMUporabniškiProfil, le-ta krmilniku glede na zahtevano funkcionalnost (urejanje profila, brisanje profila) pošlje določeno zahtevo. KrmilnikUporabnik pošlje zahtevo za prikaz seznama uporabnikov pogledu ZMSeznamUporabnikov, ki prikaže uporabnike. Podatki o uporabniku se prenašajo skozi model Uporabnik, kateri z njimi nato upravlja in tudi vrača odgovore oz. podatke na zahtevo KrmilnikUporabnik. Model Uporabnik je generalizacija modela Organizacija, tako da lahko Organizacija uporablja metode in atribute Uporabnika.

Podsistem 2: Uporabnik

Izvorna koda digrama 📊 PlantUML

Podsistem 3: Predlog

Podsistem Predlog vključuje upravljanje z dvema pogledoma ZMSeznamPredlogov in ZMPodatkiPredlog. KrmilnikPredloga pošlje zahtevo za prikaz seznama predlogov projektov pogledu ZMSeznamPredlogov, le-ta pa v primeru funkcionalnosti Dodajanje predloga projekta krmilniku predloga pošlje zahtevo za dodajanje predloga projekta v aplikacijo. KrmilnikPredloga pošlje zahtevo za prikaz obrazca s podatki o predlogu projektu pogledu ZMPodatkiPredlog, le-ta pa v primeru funkcionalnosti Urejanje predloga projektu krmilniku predloga pošlje zahtevo za urejanje predloga projekta. Podatki o predlogu projekta se prenašajo skozi model PredlogProjekta, kateri z njimi nato upravlja in tudi vrača odgovore oz. podatke na zahtevo KrmilnikPredloga.

Podsistem 3: Predlog

Izvorna koda digrama 📊 PlantUML

Podsistem 4: Novica

Podsistem Novica vključuje upravljanje s pogledom ZMSeznamNovic. KrmilnikNovica pošlje zahtevo za prikaz seznama novic pogledu ZMSeznamNovic, le-ta pa krmilniku glede na zahtevano funkcionalnost (dodajanje, brisanje in urejanje novice) pošlje določeno zahtevo. Podatki o novicah se prenašajo skozi model Novica, kateri z njimi nato upravlja in tudi vrača odgovore oz. podatke na zahtevo KrmilnikNovica.

Podsistem 4: Novica

Izvorna koda digrama 📊 PlantUML

Podsistem 5: Občina

Podsistem Občina vključuje upravljanje z pogledom ZMObčina, ki prikazuje stran občine. KrmilnikObčina pošlje zahtevo za prikaz strani izbrane občine pogledu ZMObčina, le-ta pa krmilniku glede na zahtevano funkcionalnost pošlje (dodajanje, brisanje in urejanje novice) določeno zahtevo. Podatki o novicah se prenašajo skozi model Novica, kateri z njimi nato upravlja in tudi vrača odgovore oz. podatke na zahtevo KrmilnikNovica. Podatki o slikah se prenašajo skozi model Slika, kateri z njimi nato upravlja in tudi vrača odgovore oz. podatke na zahtevo KrmilnikObčina.

Podsistem 5: Občina

Izvorna koda digrama 📊 PlantUML

Podsistem 6: Dogodek

Podsistem Dogodek vključuje upravljanje s pogledom ZMDomačaStran in sistemskim vmesnikom SVGoogleCalendar API. KrmilnikDogodek pošlje zahtevo za prikaz modalnih oken (bodisi za dodajanje bodisi za urejanje dogodka) pogledu ZMDomačaStran, le-ta krmilniku pošlje zahtevo za vnos vnešenih podatkov o dogodku. KrmilnikDogodek pošlje zahtevo, ki je odvisna od zahtevane funkcionalnosti (sihronizacija koledarja, dodajanje dogodka, urejanje dogodka in brisanje dogodka) sistemskemu vmesniku SVGoogleCalendar API, le-ta pa krmilniku dogodkov pošlje zahtevo za seznam dogodkov.

Podsistem 6: Dogodek

Izvorna koda digrama 📊 PlantUML

Pogled 2: Razvojni pogled

Razvojni pogled sistema smo predstavili s komponentnim diagramom, ki predstavlja najpomembnejše komponente glede na vlogo v naši spletni aplikaciji. V okviru aplikacije bosta uporabljena dva tipa podatkovnih baz in sicer relacijska podatkovna baza (MySQL) in dokumentna podatkovna baza (MongoDB). Prvo bomo uporabili za shranjevanje podatkov o uporabnikih, novicah, predlogih projektov, občinah ter organizacijah. Drugo pa za podatke o slikah. Podatkovne baze smo označili z drugo barvo saj se bistveno razlikujejo po vlogi (shranjevanje podatkov) od ostalih komponent.

Razvojni pogled

Izvorna koda digrama 📊 PlantUML

Pogled 3: Fizični pogled

Fizični pogled prikazuje sistemsko strojno opremo in kako bo programska oprema porazdeljena po procesorjih v sistemu. Za prikaz smo uporabili postavitveni diagram.

Fizični pogled

Izvorna koda digrama 📊 PlantUML

2. Načrt strukture

Načrt strukture sistema smo predstavili z razrednim diagramom ter opisom razredov. V okviru načrta smo upoštevali tudi dobre prakse v obliki načrtovalskih vzorcev, ki so opisani v nadaljevanju ter označeni na razrednem diagramu.

Razredni diagram vsebuje poslovne, mejne in kontrolne razrede, med njimi pa se nahajajo povezave z razmerji. Mejne razrede smo razdelili na zaslonske maske (ZM) in sistemske vmesnike (SV), vmesnikov do naprav (VN) ne uporabljamo.

Razrednemu diagramu sledi natančen opis posameznih razredov (pomen, atributi in metode).

2.1 Načrtovalski vzorci

V okviru načrtovanja aplikacije smo uporabili 4 načrtovalske vzorce in sicer:

  • vzorce ustvarjanja: Singleton
  • strukturne vzorce: Decorator
  • vedenjske vzorce: Iterator, Chain of Responsibility

Načrtovalski vzorec 1: Decorator

Načrtovalski vzorec Decorator spada v strukturne načrtovalske vzorce. V okviru naše spletne aplikacije bomo uporabili KrmilnikValidacija, ki je nadrazred krmilnikov: KrmilnikRegistracija, KrmilnikPrijava, KrmilnikUporabnik, KrmilnikPredloga, KrmilnikNovica, KrmilnikDogodek in KrmilnikObčina. Nadrazred KrmilnikValidacija bomo uporabilo zaradi prekrivajočih se elementov in metod ter z njegovo uporabo poenostavili primere uporabe. Z uporabo Decoratorja pripnemo dodatne odgovornosti posameznemu objektu, brez da bi se spremenili njegov vmesnik.

Načrtovalski vzorec 2: Singleton

Načrtovalski vzorec Singleton spada v načrtovalske vzorce ustvarjanja. Ta načrtovalski vzorec bomo uporabili pri razredih ZMRegistracijskiObrazec in ZMPrijavniObrazec. Singleton poskrbi, da imajo razredi samo eno instanco oz. objekt in priskrbi globalno točko dostopa do objekta.

Načrtovalski vzorec 3: Iterator

Načrtovalski vzorec Iterator spada v vedenjske načrtovalske vzorce. Ta načrtovalski vzorec bomo uporabili pri razredih ZMSeznamPredlogov, ZMDomačaStran, ZMSeznamNovic in ZMObčina, ki vsebujejo podatkovni tip seznam. Uporaba Iteratorja nam bo omogočila hitrejšo filtriranje in iskanje po elementih seznama.

Načrtovalski vzorec 4: Chain of Responsibility

Načrtovalski vzorec Chain of Responsibility spada v vedenjske načrtovalske vzorce. Ta načrtovalski vzorec bomo uporabili pri razredih: KrmilnikValidacija, KrmilnikPrijava, KrmilnikRegistracija in Uporabnik. Chain of Responsibility bo omogočil več nivojsko preverjanje oz. request se bo poslal od krmilnika do modela, ki lahko po preverjanju request zavržeta ali ga potrdita (pošljeta na naslednji nivo).

2.2 Razredni diagram

Spodnji diagram prikazuje razredni diagram, ki smo ga prikazali z paketnim diagramom.

Razredni diagram vsebuje:

  • 10 mejnih razredov (»boundary«)
  • 8 kontrolnih razredov (»control«)
  • 7 poslovnih razredov (»entity«)

Na njem smo označili tudi uporabo načrtovalskih vzorcev:

  • Decorator: označen z rumeno barvo
  • Singleton: označen z roza barvo
  • Iterator: označen z zeleno barvo
  • Chain of Responsibility: označen z sivo barvo
  • Chain of Responsibility + Decorator: označena z vijolično barvo (pri teh razredih bomo kombinirali oba načrtovalska razreda)

Razredni diagram

Izvorna koda digrama 📊 PlantUML

2.3 Razredni diagram za posamezne interakcije (tokove dogodkov)

Spodnji diagrami prikazujejo interakcijo za vsak tok dogodkov, ki smo jih opisali v zajemu zahtev.

2.3.1 Registracija uporabnika (PU1) - Osnovni tok (O1.1)

Razredni diagram 1

Izvorna koda digrama 📊 PlantUML

2.3.2 Registracija uporabnika (PU1) - Alternativni tok 1 (A1.1)

Razredni diagram 2

Izvorna koda 📊 PlantUML

2.3.3 Registracija uporabnika (PU1) - Alternativni (izjemni) tok 2 (A1.2)

Razredni diagram 3.1

Izvorna koda 📊 PlantUML

Razredni diagram 3.2

Izvorna koda 📊 PlantUML

2.3.4 Prijava uporabnika (PU2) - Osnovni tok (O2.1)

Razredni diagram 4

Izvorna koda 📊 PlantUML

2.3.5 Prijava uporabnika (PU2) - Alternativni tok 1 (A2.1)

Razredni diagram 5

Izvorna koda 📊 PlantUML

2.3.6 Prijava uporabnika (PU2) - Alternativni tok 2 (A2.2)

Razredni diagram 6.1

Izvorna koda 📊 PlantUML

Razredni diagram 6.2

Izvorna koda 📊 PlantUML

2.3.7 Odjava uporabnika (PU3) - Osnovni tok (O3.1)

Razredni diagram 7

Izvorna koda 📊 PlantUML

2.3.8 Urejanje uporabniškega profila (PU4) - Osnovni tok (O4.1)

Razredni diagram 8

Izvorna koda 📊 PlantUML

2.3.9 Urejanje uporabniškega profila (PU4) - Alternativni tok 1 (A4.1)

Razredni diagram 9

Izvorna koda 📊 PlantUML

2.3.10 Urejanje uporabniškega profila (PU4) - Alternativni tok 2 (A4.2)

Razredni diagram 10

Izvorna koda 📊 PlantUML

2.3.11 Urejanje uporabniškega profila (PU4) - Alternativni tok 3 (A4.3)

Razredni diagram 11

Izvorna koda 📊 PlantUML

2.3.12 Urejanje uporabniškega profila (PU4) - Alternativni tok 4 (A4.4)

Razredni diagram 12

Izvorna koda 📊 PlantUML

2.3.13 Urejanje uporabniškega profila (PU4) - Alternativni tok 5 (A4.5)

Razredni diagram 13

Izvorna koda 📊 PlantUML

2.3.14 Urejanje uporabniškega profila (PU4) - Alternativni (izjemni) tok 6 (A4.6)

Razredni diagram 14

Izvorna koda 📊 PlantUML

2.3.15 Brisanje uporabniškega profila (PU5) - Osnovni tok (O5.1)

Razredni diagram 15

Izvorna koda 📊 PlantUML

2.3.16 Brisanje uporabniškega profila (PU5) - Alternativni tok 1 (A5.1)

Razredni diagram 16

Izvorna koda 📊 PlantUML

2.3.17 Brisanje uporabniškega profila (PU5) - Alternativni tok 2 (A5.2)

Razredni diagram 17

Izvorna koda 📊 PlantUML

2.3.18 Brisanje uporabniškega profila (PU5) - Alternativni tok 3 (A5.3)

Razredni diagram 18

Izvorna koda 📊 PlantUML

2.3.19 Dodajanje novice (PU6) - Osnovni tok (O6.1)

Razredni diagram 19

Izvorna koda 📊 PlantUML

2.3.20 Dodajanje novice (PU6) - Alternativni (izjemni) tok (A6.1)

Razredni diagram 20

Izvorna koda 📊 PlantUML

2.3.21 Urejanje novice (PU7) - Osnovni tok (O7.1)

Razredni diagram 21

Izvorna koda 📊 PlantUML

2.3.22 Urejanje novice (PU7) - Alternativni (izjemni) tok (A7.1)

Razredni diagram 22

Izvorna koda 📊 PlantUML

2.3.23 Ogled novice (PU8) - Osnovni tok (O8.1)

Razredni diagram 23

Izvorna koda 📊 PlantUML

2.3.24 Brisanje novice (PU9) - Osnovni tok (O9.1)

Razredni diagram 24

Izvorna koda 📊 PlantUML

2.3.25 Dodajanje predloga projekta (PU10) - Osnovni tok (O10.1)

Razredni diagram 25

Izvorna koda 📊 PlantUML

2.3.26 Dodajanje predloga projekta (PU10) - Alternativni (izjemni) tok 1 (A10.1)

Razredni diagram 26

Izvorna koda 📊 PlantUML

2.3.27 Ogled predloga projekta (PU11) - Osnovni tok (O11.1)

Razredni diagram 27

Izvorna koda 📊 PlantUML

2.3.28 Urejanje predloga projekta (PU12) - Osnovni tok (O12.1)

Razredni diagram 28

Izvorna koda 📊 PlantUML

2.3.29 Urejanje predloga projekta (PU12) - Alternativni tok 1 (A12.1)

Razredni diagram 29

Izvorna koda 📊 PlantUML

2.3.30 Urejanje predloga projekta (PU12) - Alternativni tok 2 (A12.2)

Razredni diagram 30

Izvorna koda 📊 PlantUML

2.3.31 Urejanje predloga projekta (PU12) - Alternativni (izjemni) tok 3 (A12.3)

Razredni diagram 31

Izvorna koda 📊 PlantUML

2.3.32 Ogled podatkov občine (PU13) - Osnovni tok (O13.1)

Razredni diagram 32

Izvorna koda 📊 PlantUML

2.3.33 Urejanje podatkov občine (PU14) - Osnovni tok (O14.1)

Razredni diagram 33

Izvorna koda 📊 PlantUML

2.3.34 Urejanje podatkov občine (PU14) - Alternativni (izjemni) tok 1 (A14.1)

Razredni diagram 34

Izvorna koda 📊 PlantUML

2.3.35 Ogled uporabniškega profila (PU15) - Osnovni tok (O15.1)

Razredni diagram 35

Izvorna koda 📊 PlantUML

2.3.36 Ogled uporabniškega profila (PU15) - Alternativni tok 1 (A15.1)

Razredni diagram 36

Izvorna koda 📊 PlantUML

2.3.37 Ogled uporabniškega profila (PU15) - Alternativni tok 2 (A15.2)

Razredni diagram 37

Izvorna koda 📊 PlantUML

2.3.38 Ogled uporabniškega profila (PU15) - Alternativni tok 3 (A15.3)

Razredni diagram 38

Izvorna koda 📊 PlantUML

2.3.39 Ogled uporabniškega profila (PU15) - Alternativni tok 4 (A15.4)

Razredni diagram 39

Izvorna koda 📊 PlantUML

2.3.40 Ogled uporabniškega profila (PU15) - Alternativni tok 5 (A15.5)

Razredni diagram 40

Izvorna koda 📊 PlantUML

2.3.41 Dodajanje fotografije (PU16) - Osnovni tok (O16.1)

Razredni diagram 41

Izvorna koda 📊 PlantUML

2.3.42 Dodajanje fotografije (PU16) - Alternativni (izjemni) tok (A16.1)

Razredni diagram 42

Izvorna koda 📊 PlantUML

2.3.43 Prikaz seznama uporabnikov (PU17) - Osnovni tok (O17.1)

Razredni diagram 43

Izvorna koda 📊 PlantUML

2.3.44 Brisanje fotografije (PU18) - Osnovni tok (O18.1)

Razredni diagram 44

Izvorna koda 📊 PlantUML

2.3.45 Ogled fotografije (PU19) - Osnovni tok (O19.1)

Razredni diagram 45

Izvorna koda 📊 PlantUML

2.3.46 Urejanje dogodka (PU20) - Osnovni tok (O20.1)

Razredni diagram 46

Izvorna koda 📊 PlantUML

2.3.47 Urejanje dogodka (PU20) - Alternativni (izjemni) tok 1 (A20.1)

Razredni diagram 47

Izvorna koda 📊 PlantUML

2.3.48 Brisanje dogodka (PU21) - Osnovni tok (O21.1)

Razredni diagram 48

Izvorna koda 📊 PlantUML

2.3.49 Dodajanje dogodka (PU22) - Osnovni tok (O22.1)

Razredni diagram 49

Izvorna koda 📊 PlantUML

2.3.50 Dodajanje dogodka (PU22) - Alternativni (izjemni) tok 1 (A22.1)

Razredni diagram 50

Izvorna koda 📊 PlantUML

2.3.51 Ogled dogodka (PU23) - Osnovni tok (O23.1)

Razredni diagram 51

Izvorna koda 📊 PlantUML

2.3.52 Ocenjevanje predloga projekta (PU24) - Osnovni tok (O24.1)

Razredni diagram 52

Izvorna koda 📊 PlantUML

2.3.53 Filtriranje predlogov projektov (PU25) - Osnovni tok (O25.1)

Razredni diagram 53

Izvorna koda 📊 PlantUML

2.3.54 Filtriranje predlogov projektov (PU25) - Alternativni tok 1 (A25.1)

Razredni diagram 54

Izvorna koda 📊 PlantUML

2.3.55 Filtriranje predlogov projektov (PU25) - Alternativni (izjemni) tok 2 (A25.2)

Diagram zaporedja 55

Izvorna koda 📊 PlantUML

2.3.56 Izbira občine (PU26) - Osnovni tok (O26.1)

Razredni diagram 56

Izvorna koda 📊 PlantUML

2.3.57 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Osnovni tok (O27.1)

Razredni diagram 57

Izvorna koda 📊 PlantUML

2.3.58 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Alternativni (izjemni) tok 1 (A27.1)

Razredni diagram 58

Izvorna koda 📊 PlantUML

2.4 Opis razredov

V okviru tega podpoglavja so podrobno opisani vsi razredi iz razrednega diagrama.

2.4.1 Mejni razredi

2.4.1.1 ZMRegistracijskiObrazec
Opis

V okviru naše aplikacije zaslonska maska ZMRegistracijskiObrazec predstavlja registracijski obrazec, v katerega neregistrirani uporabnik vnese potrebne podatke za registracijo.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
zacniRegistracijo() / void prikaže registracijski obrazec
2.4.1.2 ZMDomačaStran
Opis

Zaslonska maska za domačo stran.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
preusmeriNaDomacoStran() / void preusmeri na domačo stran
prikazDomacaStran() / void prikaže domačo stran
2.4.1.3 ZMPrijavniObrazec
Opis

Zaslonska maska za prijavni obrazec.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
zacniPrijavo() / void prikaže prijavni obrazec
2.4.1.4 ZMUporabniškiProfil
Opis

Zaslonska maska za uporabniški profil.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
odpriObrazecZaUrejanjeProfila() / void prikaže obrazec za urejanje uporabniškega profila
2.4.1.5 ZMSeznamUporabnikov
Opis

Zaslonska maska za prikaz seznama registriranih uporabnikov aplikacije.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode

Razred ne vsebuje nesamoumevnih metod.

2.4.1.6 ZMSeznamPredlogov
Opis

Zaslonska maska za prikaz seznama predlogov projektov.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
odpriObrazecZaDodajanjePredlogaProjekta() / void prikaže obrazec za dodajanje predloga projekta
2.4.1.7 ZMSeznamNovic
Opis

Zaslonska maska za prikaz seznama novic.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
odpriObrazecZaDodajanjeNovic() / void prikaže obrazec za dodajanje novice
2.4.1.8 ZMPodatkiPredlog
Opis

Zaslonska maska za prikaz predlogov projektov.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
odpriObrazec() / void prikaže obrazec s podatki o predlogu
2.4.1.9 ZMObčina
Opis

Zaslonska maska za prikaz podatkov o izbrani občini.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
odpriObrazecZaUrejanjePodatkovObcine() / void prikaže obrazec za urejanje podatkov o občini
odpriObrazecZaDodajanjeFotografije() / void prikaže obrazec za dodajanje fotografije
2.4.1.10 SVGoogleCalendar API
Opis

Zunanji vmesnik GoogleCalendar API, ki ga uporabljamo za funkcionalnosti povezane z dogodki.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
vrniSeznamDogodkovIzKoledarja() / void vrne seznam dogodkov iz koledarja
prikaziDogodekIzKoledarja() / void prikaže dogodek iz koledarja
urediDogodekVKoledarju() / void prikaže obrazec za urejanje dogodkov

2.4.2 Kontrolni razredi

2.4.2.1 KrmilnikValidacija
Opis

KrmilnikValidacija je abstraktni kontrolni razred za avtentikacijo in validacijo atributov.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
validacijaAtributov(body) body: Object boolean abstraktna metoda, ki se uporablja za avtentikacijo in validacijo atributov
2.4.2.2 KrmilnikRegistracija
Opis

KrmilnikRegistracija je kontrolni razred, ki implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
registracija(req, res) req: Object, res: Object void izvede registracijo in pokliče metodo validacijaAtributov()
validacijaAtributov(body) body: Object boolean metoda prevzame (override) abstraktno metodo validacijaAtributov iz abstraktnega razreda KrmilnikValidacija: preveri prazna polja v registracijskem obrazcu; preveri, ali ima email pravilno obliko; preveri ali je uporabnik starejši od 18 let; preveri, ali geslo ustreza pogojem; preveri, če je vnešeno geslo enako potrditvenemu geslu
2.4.2.3 KrmilnikPrijava
Opis

KrmilnikPrijava je kontrolni razred, ki implementira abstraktni kontrolni razred KrmilnikValidacija. Vsebuje metode za prijavo, validacijo atributov in odjavo.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
prijava(req, res) req: Object, res: Object void izvede prijavo in pokliče metodo validacijaAtributov()
validacijaAtributov(body) body: Object boolean metoda prevzame (override) abstraktno metodo validacijaAtributov iz abstraktnega razreda KrmilnikValidacija: preveri prazna polja v obrazcu za prijavo; preveri, ali ima email pravilno obliko; preveri, ali geslo ustreza pogojem
odjava(req, res) req: Object, res: Object void prijavljenega uporabnika odjavi iz aplikacije
2.4.2.4 KrmilnikUporabnik
Opis

KrmilnikUporabnik je kontrolni razred za glavne procese povezane z interakcijo z modelom Uporabnik in implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
seznamUporabnikov(req, res) req: Object, res: Object void preusmeri na novo stran, kjer prikaže seznam vseh uporabnikov
urediProfil(req, res) req: Object, res: Object void pokliče metodo validacijaAtributov(), če vrne TRUE, pokliče urediUporabnikID(); če model vrne sporočilo OK, posodobi podatke v profilu s parametrom id
izbrisiProfil(req, res) req: Object, res: Object void pokliče izbrisiUporabnikID(), ki izbriše uporabniški profil z parametrom id vpisanim v req
prikaziProfil(req, res)  req: Object, res: Object void pokliče vrniUporabnikID() oz. vrne uporabniški profil
validacijaAtributov(req, res)  req: Object, res: Object void metoda prevzame (override) abstraktno metodo validacijaAtributov iz abstraktnega razreda KrmilnikValidacija in izvede validacijo atributov
2.4.2.5 KrmilnikPredloga
Opis

KrmilnikPredloga je kontrolni razred za glavne procese povezane z interakcijo z modelom PredlogProjekta in implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
seznamPredlogov(req, res) req: Object, res: Object void preusmeri na novo stran, kjer prikaže seznam vseh predlogov
prikaziPredlogProjekta(req, res) req: Object, res: Object void pokliče metodo vrniPredlogProjektaID() oz. vrne predlog projekta z parametrom id, ki je vpisan v req
shraniPredlogProjekta(req, res) req: Object, res: Object void shrani predlog projekta
validacijaAtributov(body) body: Object boolean preveri ustreznost atributov
spremeniStatusPredlogProjekta(req, res) req: Object, res: Object void spremeni status predloga projekta
vrniNajPriljubljeni(req, res) req: Object, res: Object void vrne najbolj priljubljene predloge projekta
oceniPredlogProjekta(req, res) req: Object, res: Object void oceni predlog projekta
filtrirajSeznamPredlogovProjektov(req, res) req: Object, res: Object void filtrira seznam predlogov projektov glede na filtrirni kriterij
razvrstiSeznamPredlogovProjektov(predlogi, akcija) Predlog[]: predlogi, akcija: string void razvrsti seznam predlogov projektov
razvrsti(req, res) req: Object, res: Object void pokliče razvrstiSeznamPredlogovProjektov()
2.4.2.6 KrmilnikNovica
Opis

KrmilnikNovica je kontrolni razred za glavne procese povezane z interakcijo z modelom Novica in implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
seznamNovic(req, res) req: Object, res: Object void prikaže seznam novic
validacijaAtributov(body) body: Object void metoda prevzame (override) abstraktno metodo validacijaAtributov() iz abtraktnega razreda KrmilnikValidacija in izvede validacijo atributov
shraniNovica(req, res) req: Object, res: Object void shrani novico
prikaziNovica(id) id: string void prikaže novico z id-jem
izbrisiNovica(id) id: string void izbriše novico z id-jem
vrniZadnjeNovice(req, res) req: Object, res: Object void vrne zadnje novice
2.4.2.7 KrmilnikObčina
Opis

KrmilnikObčina je kontrolni razred za glavne procese povezane z interakcijo z modelom Obcina in Fotografija in implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
prikazPodatkiObcine(req, res) req: Object, res: Object void prikaže podatke o občini
shraniPodatkeObcine(req, res) req: Object, res: Object void shrani podatke o občini
validacijaAtributov(body) body: Object boolean metoda prevzame (override) abstraktno metodo validacijaAtributov() iz abtraktnega razreda KrmilnikValidacija in izvede validacijo atributov
dodajFotografijo(req, res) req: Object, res: Object void doda fotografijo
izbrisiFotografijo(req, res) req: Object, res: Object void izbriše fotografijo
prikaziSeznamObcin(req, res) req: Object, res: Object void prikaže seznam občin
spremeniObcina(req, res) req: Object, res: Object void spremeni podatke o občini
2.4.2.8 KrmilnikDogodek
Opis

KrmilnikDogodek je kontrolni razred za glavne procese povezane z interakcijo z modelom Dogodek in implementira abstraktni kontrolni razred KrmilnikValidacija.

Atributi

Razred ne vsebuje atributov.

Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
dodajDogodek(req, res) req: Object, res: Object void doda dogodek v koledar
urediDogodek(req, res) req: Object, res: Object void uredi dogodek z id-jem podanim v req
izbrisiDogodek(id) id: string void izbriše dogodek z id-jem podanim v parametru
validacijaAtributov(body) body: Object boolean metoda prevzame (override) abstraktno metodo validacijaAtributov() iz abtraktnega razreda KrmilnikValidacija in izvede validacijo atributov
prikaziDogodek(req, res) req: Object, res: Object void prikaže dogodek z id-jem podanim v req
vrniSeznamDogodkov(req, res) req: Object, res: Object void vrne seznam dogodkov
sihroniziraj(req, res) req: Object, res: Object void sihronizira koledar

2.4.3 Poslovni razredi

2.4.3.1 Uporabnik
Opis

Uporabnik je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z uporabniki.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
ime string
priimek string
zgoscenaVrednost string
nakljucnaVrednost string vnešeno geslo se s nakljucnaVrednost pretvori v zgoscenaVrednost
slikaUporabnika Slika[]
email string
telefonskaStevilka string
rojstniDatum date
naslov string
mesto string
obcina Obcina[]
opis string
registriranOd date
vloga string obcan, administrator, upravljalec predlogov (organizacija), upravljalec novic, upravljalec dogodkov
predlogi Predlog[]
novice Novica[]
organizacije Organizacija[]
Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
dodajUporabnik(req, res) req: Object, res: Object void pokliče se znotraj metode registracija(), če metoda preveriAtribute() vrne TRUE, uporabnikove podatke shrani v podatkovno bazo
vrniUporabnik(req, res) req: Object, res: Object void pokliče se znotraj metode prijava(), če metoda preveriAtribute() vrne TRUE, vzame ustrezne podatke o uporabniku iz podatkovne baze in jih pošlje nazaj krmilniku
vrniVsi(req, res) req: Object, res: Object void vrne vse uporabnike iz podatkovne baze
vrniUporabnikID(req, res) req: Object, res: Object void vrne uporabnika iz podatkovne baze, ki ima enak id kot je v req
urediUporabnik(req, res) req: Object, res: Object void preveri kdo pokliče metodo v req: če to ni admin, pokliče preveriAtribute(); če metoda vrne TRUE ali admin kliče metodo: uredi in vrne posodobljenega uporabnika iz podatkovne baze, ki ima enak id kot je v req
izbrisiUporabnikID(req, res) req: Object, res: Object void izbriše uporabnika iz podatkovne baze, ki ima enak id kot je v req
preveriAtribute(akcija) akcija: Object boolean akcija.metoda=”registracija”: preveri, ali je e-mail že v sistemu; akcija.metoda = “prijava”: generira hash geslo in preveri, ali obstaja uporabniški račun v sistemu, ki ustreza generiranemu hash geslu in vnešenemu e-mailu; akcija.metoda = “uredi”: če je geslo spremenjeno, generira hash geslo in preveri, ali je generirano geslo enako staremu uporabniškemu geslu
2.4.3.2 Ocena
Opis

Ocena je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z ocenami predlogov projektov.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
uporabnikId string
ocena double 0.00 - 10.00
Nesamoumevne metode

Razred nima nesamoumevnih metod.

2.4.3.3 Novica
Opis

Novica je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z novicami v izbrani občini.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
naslov string
vsebina string
datumObjave date
Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
vrniVsi() / void vrne vse novice iz podatkovne baze
vrniNovicaID(req, res) req: Object, res: Object void vrne novico iz podatkovne baze, ki ima enak id kot je v req
urediNovicaID(req, res) req: Object, res: Object void uredi in vrne posodobljeno novico iz podatkovne baze, ki ima enak id kot je v req
izbrisiNovicaID(req, res) req: Object, res: Object void izbriše novico iz podatkovne baze, ki ima enak id kot je v req
dodajNovica() / void dodaj novico v podatkovno bazo
vrniVsiFilter(req, res) req: Object, res: Object void filtrira novice glede na kriterij
2.4.3.4 Slika
Opis

Slika je poslovni razred, ki se uporablja za shranjevanje in upravljanje slik, ki bodo prikazane v spletni aplikaciji.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
slika string
Nesamoumevne metode

Razred nima nesamoumevnih metod.

2.4.3.5 Občina
Opis

Občina je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki občine.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
naslov string
fotogalerija Slika[]
opis string
organizacija Uporabnik[]
Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
vrniObcinaID(req, res) req: Object, res: Object void vrne občino z id-jem podanim v req
urediObcinaID(req, res) req: Object, res: Object void uredi občino z id-jem podanim v req
2.4.3.6 Organizacija
Opis

Organizacija je poslovni razred, ki se uporablja za shranjevanje in upravljanje z organizacijami ter ima vse atribute in metode poslovnega razreda Uporabnik.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
naslov string
razred string
Nesamoumevne metode

Razred nima nesamoumevnih metod.

2.4.3.7 Predlog projekta
Opis

Predlog projekta je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi s predlogi projektov.

Atributi
ime atributa podatkovni tip pomen zaloga vrednosti
id string
naslov string
sporocilo string
razred string
jePotrjen boolean
datum date
ocene Ocena[] seznam ocen predlogov projektov
Nesamoumevne metode
ime metode imena in tipi parametrov tip rezultata pomen
vrniVsi(req, res) req: Object, res: Object void vrne predloge projekta, ki so vidne izbranemu uporabniku, iz podatkovne baze
vrniPredlogProjektaID(req, res) req: Object, res: Object void vrne predlog projekta iz podatkovne baze, ki ima enak id kot je v req
urediPredlogProjektaID(req, res) req: Object, res: Object void uredi in vrne posodobljen predlog projekta iz podatkovne baze, ki ima enak id kot je v req
dodajPredlogProjekta() / void doda predlog projekta v podatkovno bazo
vrniVsiFilter(req, res) req: Object, res: Object void filtrira predloge projektov

3. Načrt obnašanja

V okviru načrta obnašanja smo narisali diagrame zaporedja, ki prikazujejo tokove dogodkov (osnovni, izjemni, alternativni) znotraj primerov uporabe, ki smo jih opisali v dokumentu zahtev.

3.1 Registracija uporabnika (PU1) - Osnovni tok (O1.1)

Diagram zaporedja 1

Izvorna koda 📊 PlantUML

3.2 Registracija uporabnika (PU1) - Alternativni tok 1 (A1.1)

Diagram zaporedja 2

Izvorna koda 📊 PlantUML

3.3 Registracija uporabnika (PU1) - Alternativni (izjemni) tok 2 (A1.2)

Diagram zaporedja 3.1

Izvorna koda 📊 PlantUML

Diagram zaporedja 3.2

Izvorna koda 📊 PlantUML

3.4 Prijava uporabnika (PU2) - Osnovni tok (O2.1)

Diagram zaporedja 4

Izvorna koda 📊 PlantUML

3.5 Prijava uporabnika (PU2) - Alternativni tok 1 (A2.1)

Diagram zaporedja 5

Izvorna koda 📊 PlantUML

3.6 Prijava uporabnika (PU2) - Alternativni tok 2 (A2.2)

Diagram zaporedja 6.1

Izvorna koda 📊 PlantUML

Diagram zaporedja 6.2

Izvorna koda 📊 PlantUML

3.7 Odjava uporabnika (PU3) - Osnovni tok (O3.1)

Diagram zaporedja 7

Izvorna koda 📊 PlantUML

3.8 Urejanje uporabniškega profila (PU4) - Osnovni tok (O4.1)

Diagram zaporedja 8

Izvorna koda 📊 PlantUML

3.9 Urejanje uporabniškega profila (PU4) - Alternativni tok 1 (A4.1)

Diagram zaporedja 9

Izvorna koda 📊 PlantUML

3.10 Urejanje uporabniškega profila (PU4) - Alternativni tok 2 (A4.2)

Diagram zaporedja 10

Izvorna koda 📊 PlantUML

3.11 Urejanje uporabniškega profila (PU4) - Alternativni tok 3 (A4.3)

Diagram zaporedja 11

Izvorna koda 📊 PlantUML

3.12 Urejanje uporabniškega profila (PU4) - Alternativni tok 4 (A4.4)

Diagram zaporedja 12

Izvorna koda 📊 PlantUML

3.13 Urejanje uporabniškega profila (PU4) - Alternativni tok 5 (A4.5)

Diagram zaporedja 13

Izvorna koda 📊 PlantUML

3.14 Urejanje uporabniškega profila (PU4) - Alternativni (izjemni) tok 6 (A4.6)

Diagram zaporedja 14.1

Izvorna koda 📊 PlantUML

Diagram zaporedja 14.2

Izvorna koda 📊 PlantUML

3.15 Brisanje uporabniškega profila (PU5) - Osnovni tok (O5.1)

Diagram zaporedja 15

Izvorna koda 📊 PlantUML

3.16 Brisanje uporabniškega profila (PU5) - Alternativni tok 1 (A5.1)

Diagram zaporedja 16

Izvorna koda 📊 PlantUML

3.17 Brisanje uporabniškega profila (PU5) - Alternativni tok 2 (A5.2)

Diagram zaporedja 17

Izvorna koda 📊 PlantUML

3.18 Brisanje uporabniškega profila (PU5) - Alternativni tok 3 (A5.3)

Diagram zaporedja 18

Izvorna koda 📊 PlantUML

3.19 Dodajanje novice (PU6) - Osnovni tok (O6.1)

Diagram zaporedja 19

Izvorna koda 📊 PlantUML

3.20 Dodajanje novice (PU6) - Alternativni (izjemni) tok (A6.1)

Diagram zaporedja 20

Izvorna koda 📊 PlantUML

3.21 Urejanje novice (PU7) - Osnovni tok (O7.1)

Diagram zaporedja 21

Izvorna koda 📊 PlantUML

3.22 Urejanje novice (PU7) - Alternativni (izjemni) tok (A7.1)

Diagram zaporedja 22

Izvorna koda 📊 PlantUML

3.23 Ogled novice (PU8) - Osnovni tok (O8.1)

Diagram zaporedja 23

Izvorna koda 📊 PlantUML

3.24 Brisanje novice (PU9) - Osnovni tok (O9.1)

Diagram zaporedja 24

Izvorna koda 📊 PlantUML

3.25 Dodajanje predloga projekta (PU10) - Osnovni tok (O10.1)

Diagram zaporedja 25

Izvorna koda 📊 PlantUML

3.26 Dodajanje predloga projekta (PU10) - Alternativni (izjemni) tok 1 (A10.1)

Diagram zaporedja 26

Izvorna koda 📊 PlantUML

3.27 Ogled predloga projekta (PU11) - Osnovni tok (O11.1)

Diagram zaporedja 27

Izvorna koda 📊 PlantUML

3.28 Urejanje predloga projekta (PU12) - Osnovni tok (O12.1)

Diagram zaporedja 28

Izvorna koda 📊 PlantUML

3.29 Urejanje predloga projekta (PU12) - Alternativni tok 1 (A12.1)

Diagram zaporedja 29

Izvorna koda 📊 PlantUML

3.30 Urejanje predloga projekta (PU12) - Alternativni tok 2 (A12.2)

Diagram zaporedja 30

Izvorna koda 📊 PlantUML

3.31 Urejanje predloga projekta (PU12) - Alternativni (izjemni) tok 3 (A12.3)

Diagram zaporedja 31

Izvorna koda 📊 PlantUML

3.32 Ogled podatkov občine (PU13) - Osnovni tok (O13.1)

Diagram zaporedja 32

Izvorna koda 📊 PlantUML

3.33 Urejanje podatkov občine (PU14) - Osnovni tok (O14.1)

Diagram zaporedja 33

Izvorna koda 📊 PlantUML

3.34 Urejanje podatkov občine (PU14) - Alternativni (izjemni) tok 1 (A14.1)

Diagram zaporedja 34

Izvorna koda 📊 PlantUML

3.35 Ogled uporabniškega profila (PU15) - Osnovni tok (O15.1)

Diagram zaporedja 35

Izvorna koda 📊 PlantUML

3.36 Ogled uporabniškega profila (PU15) - Alternativni tok 1 (A15.1)

Diagram zaporedja 36

Izvorna koda 📊 PlantUML

3.37 Ogled uporabniškega profila (PU15) - Alternativni tok 2 (A15.2)

Diagram zaporedja 37

Izvorna koda 📊 PlantUML

3.38 Ogled uporabniškega profila (PU15) - Alternativni tok 3 (A15.3)

Diagram zaporedja 38

Izvorna koda 📊 PlantUML

3.39 Ogled uporabniškega profila (PU15) - Alternativni tok 4 (A15.4)

Diagram zaporedja 39

Izvorna koda 📊 PlantUML

3.40 Ogled uporabniškega profila (PU15) - Alternativni tok 5 (A15.5)

Diagram zaporedja 40

Izvorna koda 📊 PlantUML

3.41 Dodajanje fotografije (PU16) - Osnovni tok (O16.1)

Diagram zaporedja 41

Izvorna koda 📊 PlantUML

3.42 Dodajanje fotografije (PU16) - Alternativni (izjemni) tok (A16.1)

Diagram zaporedja 42

Izvorna koda 📊 PlantUML

3.43 Prikaz seznama uporabnikov (PU17) - Osnovni tok (O17.1)

Diagram zaporedja 43

Izvorna koda 📊 PlantUML

3.44 Brisanje fotografije (PU18) - Osnovni tok (O18.1)

Diagram zaporedja 44

Izvorna koda 📊 PlantUML

3.45 Ogled fotografije (PU19) - Osnovni tok (O19.1)

Diagram zaporedja 45

Izvorna koda 📊 PlantUML

3.46 Urejanje dogodka (PU20) - Osnovni tok (O20.1)

Diagram zaporedja 46

Izvorna koda 📊 PlantUML

3.47 Urejanje dogodka (PU20) - Alternativni (izjemni) tok 1 (A20.1)

Diagram zaporedja 47

Izvorna koda 📊 PlantUML

3.48 Brisanje dogodka (PU21) - Osnovni tok (O21.1)

Diagram zaporedja 48

Izvorna koda 📊 PlantUML

3.49 Dodajanje dogodka (PU22) - Osnovni tok (O22.1)

Diagram zaporedja 49

Izvorna koda 📊 PlantUML

3.50 Dodajanje dogodka (PU22) - Alternativni (izjemni) tok 1 (A22.1)

Diagram zaporedja 50

Izvorna koda 📊 PlantUML

3.51 Ogled dogodka (PU23) - Osnovni tok (O23.1)

Diagram zaporedja 51

Izvorna koda 📊 PlantUML

3.52 Ocenjevanje predloga projekta (PU24) - Osnovni tok (O24.1)

Diagram zaporedja 52

Izvorna koda 📊 PlantUML

3.53 Filtriranje predlogov projektov (PU25) - Osnovni tok (O25.1)

Diagram zaporedja 53

Izvorna koda 📊 PlantUML

3.54 Filtriranje predlogov projektov (PU25) - Alternativni tok 1 (A25.1)

Diagram zaporedja 54

Izvorna koda 📊 PlantUML

3.55 Filtriranje predlogov projektov (PU25) - Alternativni (izjemni) tok 2 (A25.2)

Diagram zaporedja 55

Izvorna koda 📊 PlantUML

3.56 Izbira občine (PU26) - Osnovni tok (O26.1)

Diagram zaporedja 56

Izvorna koda 📊 PlantUML

3.57 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Osnovni tok (O27.1)

Diagram zaporedja 57

Izvorna koda 📊 PlantUML

3.58 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Alternativni (izjemni) tok 1 (A27.1)

Diagram zaporedja 58

Izvorna koda 📊 PlantUML