5.2 KiB
LiftEllenőr
Magyar nyelvű liftellenőrzési és naplózási rendszer technikusok számára.
Az alkalmazás főbb részei:
- nyilvános landing oldal:
/ - bejelentkezés:
/bejelentkezes - regisztráció:
/regisztracio - technikusi kezelőfelület:
/alkalmazas - kereshető naplóoldal:
/naplo
Funkciók
- JWT alapú hitelesítés
- PostgreSQL adatbázis
- külön kezelt eszközök és naplóbejegyzések
- modalos új eszköz / új napló folyamat
- PDF csatolmányok feltöltése egy naplóhoz
- közelgő ellenőrzési határidők műszerfala
- Adminer webes adatbázis-kezelő a stack részeként
- nagy mennyiségű tesztadat generálása seed scripttel
Stack
A compose.yaml alapján a rendszer ezekből a szolgáltatásokból áll:
frontendNginx konténer, a statikus frontend kiszolgálására és az API proxyzására.backendNode.js + Express alkalmazás, API-val és hitelesítéssel.postgresPostgreSQL adatbázis a felhasználók, eszközök, naplók és fájlmetaadatok tárolására.adminerWebes adatbázis-kezelő a PostgreSQL gyors böngészéséhez és ellenőrzéséhez.
Portok
- alkalmazás:
http://localhost:8080 - PostgreSQL:
localhost:5432 - Adminer:
http://localhost:8090
Előfeltételek
- Node.js 22 körüli verzió
- npm
- Podman Compose vagy Docker Compose
Gyors indítás
- Függőségek telepítése:
npm install
- A teljes stack indítása:
podman compose up -d
Ha Docker Compose-t használsz:
docker compose up -d
- Nyisd meg az alkalmazást:
http://localhost:8080
Stack kezelése
Indítás:
podman compose up -d
Leállítás:
podman compose down
Leállítás kötetekkel együtt:
podman compose down -v
Logok megtekintése:
podman compose logs -f
Csak a backend logjai:
podman compose logs -f backend
Adminer használata
Az Adminer a http://localhost:8090 címen érhető el.
Bejelentkezési adatok:
- rendszer:
PostgreSQL - szerver:
postgresHa a böngészőből közvetlenül a hoston futó PostgreSQL-re csatlakozol, használhatod a127.0.0.1címet is, de a compose stacken belül a szolgáltatás nevepostgres. - felhasználó:
lift_admin - jelszó:
lift_secret - adatbázis:
lift_manager
Adminerben hasznos műveletek:
userstábla ellenőrzéseelevatorstábla böngészéselogséslog_fileskapcsolatok megtekintése- seed után gyors ellenőrzés, hogy a tömeges tesztadat bekerült-e
Seed adatok
A projekt tartalmaz egy seed scriptet sok tesztadat előállításához:
npm run seed
Ez több útvonalat, technikust, eszközt és sok kapcsolódó naplóbejegyzést hoz létre.
Alap teszt jelszó:
teszt123
Teljes újratöltéshez, a meglévő adatok törlésével:
npm run seed:reset
Egyedi mennyiségekkel:
node scripts/seed.js --reset --routes 8 --users-per-route 4 --elevators-per-route 20 --logs-per-elevator 16
Elérhető paraméterek:
--resetTörli a meglévő adatokat seed előtt.--routesHány technikusi útvonal készüljön.--users-per-routeHány felhasználó készüljön útvonalanként.--elevators-per-routeHány eszköz készüljön útvonalanként.--logs-per-elevatorHány napló készüljön eszközönként.
Fejlesztői használat
Ha nem konténerből akarod indítani a backendet:
- gondoskodj róla, hogy a PostgreSQL fusson
- telepítsd a függőségeket
- indítsd a szervert
npm install
npm start
Alapértelmezett backend port:
http://localhost:3000
Ebben az esetben a frontend proxyzása nélkül a teljes alkalmazás használatához továbbra is a compose-os Nginx a legegyszerűbb út.
Környezeti változók
Az alapértelmezett értékek az .env.example fájlban vannak összegyűjtve.
Fontos változók:
PORTJWT_SECRETDATABASE_URLSEED_PASSWORDOpcionális. Ezzel felülírható a seedelt felhasználók alap jelszava.
Adatmodell röviden
usersTechnikusi felhasználók és útvonalak.elevatorsAz eszközök aktuális állapota és következő ellenőrzési adatai.logsTörténeti naplóbejegyzések, eszközhöz kapcsolva.log_filesA naplóbejegyzésekhez tartozó PDF fájlmetaadatok.
Tipikus használati folyamat
- Indítsd el a stack-et.
- Ha kell, seedeld az adatbázist
npm run seed:resetparanccsal. - Nyisd meg az alkalmazást a
http://localhost:8080címen. - Jelentkezz be vagy regisztrálj.
- Az
/alkalmazasoldalon kezeld az eszközöket és hozz létre új naplóbejegyzéseket. - A
/naplooldalon keresd és szűrd a bejegyzéseket. - Adminerben ellenőrizd az adatokat, ha fejlesztés vagy hibakeresés közben szükséges.
Fontos fájlok
server.jsExpress route-ok, auth, adatbázis-műveletekcompose.yamlfrontend + backend + postgres + adminer stacknginx/default.conffrontend route-ok és API proxypublic/index.htmllanding oldalpublic/app.htmlkezelőfelületpublic/logs.htmlkülön naplóoldalpublic/style.cssközponti stíluslapscripts/seed.jstesztadat-generáló script