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 |
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.
V sklopu načrta arhitekture so prikazani trije pogledi na arhitekturo sistema in sicer logični, razvojni in fizični.
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.
Izvorna koda digrama 📊 PlantUML
V nadaljevanju so podrobno prikazani naslednji podsistemi:
- avtentikacija
- uporabnik
- predlog
- novica
- občina
- dogodek
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
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.
Izvorna koda digrama 📊 PlantUML
Fizični pogled prikazuje sistemsko strojno opremo in kako bo programska oprema porazdeljena po procesorjih v sistemu. Za prikaz smo uporabili postavitveni diagram.
Izvorna koda digrama 📊 PlantUML
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).
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 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 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 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 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).
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)
Izvorna koda digrama 📊 PlantUML
Spodnji diagrami prikazujejo interakcijo za vsak tok dogodkov, ki smo jih opisali v zajemu zahtev.
Izvorna koda digrama 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
2.3.58 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Alternativni (izjemni) tok 1 (A27.1)
Izvorna koda 📊 PlantUML
V okviru tega podpoglavja so podrobno opisani vsi razredi iz razrednega diagrama.
V okviru naše aplikacije zaslonska maska ZMRegistracijskiObrazec predstavlja registracijski obrazec, v katerega neregistrirani uporabnik vnese potrebne podatke za registracijo.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
zacniRegistracijo() | / | void | prikaže registracijski obrazec |
Zaslonska maska za domačo stran.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
preusmeriNaDomacoStran() | / | void | preusmeri na domačo stran |
prikazDomacaStran() | / | void | prikaže domačo stran |
Zaslonska maska za prijavni obrazec.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
zacniPrijavo() | / | void | prikaže prijavni obrazec |
Zaslonska maska za uporabniški profil.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
odpriObrazecZaUrejanjeProfila() | / | void | prikaže obrazec za urejanje uporabniškega profila |
Zaslonska maska za prikaz seznama registriranih uporabnikov aplikacije.
Razred ne vsebuje atributov.
Razred ne vsebuje nesamoumevnih metod.
Zaslonska maska za prikaz seznama predlogov projektov.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
odpriObrazecZaDodajanjePredlogaProjekta() | / | void | prikaže obrazec za dodajanje predloga projekta |
Zaslonska maska za prikaz seznama novic.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
odpriObrazecZaDodajanjeNovic() | / | void | prikaže obrazec za dodajanje novice |
Zaslonska maska za prikaz predlogov projektov.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
odpriObrazec() | / | void | prikaže obrazec s podatki o predlogu |
Zaslonska maska za prikaz podatkov o izbrani občini.
Razred ne vsebuje atributov.
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 |
Zunanji vmesnik GoogleCalendar API, ki ga uporabljamo za funkcionalnosti povezane z dogodki.
Razred ne vsebuje atributov.
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 |
KrmilnikValidacija je abstraktni kontrolni razred za avtentikacijo in validacijo atributov.
Razred ne vsebuje atributov.
ime metode | imena in tipi parametrov | tip rezultata | pomen |
---|---|---|---|
validacijaAtributov(body) | body: Object | boolean | abstraktna metoda, ki se uporablja za avtentikacijo in validacijo atributov |
KrmilnikRegistracija je kontrolni razred, ki implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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 |
KrmilnikPrijava je kontrolni razred, ki implementira abstraktni kontrolni razred KrmilnikValidacija. Vsebuje metode za prijavo, validacijo atributov in odjavo.
Razred ne vsebuje atributov.
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 |
KrmilnikUporabnik je kontrolni razred za glavne procese povezane z interakcijo z modelom Uporabnik in implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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 |
KrmilnikPredloga je kontrolni razred za glavne procese povezane z interakcijo z modelom PredlogProjekta in implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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() |
KrmilnikNovica je kontrolni razred za glavne procese povezane z interakcijo z modelom Novica in implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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 |
KrmilnikObčina je kontrolni razred za glavne procese povezane z interakcijo z modelom Obcina in Fotografija in implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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 |
KrmilnikDogodek je kontrolni razred za glavne procese povezane z interakcijo z modelom Dogodek in implementira abstraktni kontrolni razred KrmilnikValidacija.
Razred ne vsebuje atributov.
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 |
Uporabnik je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z uporabniki.
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[] | ||
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[] |
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 |
Ocena je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z ocenami predlogov projektov.
ime atributa | podatkovni tip | pomen | zaloga vrednosti |
---|---|---|---|
id | string | ||
uporabnikId | string | ||
ocena | double | 0.00 - 10.00 |
Razred nima nesamoumevnih metod.
Novica je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi z novicami v izbrani občini.
ime atributa | podatkovni tip | pomen | zaloga vrednosti |
---|---|---|---|
id | string | ||
naslov | string | ||
vsebina | string | ||
datumObjave | date |
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 |
Slika je poslovni razred, ki se uporablja za shranjevanje in upravljanje slik, ki bodo prikazane v spletni aplikaciji.
ime atributa | podatkovni tip | pomen | zaloga vrednosti |
---|---|---|---|
id | string | ||
slika | string |
Razred nima nesamoumevnih metod.
Občina je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki občine.
ime atributa | podatkovni tip | pomen | zaloga vrednosti |
---|---|---|---|
id | string | ||
naslov | string | ||
fotogalerija | Slika[] | ||
opis | string | ||
organizacija | Uporabnik[] |
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 |
Organizacija je poslovni razred, ki se uporablja za shranjevanje in upravljanje z organizacijami ter ima vse atribute in metode poslovnega razreda Uporabnik.
ime atributa | podatkovni tip | pomen | zaloga vrednosti |
---|---|---|---|
id | string | ||
naslov | string | ||
razred | string |
Razred nima nesamoumevnih metod.
Predlog projekta je poslovni razred, ki se uporablja za shranjevanje in upravljanje s podatki v zvezi s predlogi projektov.
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 |
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 |
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.
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
Izvorna koda 📊 PlantUML
3.58 Sinhronizacija dogodkov z aplikacijo Google Calendar (PU27) - Alternativni (izjemni) tok 1 (A27.1)
Izvorna koda 📊 PlantUML