1. PROJEKTNE SPECIFIKACIJE - debug-squad/Projetkni-Praktikum GitHub Wiki

1. Uvod

1.1 Namen

Namen dokumenta je povzeti projektne specifikacije v naslednji obliki:

  • Opredelitev namena študentskega projekta, vključno s skupinami uporabnikov in njihovimi potrebami,
  • Opis rešitve, vključno z opredelitvijo načina, po katerem projekt naslavlja zgoraj izpostavljene potrebe,
  • Funkcionalne zahteve projekta, vključno s ključnimi funkcionalnostmi in sistemskimi zahtevam.

1.2 Predvideno občinstvo dokumenta

Dokument bo v glavnem namenjen članom naše ekipe Debug-Squad, ki smo hkrati razvijalci in projektne vodje tega projekta.

1.3 Namenska uporaba dokumenta

Dokument bo članom ekipe Debug-Squad predstavljal jasno napisane cilje in funkcionalnosti, ki smo si jih zastavili, ter pogled v našo razmišljanje o ideji tega projekta.

1.4 Obseg produkta

Z našim produktom želimo doseči naslednje cilje:

  • Ustvariti prostodostopni API/storitev, za pridobivanje dogodkov
  • Spletno aplikacijo, kjer bodo ustvarjalci dogodkov imeli analizo, ter kontrolo nad že kreiranimi dogodki, ter pregled dogodkov, bodisi v obliki kartic ali prikaz dogodkov na zemljevidu
  • Web scraper, za pridobivanje dogodkov iz spleta
  • Mobilno aplikacijo, za urejanje in dodajanje novih dogodkov
  • Lastni jezik za opis mesta Maribor

1.5 Tveganja

V našem projektu se pojavita dve glavni tveganji. Prva je nezmožnost pridobivanja ustreznih informacij o dogodkih. namreč vseh dogodkov nebomo ročno vpisovali, ampak jih bomo "scrapali" iz različnih spletnih strani. Težava se bi pojavila pri implementaciji scraperja, saj se lahko format na teh straneh spremeni in pride do nekonsistentnosti, kar bi nam onemogočilo pridobivanje dogodkov. Druga težava se pojavi pri gostovanju naših aplikacij, lahko porabimo vse enote, ki nam pripadajo in nemoremo več gostovati.

2. Splošni opis

2.1 Namen projekta

Namen projekta MB-HUB je potešiti potrebo po učinkovitem iskanju in oglaševanju različnih dogodkov, ki se dogajajo v mestu. Namen projekta je ponuditi študentom, turistom, oz. prebivalcem mesta Maribor platformo, kjer bi lahko prebivalci glede na njihovo bližino oz. lokacijo ali glede po njihovih interesih jim pokazalo dogodke, ki se bodo odvili v bližnji prihodnosti in prijavo oz. nakup vstopnic za te dogodke. Platforma bi bila koristna za razne organizacije in podjetja, ki organizirajo dogodke, saj bi jim ponujala platformo, kjer bi lahko predstavili svoje dogodke in s tem jih tržili. Platforma bi ponujala analizo, da bi ugotovili kateri dogodki so bolj priljubljeni kot drugi.

2.2 Uporabniki in njihove potrebe

Uporabnike naše platforme lahko razdelimo na dve skupini.

Imamo tiste ki kreirajo dogodke torej gostitelje, in tiste, ki jih obiskujejo torej obiskovalce. Glavna želja gostiteljev dogodkov je to, da naredijo svoj dogodek čim bolj prepoznaven, da ga vidi čim večje število ljudi. Na hitro in kratko predstaviti svoj dogodek z vsemi najpomembnejšimi informacijami, ter najti primerne stranke za ta dogodek. Imeti pregled nad analizo statistike dogodkov, ter možnost urejanja oz. posodabljanja opisa dogodkov.

Obiskovalci smo vsi, ki obiskujemo dogodek. Glede na našo lokacijo želimo izvedeti, kje v bližini se nahaja kakšen dogodek oz. "event". Želimo na izvedeti vse potrebne informacije o dogodku, ter najti dogodke, ki ustrezajo našim potrebam. Potrebujemo enostaven in razumljiv uporabniški vmesnik, kjer lahko najdemo primerne dogodke in se prijavimo oz. kupimo vstopnice na ta dogodek. Zanima nas lokacija tega dogodka oz. kako pridemo do njega.

2.3 Opis rešitev potreb uporabnikov

Potrebe naših uporabnikov bomo zadovoljili na naslednji način:

  • Ustvarili prosto dostopno spletno storitev/API, ki bo delala poizvedbe na našo podatkovno bazo in vračala rezultate. V naši podatkovni bazi bodo shranjeni dogodki in prisotnost na dogodke.
  • Spletni vmesnik, ki bo namenjen hkrati administratorjem ( kreatorjem dogodkov) in navadnim uporabnikom. Uporabniki bodo imeli pregled nad vsemi dogodki, bodisi v obliki kartic bodisi kot točke na zemljevidu, imeli bomo grafe, ter analizo dogodkov. Administratorji bodo lahko brisali dogodke,..
  • Mobilno aplikacijo za administratorje, kjer bo možno urejati dogodke in jih ročno vpisovati.
  • Program za scrapanje dogodkov.
  • Podatkovno bazo kjer bodo shranjeni podatki in nad kerim bo operirala spletna storitev/API
  • Lastni jezik za opis mesta Maribor

3. Sistemske funkcije in zahteve

3.1 Funkcionalne zahteve

Naš projekt bo vseboval več ključnih funkcionalnosti:

  • Funkcionalnost, ki bo omogočala prikaz podatkov z grafom. Imeli bomo interaktiven graf, kjer bo uporabnik analiziral neko statistiko (primer prisotnost glede na dogodke), Graf bo bil interaktiven, možno bo sortiranje navzgor in nadzor. Če bo uporabnik kliknil na dogodek se mu bo odprla stran z opisom tega dogodka.
  • Funkcionalnost, ki omogoča uporabo zemljevida za lažji prikaz dogodkov. Na zemljevidu se bodo nahajale točke, ki bodo prikazovale posamezen dogodek. Točke se lahko spreminjajo skozi čas in jih filtriramo glede na razdaljo od trenutne lokacije.
  • Funkcionalnost, ki omogoča predvajanje animacije -> prikaz dogodkov na zemljevidu skozi čas.
  • Administratorski vmesnik -> funkcionalnost, kjer bo lahko administrator brisal dogodke, urejal nastavitve,..
  • JWT tokens za avtentikacijo
  • Dark/white theme -> spreminjanje barve glede na barvno temo.
  • ,...

3.2 Zahteve za zunanji vmesnik

Naš projekt bo sodeloval z različnimi aplikacijami. Spletni vmesnik bo uporabljal spletno storitev (API) za pridobivanje dogodkov in za izvajanje različnih akcij nad njimi (posodabljanje,brisanje,..). Web scraper bo preko spletne storitve dostopal do baze, kjer ima shranjene podatke za izvajanje intervalov, po izvedbi bo nove dogodke preko spletne storitve shranil v podatkovno bazo. Mobilna aplikacija bo ustvarjala in urejevala dogodke preko spletne storitve. Za domensko specificen jezik imamo vmesnik z funkcijami za gradnjo objektov v formatu GeoJSON.

3.3 Značilnosti sistema

Ključne značilnosti za pravilno delovanje našega sistema so:

  • storitev API
  • grafi za prikaz podatkov
  • delovanje web scraperja za pridobivanje dogodkov

3.4 Nefunkcionalne zahteve

Pomembna nefunkcionalna zahteva pri našem projektu se osredotoča na varnost (admin pravice). Le administatorji imajo nadzor nad kreairanjem, posodabljanjem, brisanje dogodkov. Naš web-scraper, ko pridobi iz spleta vse dogodke ignorira tiste dogodke, kateri so že shranjeni v naši podatkovni bazi.