240 lines
5.2 KiB
Markdown
240 lines
5.2 KiB
Markdown
# 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:
|
|
|
|
- `frontend`
|
|
Nginx konténer, a statikus frontend kiszolgálására és az API proxyzására.
|
|
- `backend`
|
|
Node.js + Express alkalmazás, API-val és hitelesítéssel.
|
|
- `postgres`
|
|
PostgreSQL adatbázis a felhasználók, eszközök, naplók és fájlmetaadatok tárolására.
|
|
- `adminer`
|
|
Webes 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
|
|
|
|
1. Függőségek telepítése:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. A teljes stack indítása:
|
|
|
|
```bash
|
|
podman compose up -d
|
|
```
|
|
|
|
Ha Docker Compose-t használsz:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
3. Nyisd meg az alkalmazást:
|
|
|
|
```text
|
|
http://localhost:8080
|
|
```
|
|
|
|
## Stack kezelése
|
|
|
|
Indítás:
|
|
|
|
```bash
|
|
podman compose up -d
|
|
```
|
|
|
|
Leállítás:
|
|
|
|
```bash
|
|
podman compose down
|
|
```
|
|
|
|
Leállítás kötetekkel együtt:
|
|
|
|
```bash
|
|
podman compose down -v
|
|
```
|
|
|
|
Logok megtekintése:
|
|
|
|
```bash
|
|
podman compose logs -f
|
|
```
|
|
|
|
Csak a backend logjai:
|
|
|
|
```bash
|
|
podman compose logs -f backend
|
|
```
|
|
|
|
## Adminer használata
|
|
|
|
Az Adminer a `http://localhost:8090` címen érhető el.
|
|
|
|
Bejelentkezési adatok:
|
|
|
|
- rendszer: `PostgreSQL`
|
|
- szerver: `postgres`
|
|
Ha a böngészőből közvetlenül a hoston futó PostgreSQL-re csatlakozol, használhatod a `127.0.0.1` címet is, de a compose stacken belül a szolgáltatás neve `postgres`.
|
|
- felhasználó: `lift_admin`
|
|
- jelszó: `lift_secret`
|
|
- adatbázis: `lift_manager`
|
|
|
|
Adminerben hasznos műveletek:
|
|
|
|
- `users` tábla ellenőrzése
|
|
- `elevators` tábla böngészése
|
|
- `logs` és `log_files` kapcsolatok 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:
|
|
|
|
```bash
|
|
npm run seed
|
|
```
|
|
|
|
Ez több útvonalat, technikust, eszközt és sok kapcsolódó naplóbejegyzést hoz létre.
|
|
|
|
Alap teszt jelszó:
|
|
|
|
```text
|
|
teszt123
|
|
```
|
|
|
|
Teljes újratöltéshez, a meglévő adatok törlésével:
|
|
|
|
```bash
|
|
npm run seed:reset
|
|
```
|
|
|
|
Egyedi mennyiségekkel:
|
|
|
|
```bash
|
|
node scripts/seed.js --reset --routes 8 --users-per-route 4 --elevators-per-route 20 --logs-per-elevator 16
|
|
```
|
|
|
|
Elérhető paraméterek:
|
|
|
|
- `--reset`
|
|
Törli a meglévő adatokat seed előtt.
|
|
- `--routes`
|
|
Hány technikusi útvonal készüljön.
|
|
- `--users-per-route`
|
|
Hány felhasználó készüljön útvonalanként.
|
|
- `--elevators-per-route`
|
|
Hány eszköz készüljön útvonalanként.
|
|
- `--logs-per-elevator`
|
|
Hány napló készüljön eszközönként.
|
|
|
|
## Fejlesztői használat
|
|
|
|
Ha nem konténerből akarod indítani a backendet:
|
|
|
|
1. gondoskodj róla, hogy a PostgreSQL fusson
|
|
2. telepítsd a függőségeket
|
|
3. indítsd a szervert
|
|
|
|
```bash
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
Alapértelmezett backend port:
|
|
|
|
```text
|
|
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:
|
|
|
|
- `PORT`
|
|
- `JWT_SECRET`
|
|
- `DATABASE_URL`
|
|
- `SEED_PASSWORD`
|
|
Opcionális. Ezzel felülírható a seedelt felhasználók alap jelszava.
|
|
|
|
## Adatmodell röviden
|
|
|
|
- `users`
|
|
Technikusi felhasználók és útvonalak.
|
|
- `elevators`
|
|
Az eszközök aktuális állapota és következő ellenőrzési adatai.
|
|
- `logs`
|
|
Történeti naplóbejegyzések, eszközhöz kapcsolva.
|
|
- `log_files`
|
|
A naplóbejegyzésekhez tartozó PDF fájlmetaadatok.
|
|
|
|
## Tipikus használati folyamat
|
|
|
|
1. Indítsd el a stack-et.
|
|
2. Ha kell, seedeld az adatbázist `npm run seed:reset` paranccsal.
|
|
3. Nyisd meg az alkalmazást a `http://localhost:8080` címen.
|
|
4. Jelentkezz be vagy regisztrálj.
|
|
5. Az `/alkalmazas` oldalon kezeld az eszközöket és hozz létre új naplóbejegyzéseket.
|
|
6. A `/naplo` oldalon keresd és szűrd a bejegyzéseket.
|
|
7. Adminerben ellenőrizd az adatokat, ha fejlesztés vagy hibakeresés közben szükséges.
|
|
|
|
## Fontos fájlok
|
|
|
|
- `server.js`
|
|
Express route-ok, auth, adatbázis-műveletek
|
|
- `compose.yaml`
|
|
frontend + backend + postgres + adminer stack
|
|
- `nginx/default.conf`
|
|
frontend route-ok és API proxy
|
|
- `public/index.html`
|
|
landing oldal
|
|
- `public/app.html`
|
|
kezelőfelület
|
|
- `public/logs.html`
|
|
külön naplóoldal
|
|
- `public/style.css`
|
|
központi stíluslap
|
|
- `scripts/seed.js`
|
|
tesztadat-generáló script
|