gregopet / ekristjan

Spletna aplikacija za obveščanje učiteljev o odhodih otrok

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ekristijan

Progresivna spletna aplikacija za pomoč šolskim delavcem, da obvestijo učitelje podaljšanega bivanja, kdaj morajo poslati otroke domov.

Vmesnik je razdeljen na dva dela: na eni strani so vhodna vrata, na katerih starši sporočijo vratarju, po katerega otroka so prišli. Na drugi strani je učilnica, v kateri učitelj podaljšanega bivanja označi, katere skupine otrok so v njegovem varstvu. Ko pride starš po otroka iz oddelka, se v učilnici učitelju sproži "notification", da lahko otroka pošlje k izhodu.

Opomba
Aplikacija je trenutno v čisti prototipni fazi, izgrajena s kopiranjem koščkov kode iz drugih projektov ( z dovoljenjem). Konstruktivne pripombe, predlogi ali celo pull requesti so dobrodošli.

Delovanje

Aplikacija je narejena s spletnimi tehnologijami. Server posreduje sporočila med klienti s pomočjo web push tehnologije. Za delovanje je nujna HTTPS povezava, saj le na ta način delujejo napredne PWA funkcionalnosti. Da se zaledni strežnik lahko identifira kot pošiljatelj push sporočil, je potrebno zanj ustvariti VAPID ključ in ga zapisati v konfiguracijsko datoteko (glej naslednji odstavek).

Aplikacija zaenkrat deluje brez baze podatkov. Učenci so našteti v konfiguracijski datoteki, ki je lahko bodisi v JSON bodisi v HOCON formatu - vzorec se nahaja v datoteki src/main/resources/config.hocon, ob zagonu na produkciji pa je potrebno podati pot do svoje konfiguracijske datoteke s pomočjo parametra --config <pot do konfiguracije>.

Pozor
Aplikacija trenutno ni zaščitena z nobenim geslom - na proxy strežniku je zato potrebno urediti npr. HTTP Basic avtentikacijo ali kaj podobnega!

Osprednji del / frontend

Logika same aplikacije se večinoma odvija na frontendu. Ta se nahaja v mapi src/frontend.

Pozor
frontend se zaenkrat ne zgradi avtomatsko pred deployem aplikacije - ta korak je nujno narediti ročno!

Če želite, lahko frontend gradite neodvisno od backenda in ga tudi distribuirate ločeno; to omogoča npr. neodvisno nadgrajevanje frontenda. V tem primeru lahko pot do backenda podate v konfiguracijski datoteki s pomočjo ključa frontendDistFolder.

Predpogoji za zagon

  • node.js 16.15.0+ (priporočena namestitev z NVM)

  • yarn (deluje tudi NPM, a so ukazi v tej dokumentaciji spisani za yarn)

Lokalni razvoj

Najprej namestite vse zahtevane knjižnjice s pomočjo ukaza yarn install. Za lokalni razvoj se strežnik postavi z ukazom yarn serve, aplikacija bo privzeto dostopna na portu 3000.

Pozor
Za delovanje naprednih funkcionalnosti brskalniki zahtevajo uporabo HTTPS povezave - razvoj stilov brez HTTPS je sicer možen, a podatkovna povezava ne bo delovala!

Za delovanje HTTPS povezave je potreben veljaven certifikat, pridobljen z Let’s Encrypt, mkcert ali s katerokoli drugo storitvijo za ta namen. Poti do certifikata in pripadajočega ključa je potrebno navesti v okoljskih spremenljivkah HTTPS_KEY in HTTPS_CERT, najlažje tako, da se jih vnese v datoteko .env, ki jo build tool avtomatsko prebere (vzorec je priložen k projektu) - ta datoteka je značilna za vaš računalnik in se ne vključuje v git!

Da bo podatkovna povezava med večimi instancami frontenda delovala, mora biti prižgan tudi zaledni strežnik. Če želite uporabiti zunanji, že delujoči zaledni strežnik, lahko njegov naslov vpišete v datoteko vite.config.ts (ključ server.proxy./sock.target).

Pošiljanje email sporočil

Priložena docker-compose datoteka vsebuje testni mail strežnik, do katerega lahko (po zagonu) dostopate preko naslova http://localhost:6080/

Izgradnja produkcijske verzije

yarn build

Zaledni sistem / backend

Backend skrbi za posredovanje push dogodkov aplikaciji.

Za frontend zna zgraditi definicije razredov za prenos podatkov: generator se sproži z ukazom ./gradlew generateDTO (oziroma gradlew.bat generateDTO na operacijskem sistemi Windows).

Backend potrebuje Postgres bazo podatkov. Za lokalni razvoj je najlažje bazo postaviti iz priložene docker-compose datoteke.

Predpogoji za zagon

  • Java JRE ali JDK 8+

Zagon testov (zaradi preprostosti aplikacije trenutno še ni nobenega):

./gradlew clean test

Izgradnja produkcijske verzije

./gradlew clean assemble

Lokalni zagon:

./gradlew run

About

Spletna aplikacija za obveščanje učiteljev o odhodih otrok


Languages

Language:Kotlin 55.2%Language:Vue 27.7%Language:TypeScript 15.0%Language:CSS 1.2%Language:JavaScript 0.5%Language:HTML 0.3%