Update README.md
This commit is contained in:
parent
b0ee86c924
commit
9f917de54a
253
README.md
253
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user