From 9f917de54af2ed1f8407ceb640e97008525f16d8 Mon Sep 17 00:00:00 2001 From: miksa Date: Fri, 22 May 2026 23:11:50 +0200 Subject: [PATCH] Update README.md --- README.md | 253 +++++++++++++++--------------------------------------- 1 file changed, 70 insertions(+), 183 deletions(-) diff --git a/README.md b/README.md index e35dc32..ba1abcd 100644 --- a/README.md +++ b/README.md @@ -1,239 +1,126 @@ + # LiftEllenőr -Magyar nyelvű liftellenőrzési és naplózási rendszer technikusok számára. +> Magyar nyelvű liftellenőrzési és karbantartás-naplózási rendszer felvonószerelők és technikusok számára. -Az alkalmazás főbb részei: +## 🌟 Funkciók -- nyilvános landing oldal: `/` -- bejelentkezés: `/bejelentkezes` -- regisztráció: `/regisztracio` -- technikusi kezelőfelület: `/alkalmazas` -- kereshető naplóoldal: `/naplo` +- **🔒 Biztonságos hozzáférés:** JWT alapú hitelesítés és felhasználókezelés. +- **📝 Nyilvántartás:** Eszközök és hozzájuk tartozó karbantartási naplók elkülönített kezelése. +- **⚡ Gyors adatrögzítés:** Modális felületek új eszközök és naplóbejegyzések gyors felviteléhez. +- **📎 Dokumentumkezelés:** PDF formátumú jegyzőkönyvek csatolása a naplóbejegyzésekhez. +- **📊 Műszerfal:** Közelgő és lejárt ellenőrzési határidők vizuális nyomon követése. +- **🛠️ Beépített eszközök:** Kereshető napló, Adminer adatbázis-kezelő és seed script teszteléshez. -## Funkciók +## 🛠 Tech Stack -- 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 +- **Frontend:** HTML/CSS/JS statikus fájlok, Nginx (webszerver és API proxy) +- **Backend:** Node.js (Express) +- **Adatbázis:** PostgreSQL +- **Infrastruktúra:** Docker / Podman Compose -## Stack +## 🚀 Gyors indítás -A `compose.yaml` alapján a rendszer ezekből a szolgáltatásokból áll: +### Előfeltételek +- [Node.js](https://nodejs.org/) (v22+) +- Docker és Docker Compose (vagy Podman) -- `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 +### Telepítés és futtatás 1. Függőségek telepítése: - ```bash -npm install + npm install + ``` -2. A teljes stack indítása: - +2. A környezeti változók beállítása (opcionális, alapértelmezések az `.env.example`-ben): ```bash -podman compose up -d +cp .env.example .env + ``` -Ha Docker Compose-t használsz: +3. A teljes stack (Nginx, API, DB, Adminer) indítása: ```bash docker compose up -d + ``` -3. Nyisd meg az alkalmazást: -```text -http://localhost:8080 -``` +*(Ha Podmant használsz, cseréld a `docker`-t `podman`-ra.)* +4. Nyisd meg az alkalmazást a böngészőben: **http://localhost:8080** -## Stack kezelése +## 🔌 Hálózat és Portok -Indítás: +| Szolgáltatás | Port | Cím | +| --- | --- | --- | +| **Alkalmazás (Nginx)** | `8080` | `http://localhost:8080` | +| **Backend API** | `3000` | `http://localhost:3000` | +| **PostgreSQL** | `5432` | `localhost:5432` | +| **Adminer** | `8090` | `http://localhost:8090` | -```bash -podman compose up -d -``` +## 🗄️ Adatbázis és Tesztadatok (Seeding) -Leállítás: +A projekt tartalmaz egy generátort (seed script), amellyel pillanatok alatt feltölthető az adatbázis tesztadatokkal (technikusok, útvonalak, liftek, naplók). -```bash -podman compose down -``` +**Alapértelmezett teszt jelszó:** `teszt123` -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: +Tesztadatok generálása: ```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: +Adatbázis teljes törlése és újragenerálása: ```bash npm run seed:reset + ``` -Egyedi mennyiségekkel: +### Egyedi seed paraméterek + +Testreszabhatod a generált adatok mennyiségét a CLI argumentumokkal: ```bash node scripts/seed.js --reset --routes 8 --users-per-route 4 --elevators-per-route 20 --logs-per-elevator 16 + ``` -Elérhető paraméterek: +### Adminer (Adatbázis böngésző) -- `--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. +Az adatbázis közvetlen eléréséhez nyisd meg a `http://localhost:8090` címet az alábbi adatokkal: -## Fejlesztői használat +* **Rendszer:** `PostgreSQL` +* **Szerver:** `postgres` *(ha hostról csatlakozol: `127.0.0.1`)* +* **Felhasználó:** `lift_admin` +* **Jelszó:** `lift_secret` +* **Adatbázis:** `lift_manager` -Ha nem konténerből akarod indítani a backendet: +## 💻 Helyi fejlesztés (Docker nélkül) -1. gondoskodj róla, hogy a PostgreSQL fusson -2. telepítsd a függőségeket -3. indítsd a szervert +Ha a backendet natívan, konténeren kívül szeretnéd futtatni fejlesztéshez (a PostgreSQL-nek futnia kell): ```bash +# Adatbázis indítása compose-zal +docker compose up -d postgres + +# Backend indítása npm install npm start + ``` -Alapértelmezett backend port: +*Megjegyzés: A frontend statikus fájljait és az API proxy-t alapértelmezetten az Nginx kezeli. Helyi backend fejlesztésnél érdemes a compose stacket használni, és csak a backend konténert újraépíteni változáskor.* + +## 📂 Projekt struktúra ```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 +. +├── nginx/ # Nginx konfiguráció (default.conf) +├── public/ # Statikus frontend fájlok (HTML, CSS, JS) +├── scripts/ # Segédscriptek (pl. seed.js) +├── compose.yaml # Docker Compose konfiguráció +├── server.js # Express backend belépési pont +└── .env.example # Környezeti változók sablonja