Namen rešitve je ozaveščanje voznikov, reševalnih služb in tistih, ki se jim mudi, kje povečati potrpljenje in zmanjšati hitrost. V službi reševanja življenj šteje vsaka sekunda, želimo biti del, ki pripomore k reševanju življenj in preprečevanju ogrožanja teh. S pomočjo naše spletne stranih, lahko reševalci preventivno pripravijo enote in proces steče hitreje.
- front-end: React
- back-end: Node.js ft. Express
- podatkovna baza: MongoDB
- strojno učenje: Python
Zemljevid prikazuje nevarne odseke/kritične točke na slovenskih cestah, kjer se po statističnih podatkih povzroči največ nesreč. Omogočena je tudi možnost filtriranja po tipu kritičnosti (nizka, srednja, visoka), ter dodatni filtri glede na dan v tednu, vreme, površje, mesec v letu in čas.
Grafi prikazujejo predelane statistične podatke od leta 2014 do 2018. Prikazani so podatki o številu prometnih nesreč glede na različne filtre:
- vse nesreče v preteklih letih (2014-2018)
- število nesreč glede na posamezen dan v tednu
- glede na vreme, tip vozila, tip ceste, tip trčenja in nesreče, stanje prometa
- glede na intenzivnost poškodb (posebej tudi za intenzivnost v nedeljo in med prazniki)
- po spolu povzročitelja
- Potrebujemo okolje z node.js(v10.15.3), npm(v6.4.1), mongodb(v4.0.9),
- Namestimo še globalne pakete "npm i -g nodemon" in "npm i -g concurrently"
- Zagotovimo delovanje MongoDB
- Postavimo se v direktorij projekta in v terminalu poženemo "npm run dev"
- Stran se naloži na localhost:3000, strežniški api pa je na voljo na localhost:5000
| Marko Gluhak | Maruša Konečnik | Pina Gornik | Nataša Feher |
| back-end razvijalec | strojno učenje | front-end razvijalka | front-end razvijalka |
| [email protected] | [email protected] | [email protected] | [email protected] |
Smo mlada ekipa zagriženih študentov, ki želimo z našimi produkti prispevati k boljšemu jutri.
- Kloniranje repozitorija z "git clone https://github.com/MerceneX/BoomMap.git"
- Odpremo nov projekt v WebStorm "EmptyProject" in kopiramo vsebino kloniranega direktorija v ta projekt
- V WebStorm priporočam uporabo git bash terminala:
a) Setting > Tools > Terminal
b) Shell Path, navedemo pot do bash.exe datoteke, najdemo jo v */Git/bin/bash.exe - Zagon skript npm install, npm run client-install in npm i -g nodemon
- Dodaja konfiguracije strežnika v WebStorm:
a) "Add new configuration"
b) "npm"
c) "package.json: /path-to-project-folder/package.json"
d) "Command: run"
e) "Scripts: dev"
f) "Ok" - Za posodobitev vseh paketov/odvisnosti poženemo "npm run update-all"
- Potrebujemo tudi bazo MongoDB na portu 27017.
- Strežnik poženemo z npm run dev
- Napišemo .gitignore datoteko s sledečo vsebino:
"node_modules
client/node_modules
.idea README.md"
Atribut naslov poda kratek opis o tej poizvedbi, podatki vsebujejo polje objektov. Vsak od teh objektov je št. nesreč, ki ustrezajo pogoju poizvedbe, specificirane s prvim atributom objekta.
- GET api/graph/{id}
id: 23-37
Vnaprej pripravljene poizvedbe iz baze podatkov, v obliki JSON. Primer rezultata:
{
"naslov":"Nesreče glede na praznik",
"podatki":[ { "dan":"Praznik", "nesrece":3222 }, { "dan":"Delovnik", "nesrece":119486 }]}
-
Potrebno je zgraditi Docker slike kot je pripravljeno v Makefile po receptu "build-prod-from-master". Podatkovno bazo je potrebno namestiti samo prvič, če ne izvajamo posodobitev.
-
Za dostop do FERI Portainer rešitve, je potrebna uporaba ForcePoint VPN in prijava s študentsko identiteto.
-
Prijavimo se v Portainer na naslednji povezavi: https://zabojnik.informatika.uni-mb.si/portainer/#/auth s podatki pridobljeni od skrbnika go. Streharja.
-
Če nameščamo prvič je potrebno najprej ustvariti notranje omrežje zabojnikov.
-
Nato ustvarimo še trajni "volume" za podatkovno bazo.
-
Naložimo vse Docker slike (če namestitev posodabljamo, je potrebno ustaviti zabojnike in slike odtraniti pred ponovnim nalaganjem).
-
Ustvarimo zabojnik iz Docker slike za podatkovno bazo, ji pripnemo trajni zapis, ki smo ga predhodno ustvarili in prav tako zabojnik vključimo v ustvarjeno omrežje in dodelimo IP in hostname. Ne smemo pozabiti na izpostavitev porta navzven.
-
Enak postopek ponovimo za spletni strežnik z Node in uporabniški del React.
-
Pomembno je, da pravilno nastavimo tudi spremenljivke okolja (environment variables) v .env.production za odjemalca in strežnik. Strežnik potrebuje v spremenljivki "DBURI" IP zabojnika znotraj omrežja in "DBNAME" za ime podatkovne baze. Za .env.production odjemalca, pa potrebujemo le nastaviti "REACT_APP_SERVER" na https://varno-domov.si, da se podatko prenašajo preko HTTPS.
-
Arhitekturo si lahko ogledamo na spodnji fotografiji.