lcdfixallee

LCD FIX Platform – Teljes specifikáció és állapot

Cél: RepairDesk + Shopify helyett egy integrált rendszer: lcdfix.hu weboldal + szerviz backend + készlet + beszállítók + időpontfoglalás.
Fejlesztés: lokálisan a gépeden → éles: felhős VPS (Docker).


1. Üzleti célok (amit kértél)

1.1 Szerviz működés (RepairDesk helyett)

1.2 lcdfix.hu integráció

1.3 Időpontfoglalás logika

1.4 Beszállítók (nagyker)

1.5 Bevételezés dokumentumból

1.6 Üzemeltetés


2. Technikai architektúra

┌─────────────────────────────────────────────────────────┐
│  lcdfix.hu (Astro – publikus)                           │
│  – Bemutatkozás, árlisták, időpontfoglalás űrlap        │
└────────────────────────┬────────────────────────────────┘
                         │ REST API (fetch)
┌────────────────────────▼────────────────────────────────┐
│  admin/ (React – belső szerviz app)                     │
│  – Munkalap, készlet, PO, beszállítók, időpontok        │
└────────────────────────┬────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────┐
│  server/ (Hono API + SQLite)                            │
│  – Auth JWT, üzlet logika, rendelés-javaslat, OCR       │
└────────────────────────┬────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────┐
│  server/data/lcdfix.db (lokális → később volume/cloud)  │
└─────────────────────────────────────────────────────────┘

Stack: Node 22, Hono, better-sqlite3, React 19, Vite, Astro 6 (web).


3. Amit már megírtunk (fájlok)

Backend (server/)

| Fájl | Funkció | |——|———| | src/db/schema.ts | Alap SQLite séma | | src/db/schema-v2.sql | Tervezett bővítés (szolgáltatások, időpont, PO) | | src/routes/workOrders.ts | Munkalap CRUD, státusz, alkatrész levonás | | src/routes/parts.ts | Készlet, bevételezés, árak | | src/routes/customers.ts | Ügyfelek | | src/routes/print.ts | 80 mm thermal HTML | | src/routes/auth.ts | Login JWT | | src/seed.ts | 3 üzlet, demo alkatrészek, admin |

Admin UI (admin/)

| Oldal | Funkció | |——-|———| | / | Munkalap lista | | /munkalap/uj | Új munkalap | | /munkalap/:id | Részletek, státusz, nyomtatás | | /keszlet | Alkatrészek | | /bevetelezes | Bevételezés |

Web (src/ – lcdfix.hu váz)

| Fájl | Állapot | |——|———| | data/site.json | Üzlet adatok, USP-k | | data/prices-iphone.json | iPhone árak (statikus – át kell kötni API-ra) | | layouts/BaseLayout.astro | Layout váz | | pages/index.astro | Nincs kész (default Astro placeholder) |

Deploy (deploy/, Docker)

| Fájl | Funkció | |——|———| | Dockerfile | Production image | | docker-compose.yml | app + nginx + certbot | | deploy/nginx-init.conf | HTTP indulás | | deploy/nginx-ssl.conf | HTTPS éles | | .env.example | Környezeti változók |


4. Adatbázis – jelenlegi táblák


5. Adatbázis – tervezett bővítés (v2)

Fájl: server/src/db/schema-v2.sql


6. Időpontfoglalás – üzleti algoritmus (implementálandó)

BE: foglalás kérés (service_id, store_id, preferált dátum)

1. Szükséges alkatrészek = service_parts(service_id)
2. Készlet = part_stock(store_id) minden szükséges partra
3. HA mind ≥ 1:
     → earliest_slot = ma/ holnap (nyitvatartás, kapacitás)
     → appointment.status = 'confirmed'
     → parts_reserved = true (opcionális soft reserve)
4. HA hiányzik:
     → order_deadline = ma 18:00 vagy holnap 18:00 (TZ: Europe/Budapest)
     → delivery_date = order_deadline előtt rendelés → +1 munkanap
     → earliest_slot = delivery_date + 1
     → appointment.status = 'pending_parts'
     → PO javaslat generálás supplier_products alapján
5. Visszaad: { slot, price, needsOrder, expectedPartsDate }

7. Automatikus rendelés – üzleti algoritmus

Napi job (pl. 17:30):

  1. reorder_rules: ahol quantity < min_stock → PO tétel (reason: consumption)
  2. appointments ahol status = pending_parts és nincs PO → PO tétel (reason: appointment)
  3. Csoportosítás supplier_id szerint
  4. Ha összeg / tétel > 0 és < order_deadline → PO status = ready_to_send
  5. Admin jóváhagyás vagy auto-send email/API

8. Bevételezés dokumentumból

Fázis 1: CSV import (beszállító formátum) Fázis 2: PDF → szöveg (pdf-parse) → sor matching SKU/ean Fázis 3: Egyeztetés PO-val → stock_receipts automatikus


9. API végpontok

Megvan

POST   /api/auth/login
GET    /api/auth/me
GET    /api/stores
GET    /api/customers
GET    /api/work-orders
POST   /api/work-orders
PATCH  /api/work-orders/:id/status
GET    /api/parts
POST   /api/parts/receive
GET    /api/print/work-order/:id

Tervezett (v2)

GET    /api/public/services              # lcdfix.hu árlista
GET    /api/public/availability          # szabad időpontok
POST   /api/public/appointments          # foglalás
GET    /api/services                     # admin
POST   /api/services
GET    /api/suppliers
POST   /api/suppliers/:id/sync           # ár/készlet pull
GET    /api/purchase-orders
POST   /api/purchase-orders/generate     # auto javaslat
POST   /api/purchase-orders/:id/send
POST   /api/imports/document             # PDF/CSV feltöltés
POST   /api/imports/:id/confirm          # érkeztetés

10. Lokális futtatás

git clone https://github.com/Hristos0527/lcdfixallee.git lcdfix-platform
cd lcdfix-platform
npm install
npm run seed          # első alkalommal
npm run dev
URL Mi
http://localhost:5173 Szerviz admin
http://localhost:3001/api/health API

Belépés: admin@lcdfix.hu / admin123 (változtasd!)

Adatbázis: server/data/lcdfix.db – másolható másik gépre.


11. Felhő (később)

cp .env.example .env   # JWT_SECRET, DOMAIN
cp deploy/nginx-init.conf deploy/nginx.conf
docker compose up -d --build
./deploy/ssl-init.sh   # SSL után

12. Következő fejlesztési sorrend (javaslat)

  1. schema-v2.sql migráció futtatása + seed szolgáltatások (iPhone kijelzők)
  2. services + appointments API + admin oldal
  3. lcdfix.hu foglalás oldal (Astro)
  4. suppliers CRUD + manuális ár import
  5. PO generátor (17:30 logika)
  6. PDF bevételezés
  7. Beszállító scraper adapterek (holland nagyker – egyesével)
  8. 10 user admin UI
  9. RepairDesk export import

13. Üzletek (seed)

Kód Név Cím
AL LCD FIX – Allee 1117 Budapest, Október huszonharmadika u. 8-10.
DP LCD FIX – Duna Plaza 1138 Budapest, Váci út 178.
U3 LCD FIX – Üzlet 3 módosítandó

14. Kapcsolódó dokumentumok

Utolsó frissítés: 2026-03-09