Files
service-finder/docs/Old_versions/Service_finder Rendszerspecifikáció es feljesztes.txt
2026-02-04 21:58:57 +00:00

1440 lines
53 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
2026.01.25 Leírás Bővített
Nem kell semmilyen trükköt alkalmaznod, hiszen a beszélgetésünk minden részlete itt van a „fejemben” (a kontextusban). Az a feladatom, hogy ezt a tudást strukturáljam és átadjam neked.
Mivel a célod az, hogy **egyetlen, mindent átfogó dokumentumod** legyen, amit egy új GEM-be betáplálhatsz, most összegyúrtam az összes eddigi technikai döntést, üzleti logikát, jövőbeli tervet és egyeztetett szabályt.
Ezt a szöveget másold ki, és ez legyen az **ÚJ GEM Rendszerutasítása (System Instructions)**. Ez a létező legrészletesebb leirat a projektünkről.
---
# 🚀 SERVICE FINDER - TELJES RENDSZER- ÉS FEJLESZTÉSI DOKUMENTÁCIÓ (v3.0)
Ez a dokumentum a "Service Finder" alkalmazás teljes körű, minden részletre kiterjedő leírása. Tartalmazza az architektúrát, az adatmodellt, az üzleti logikát, a jogosultsági rendszert és a jövőbeli ütemtervet.
---
## 1. A PROJEKT IDENTITÁSA ÉS FILOZÓFIÁJA
* **Név:** Service Finder (Digital Twin Platform).
* **Alapkoncepció:** A jármű egy önálló entitás („Digitális Iker”), amelynek története és adatai függetlenek a tulajdonostól.
* **Aranyszabály (The Golden Rule):** **„A jármű örök, a tulajdonos vándor.”**
* Járművet és Felhasználót soha nem törlünk véglegesen (kivéve adminisztratív megsemmisítés).
* Csak inaktiválás (Soft Delete) vagy lecsatolás (Unlink) létezik.
* **Architektúra:** **„Smart Backend, Dumb Frontend”** (Vékony kliens).
* A frontend nem végez számításokat, csak megjelenít.
* Minden validációt, kalkulációt és döntést a backend végez.
---
## 2. ÜZEMELTETÉSI KÖRNYEZET (TECH STACK)
* **Szerver IP:** `192.168.100.43`
* **Konténerizáció (Docker Compose):**
* `service_finder_api`: Backend (Python 3.12 + FastAPI + Uvicorn). Port: `8000`.
* `service_finder_db`: Adatbázis (PostgreSQL). Port: `5432`.
* `pgadmin`: Adatbázis menedzsment.
* **Adatbázis technológia:** PostgreSQL, aszinkron eléréssel (`asyncpg`), SQLAlchemy ORM, Alembic migrációk.
* **Frontend:** HTML5, Bootstrap 5, Vanilla JS (Fetch API). Nincs nehéz keretrendszer (React/Angular), hogy a kód hordozható és egyszerű maradjon.
* **Mobil App stratégia:** Offline-first működés (helyi tárolás), amely hálózat esetén szinkronizál a szerverrel.
---
## 3. ADATBÁZIS ÉS ADATSTRUKTÚRA (`data` séma)
### 3.1 Törzsadatok (Katalógus - Big Data)
Statikus, központi adatbázis a járművek pontos meghatározásához.
* **Márkák:** Név, Logo URL (a csempés megjelenítéshez).
* **Modellek & Típusok:** Részletes specifikációk (Motorizáció, Üzemanyag, Generáció).
* **Felszereltség:** Gyári extrák listája (JSON).
### 3.2 Járművek (`data.user_vehicles`)
A fizikai autó digitális leképzése.
* **Azonosítás:** `id`, `vin` (Alvázszám - Egyedi, nem módosítható!), `license_plate` (Rendszám).
* **Tulajdonos:** `user_id` (Csak az aktuális birtokost jelöli).
* **Technikai állapot:**
* `current_odometer`: A rendszer által folyamatosan frissített, aktuális km állás.
* `initial_odometer`: Rendszerbe lépéskori km.
* **Okmányok:** `mot_expiry_date` (Műszaki), `insurance_expiry_date` (Biztosítás).
* **Beállítások:** `is_primary` (Elsődleges jármű jelölő a gyors rögzítéshez).
### 3.3 Események (`data.vehicle_events`)
A jármű élettörténete (Append-only napló).
* **Adatok:** `event_type` (Tankolás, Szerviz, Javítás, Parkolás, Matrica), `amount` (Összeg), `description`.
* **Kritikus adatok:** `event_date` (Tényleges dátum - lehet múltbeli is!), `odometer` (Km állás az eseménykor).
* **Minősítés (Verification Level):**
* `A` (Hitelesített): Rendszeren keresztüli, vagy számlával/fotóval igazolt.
* `B` (Deklarált): Felhasználó által rögzített.
* `C` (Legacy): Rendszerbe lépés előtti, importált adat.
* `U` (Ismeretlen): Nincs adat.
### 3.4 Felhasználók (`data.users`)
* **Adatok:** `email`, `hashed_password`, `full_name`.
* **Típus:** `company_type` ('PRIVATE' - Magánszemély/Minicég, 'CORPORATE' - Cég).
* **Céges adat:** `tax_number` (Csak céges profilnál kötelező).
* **UI Preferencia:** `ui_skin` ('CLEAN' - Letisztult céges, 'FUN' - Egyedi/Játékos).
---
## 4. MŰKÖDÉSI ÉS ÜZLETI LOGIKA
### 4.1 Regisztrációs Folyamat
1. **Egykapus rendszer:** Mindenki ugyanott regisztrál (`/auth/register`).
2. **Adatbekérés:** Teljes név, Email, Jelszó (kötelező).
3. **Típus elágazás:**
* **Magánszemély / Minicég:** Nem ad meg adószámot. Nincs szigorú cégellenőrzés.
* **Cég (Corporate):** Adószám megadása kötelező. (Később API alapú cégadat ellenőrzés).
4. **Visszaigazolás:** Email kiküldése megerősítő linkkel. A fiók csak kattintás után aktív.
### 4.2 Jármű Életút Kezelés (VIN Logic)
* **Új jármű felvétele:** A rendszer először **VIN (Alvázszám)** alapján keres az adatbázisban.
* **Ha létezik:** Nem hoz létre újat! A meglévő jármű `user_id`-ját frissíti az új tulajdonosra (birtokba vétel). A jármű előélete megmarad.
* **Ha nem létezik:** Létrehozza az új rekordot.
* **Eltávolítás:** A felhasználó a "Lecsatolás" gombbal kiveszi a garázsából. A jármű az adatbázisban marad "gazdátlan" státuszban, vagy archív tulajdonosi előzménnyel.
### 4.3 Költség és Km Szinkronizáció (Smart Update)
* Amikor a felhasználó eseményt rögzít (pl. Tankolás 150.000 km-nél):
1. A Backend ellenőrzi: `Beküldött km >= Jelenlegi km?`
2. Ha érvényes, elmenti az eseményt.
3. **Automatizmus:** A Backend frissíti a `user_vehicles.current_odometer` mezőt az újra. Így a jármű állapota mindig naprakész.
---
## 5. JOGOSULTSÁGI RENDSZER (RBAC)
### 5.1 Szerepkörök (Roles)
1. **TULAJDONOS (Owner):** Jogi birtokos. Teljes körű jogok (szerkesztés, lecsatolás, sofőr hozzáadás).
2. **FLOTTA MANAGER:** Céges környezetben az autók kezelője. Jogosítványokat, orvosi engedélyeket ellenőriz.
3. **SOFŐR (Driver):** Csak a hozzá rendelt autót látja.
* **Korlátozás:** Csak költséget/eseményt rögzíthet. Törzsadatot nem módosíthat.
* **Ellenőrzés:** Ha a sofőr jogosítványa ("B") nem felel meg a járműnek ("C"), a rendszer **PIROS** riasztást küld a Managernek.
4. **SZERVIZ PARTNER:** Validált bejegyzéseket tehet a szervizkönyvbe.
---
## 6. MEGJELENÍTÉS ÉS UI/UX (Smart Dashboard)
### 6.1 Csempe Nézet (Smart Tiles)
Minden jármű egy interaktív kártya.
* **Fejléc:** Márka logó (kicsiben) + Rendszám + Becenév.
* **Adatok:** Típus, Aktuális km.
* **Vizuális állapotjelzők (Traffic Light System):**
* 🔴 **PIROS Felkiáltójel:** Kritikus hiba (Lejárt műszaki, lejárt biztosítás, túlfutott szervizintervallum > 1000 km).
* 🟡 **SÁRGA Felkiáltójel:** Figyelmeztetés (30 napon belüli lejárat, közeledő szerviz).
* 🟢 **Zöld Pipa / Keret:** Minden rendben.
### 6.2 Funkciók a Dashboardon
* **Elsődleges Jármű:** Külön kiemelt hely/gomb a "Primary" autónak a villámgyors rögzítéshez.
* **Skin Választó:**
* *Cégeknek:* Letisztult, Excel-szerű táblázatos nézet.
* *Magánszemélyeknek:* "Fun", grafikus, testreszabható felület.
---
## 7. SZOCIÁLIS ÉS KÖZÖSSÉGI FUNKCIÓK (Jövőkép)
### 7.1 Adatgyűjtés (Harvesting)
* A rendszer anonim módon gyűjti a szervizköltségeket, hogy piaci átlagárakat képezzen ("Mennyibe kerül egy Citigo vezérléscsere?").
### 7.2 Szerviz és Értékelés
* **Szervizkereső:** A felhasználó kereshet a közelben lévő, rendszer által minősített szervizeket.
* **Hiteles Értékelés:** Csak az értékelhet szervizt, akinek van **igazolt** (GPS vagy számla alapú) eseménye az adott helyen.
* **"Social Help":** Pánikgomb lerobbanás esetére, ami értesíti a közeli márkatársakat vagy autómentőket.
---
## 8. SPECIÁLIS KEZELÉSI ESETEK
* **Történelmi Adatok (Múlt):**
* Lehetőség van visszamenőleges rögzítésre (Dátumválasztóval).
* Ezek az adatok alacsonyabb (`C` vagy `Legacy`) minősítést kapnak a megbízhatósági indexben.
* **Hibás rögzítés:**
* Felhasználó nem törölhet eseményt véglegesen (hogy ne lehessen manipulálni a szervizkönyvet).
* Csak "Stornó" bejegyzés tehető, vagy Adminisztrátori kérésre javítható.
---
## 9. API VÉGPONT STRATÉGIA
Minden funkció REST API végponton érhető el (`/api/v1`).
* **Auth:** `register`, `login`, `verify-email`, `password-reset`.
* **Fleet:**
* `POST /vehicles` (Jármű felvétel - VIN logikával).
* `GET /vehicles` (Lista - Jogosultság szűrve).
* `DELETE /vehicles/{id}` (Lecsatolás a garázsból).
* `POST /vehicles/{id}/events` (Költség rögzítés + Odometer frissítés).
* **Catalog:** Márkák, modellek, logók lekérése.
* **Users:** Profil kezelés, sofőr adatok (jogosítvány érvényesség).
---
Ez a dokumentáció tartalmazza a **Service Finder** projekt teljes tudásanyagát a 2026.01.25-ös állapot szerint. Minden fejlesztésnek ezt a logikai keretrendszert kell követnie.
__________________________________________________________________________________________
Nem töröltem ki semmit, minden funkció (a korábbi V1.0-tól a legfrissebb ötletekig) benne van, de a szerkezetet átalakítottam úgy, hogy a Gamifikáció és a Verseny (Adatfeltöltés) a prioritási lista elejére került, és az Üzleti Modell (Lejárat/Családi flotta) a legfrissebb logikát tükrözi.
Ezt a blokkot mentsd el.
📂 SERVICE FINDER UNIFIED MASTER SPECIFICATION
Verzió: 3.0 (Konszolidált Mesterterv) Prioritás: Gamifikáció vezérelt Bevezetés (Launch) Dátum: 2026.01.24.
🟢 HOGYAN HASZNÁLD EZT A DOKUMENTUMOT?
(Másold be ezt a szöveget új chat indításakor)
"Szia! Itt a Service Finder projekt aktuális, konszolidált Mesterterve. Minden korábbi verzió és ötlet ebben van egyesítve. A fejlesztési prioritás a 'Gamifikáció és Adatfeltöltés', mint a rendszer motorja. Kérlek, olvasd el, tárold el a memóriádban, és ez alapján folytassuk a munkát."
🏗️ I. ARCHITEKTURÁLIS ALAPELVEK (TECH STACK)
A rendszer nem egyetlen app, hanem egy moduláris ökoszisztéma ("Modular Monolith").
Platform: Docker konténerizált környezet.
Backend: Python FastAPI (Aszinkron).
Adatbázis: PostgreSQL 15 (Shared DB - Minden modul közös adatbázist használ, szeparált sémákkal).
Fájltárolás: MinIO (S3 kompatibilis - Képek, Dokumentumok, OCR alapanyag).
Frontend: React (SPA/PWA) - Mobilapp-szerű élmény, "buildelt" kódvédelem.
Elérés & Proxy: Nginx Proxy Manager (dev.profibot.hu, stb.).
🔑 II.0 REGISZTRÁCIÓ ÉS BIZTONSÁGI PROTOKOLL (v1.0)
A rendszerbe való belépés többszintű védelmi vonalon keresztül történik a botok és csalások kiszűrése érdekében.
Eszközszintű védelem (Rate Limiting):
ID alapú korlát: Egy adott eszközről (Device ID) 24 órán belül maximum 3 regisztrációs kísérlet engedélyezett.
Hűtési időszak: A limit elérése után az eszköz 24 órára zárolásra kerül az új regisztrációk elől (elkerülve a tömeges bot-regisztrációt, de kímélve a használt mobilt vásárlókat).
Többcsatornás Hitelesítés (Omnichannel Verification):
Email: Alapértelmezett visszaigazolás (AWS SES alapokon).
Telefonszám (Kritikus műveletekhez): Kötelező a versenyben való részvételhez és a Szerviz Partnereknek.
Csatornaválasztás: A felhasználó választhat, hogy a hitelesítő kódot SMS, WhatsApp vagy Telegram üzenetben kéri-e (költséghatékony és modern megoldás).
Flash Call opció: A rendszer egy véletlenszerű számról hívást indít, a usernek a hívó fél utolsó 4 számjegyét kell beírnia (opcionális, költségkímélő).
Hibrid Social Login:
Google / Apple ID: Engedélyezett a gyors belépéshez.
Adatkiegészítés: Ha a közösségi fiók nem tartalmaz minden szükséges adatot (pl. telefonszám), a rendszer egy popup ablakban kéri be azokat az első kritikus művelet előtt.
Bot-elleni védelem:
Láthatatlan reCAPTCHA v3 integráció a háttérben a gyanús tevékenységek (automatizált script-ek) kiszűrésére.
🏆 II. A "LAUNCH ENGINE": GAMIFIKÁCIÓ ÉS VERSENY (PRIORITÁS #1)
Ez a rendszer legfontosabb eleme az induláskor. Cél: A térkép "kifehérítése" és az adatbázis feltöltése közösségi erővel.
1. A Nagy Adatverseny (The Data Race)
Cél: Minél több minőségi szerviz és járműadat rögzítése rövid idő alatt.
Szezonok: 3-6 havonta zárás és díjazás.
Pontrendszer:
+10 pont: Új szerviz rögzítése (Fotó + Nyitvatartás + Alapadatok).
+5 pont: Márkaspecializáció rögzítése (Validáltan).
+50 pont: Hirdető beszervezése (Partnerkód megadásával).
+1 pont: Validálás (Más által feltöltött adat ellenőrzése).
Büntetés és Kizárás:
-2 pont: Téves adat beküldése.
-10 pont (Kritikus szint): Kizárás a versenyből. A felhasználó "Read-only" (csak olvasó) módba kerül a közösségi téren, nem vihet fel új szervizt.
2. Díjazás és Ranglisták
Jutalmak:
1-3. hely: Pénzjutalom.
4-10. hely: VIP előfizetés (1 év).
További helyezettek: Prémium tagságok (6-3 hónap).
Speciális Szerepkörök:
Helyi Validátor: A régió legaktívabb adatfeltöltője. Ő hagyhatja jóvá a vitatott módosításokat és szervezhet hirdetéseket.
👤 III. FELHASZNÁLÓK ÉS "MINI CÉGEK" (RBAC)
A rendszer mindenkit "Flottaként" kezel, a magánszemélytől a nagyvállalatig.
1. Magánszemély = "Családi Flotta" (Mini Cég)
Struktúra: A Családfő (Tulajdonos) kezeli a fiókot.
Tagok: Max 4 fő (Házastárs, Gyerekek) hívható meg "Sofőr" szerepkörbe.
Limit: Alapcsomagban 3 jármű.
Logika: A háttérben ugyanaz a céges logika fut, csak a felület barátságosabb ("Családtag meghívása").
2. Jogosultsági Szintek (Dinamikus)
Cégtulajdonos: Jogokat oszt/von meg (pl. kilépő dolgozó). Beállíthatja, ki rögzíthet költséget.
Flotta Manager: Látja a TMS-t, riasztásokat, költségeket.
Sofőr:
Csak a hozzá rendelt időszakban látja az autót.
Jogosultság: Csak Tankolás / Szerviz Rögzítés / Teljes Nézet.
Hirdetésszervező / Validátor:
Helyi szervizek fizikai ellenőrzése.
Szervizek "beszervezése" hirdetőnek (Kredit jutalékért).
📊 IV. ÜZLETI MODELL, LEJÁRAT ÉS HIRDETÉS (V2.5)
1. Előfizetési Csomagok
Free: Max 3 jármű. (Reklámokkal, Hirdetők előre sorolva).
Premium / VIP: Magasabb limitek, reklámmentes, Excel export, részletes statisztika.
Kiegészítő Járműdíj (Add-on):
Opció csomagváltás helyett (+1 autó).
Magán: +300 Ft (vagy kredit) / hó.
Céges: +500 Ft (2 €) / hó.
2. Lejárat Kezelése (3 Fázisú Lifecycle)
Ha az előfizetés lejár:
Türelmi Idő (1-30. nap) - "Vak Rögzítés":
Adatot lehet rögzíteni (nincs lyuk a szervizkönyvben).
Statisztika, Költségösszesítő, Előzmények NEM láthatóak.
Trust Score csökken.
Leminősítés (31. naptól):
Visszaáll Free szintre (Max 3 autó). A többi autó zárolásra kerül.
Visszamenőleges Aktiválás (Max 60. napig):
Ha rendezi a díjat (visszamenőleg is), az adatok és a Trust Score helyreállnak.
3. Hirdetési Rendszer (Hibrid)
Szervizeknek:
Idő alapú: Havi fix díjért kiemelt hely.
Kredit alapú (PPC): Egyenlegből vonódik le a megjelenés/kattintás.
Promóció (Win-Win):
User meghívja a szervizt -> User Kreditet kap.
User az Appra hivatkozik ("Innen jöttem") -> Szerviz Kedvezményt ad a munkadíjból.
🚗 V. JÁRMŰ ÉS KÖLTSÉG NYILVÁNTARTÁS (CORE)
1. Jármű Adatmodell (Deep Dive)
Törzsadatok: Kategória -> Márka -> Modell -> Generáció -> Motor.
Felszereltség: Dinamikus (Klíma, Multimédia, Felépítmény, Speciális eszközök).
Gumiabroncs Modul: Márka, Típus, Évszak, DOT szám figyelés (Riasztás 6 évnél öregebb guminál).
Trust Score: Százalékos megbízhatósági index (Fotó, Validált szerviz, Folyamatos km rögzítés növeli).
2. Költségnyilvántartás
Üzemeltetés: Üzemanyag, Adalék, Mosás, Parkolás.
Hatósági: Adók (Súly/Cégautó), Útdíj (Matrica/HU-GO), Bírságok.
Pénzügyi: Vételár, Lízing, Hitel, Értékcsökkenés.
Karbantartás: Szerviz, Gumi, Alkatrész.
Láthatóság (Privacy): Tulajdonosváltáskor az új tulajdonos nem látja a régi költségeit részletesen, csak statisztikát.
🛠️ VI. SZERVIZ KERESŐ ÉS SOS
Struktúra: Fa-rendszerű kategóriák (pl. Járműépítés -> Lakóautó -> Bútorozás).
Keresési Logika: Relevancia > Távolság > Hirdetői Státusz (Free) > Minőség.
SOS Protokoll: Választható "Biztonságos" (Szerződött partner) vagy "Gyors" (Legközelebbi műhely) opció.
Értékelés: Többszempontú (Szakmai, Ár, Sebesség). Csak validált látogatás után adható.
📡 VII. HALADÓ MODULOK (JÖVŐBENI BŐVÍTÉS)
Ezek az alaprendszerre épülnek, de külön fejlesztési fázisok.
TMS (Logisztika): Útvonaltervezés, Fuvarszervezés, Sofőr app nézet.
Telematika (Biztosítás): Opt-in adatgyűjtés (GPS, G-szenzor) a "Pay-how-you-drive" biztosításhoz.
Nemzetközi Modul: Ország sablonok (Vizsga intervallumok, Kötelező tartozékok betöltése).
Rendezvények: Eseménynaptár, Márkatalálkozók, Túrák szervezése.
🗓️ VIII. FEJLESZTÉSI ÜTEMTERV (ÚJ PRIORITÁSOK)
FÁZIS 1 (MVP + LAUNCH ENGINE):
Core Modul: Jármű, Költség, Szervizkereső, User/Cég alapok.
Gamifikáció: Verseny, Pontozás, Validálás (Hogy legyen adat!).
Üzlet: "Vak rögzítés" és Lejárat logikája.
FÁZIS 2 (NÖVEKEDÉS):
OCR: Hogy könnyebb legyen a feltöltés. (prémium és vip előfizetéssel credit levonállsal hanincs előfizetés vagy kredit nem aktív)
Referral Rendszer: Meghívók és Kreditek követése.
Ország Sablonok: Nemzetközi nyitás alapjai.
FÁZIS 3 (MONETIZÁCIÓ & PRO):
Hirdetési rendszer (PPC/Fix).
TMS és Telematika modulok.
Rendezvény szervezés.
📝 III. ÜZLETI ÉS FEEDBACK MODUL néven:
3.1 Üzletkötői hálózat:
Struktúra: Kizárólag jutalékos rendszer, három szinttel (Junior, Senior, Country Boss).
Területek: Flotta-akvizíció (SaaS) és Szerviz-partneri hirdetések.
Kifizetés: Szerződött partnereknek pénzügyi elszámolás, alkalmi ajánlóknak max. 2 havi Prémium/Kredit jóváírás.
3.2 Feedback és Minőségbiztosítás:
Hiba-bejelentés: Automatizált diagnosztikai adatok küldése az alkalmazásból.
Fejlesztési javaslatok: Közösségi szavazásra bocsátott ötletek, rangsorolt megvalósítás.
Jutalmazás: A valid hibákért és sikeres fejlesztési ötletekért extra pontok és "System Builder" rang jár.
🏢 1. Az "Üzletkötői Portál" (Partner Dashboard)
Azok számára, akik fizetést vagy valódi pénzbeli jutalékot akarnak, egy külön szintet kell létrehozni a rendszerben.
Szerződéses háttér: Náluk a regisztráció nem egy gombnyomás. Fel kell tölteniük a vállalkozói igazolványukat vagy cégadataikat, és egy digitális keretszerződést kell kötniük veled.
Egyedi Partnerkódok: Olyan kódokat kapnak, amelyek nem csak kedvezményt adnak az ügyfélnek, hanem a rendszerben "Jutalékos" jelzővel vannak ellátva.
Transzparencia: Egy külön felületen látják, hány cég regisztrált a kódjukkal, mennyi volt a befizetett összeg, és mennyi a felhalmozott, kifizethető jutalékuk.
💰 2. Jutalékkezelési Modellek (Pénzügyi logika)
Ahelyett, hogy fix fizetést adnál (ami nagy kockázat az elején), a sikerdíjas modellt javaslom, három szinten:
Szervezési jutalék (Egyszeri): Az első éves vagy féléves előfizetési díj egy magasabb százaléka (pl. 15-20%).
Gondozási jutalék (Recurring): Amíg az ügyfél fizeti a havidíjat, az üzletkötő kap egy kisebb, fix százalékot (pl. 3-5%). Ez motiválja őt, hogy tartsa a kapcsolatot a flottával, segítsen nekik az adatok tisztításában.
Adattisztítási bónusz: Ha egy moderátor/üzletkötő manuálisan validál egy szervizt vagy ellenőriz egy vitatott adatot, fix összeget (pl. 0.5 - 1 €) írhatunk jóvá a számláján munkadíjként.
🌍 3. Nemzetközi "Master Franchise" Modell
Ha kilépünk az országhatáron kívülre, nem tudsz mindenhol te lenni a moderátor. Ilyenkor jön a Country Manager szint:
Országfelelős: Ő kap egy százalékot az összes adott országból származó bevételből.
Feladata: Ő kezeli a helyi üzletkötőket, ő felel a jogszabályi sablonok (műszaki vizsga időközök, adók) helyességéért, és ő végzi a legfelsőbb szintű moderációt.
🛠️ 4. Technikai megvalósítás (Pénztárcabarát módon)
Hogy ne kelljen bonyolult bérszámfejtő szoftvert írnunk:
Kifizetési küszöb: Csak akkor kérhet kifizetést, ha elér pl. 100 € jutalékot.
Számlázás: Ő állít ki neked egy számlát "Marketing tevékenység" vagy "Adatkezelés" címen, te pedig utalsz.
Kredit-Pénz hibrid: Az üzletkötő választhat: ha pénzben kéri, adózni kell utána. Ha kreditben kéri (hogy hirdesse a saját üzletét a rendszerben), akkor több "virtuális értéket" kap.
📝 Mesterterv Kiegészítés (v3.3)
Partneri és Üzletkötői Modul:
Hibrid Jutalmazás: Lakossági szinten Kredit, Üzletkötői szinten Pénzbeli jutalék (Szerződés alapján).
Partner Dashboard: Külön felület az értékesítési statisztikák és kifizetések követésére.
B2B Protection: Céges előfizetés esetén a magánszemély meghívója nem kaphat privát anyagi előnyt, a jutalékot vagy a cég kapja kedvezményként, vagy a hivatásos üzletkötő jutalékként.
📘 SERVICE FINDER ECOSYSTEM FINAL MASTER SPECIFICATION (v3.5)
Dátum: 2026.01.24. | Státusz: Fejlesztésre kész (Ready for Implementation)
1. Média és Offline Kezelés
Média: Kizárólag fotó alapú rögzítés (számla, forgalmi, állapotrögzítés). Nincs videótámogatás a sávszélesség és tárolási költségek optimalizálása érdekében.
Offline mód: PWA/Mobil kliens oldali gyorsítótárazás. Az adatok netkapcsolat hiányában a telefonon tárolódnak.
Háttér-szinkronizáció: Amint Wi-Fi vagy mobilnet rendelkezésre áll, az alkalmazás a háttérben (indítás nélkül is) elküldi a függőben lévő adatokat a szerverre.
2. SOS és Helymeghatározás
Logika: Nincs folyamatos GPS követés (erőforrás-kímélés).
SOS Esemény: Csak a gomb megnyomásakor kérdezi le a rendszer a koordinátákat.
Megjelenítés: A user kijelzőjén azonnal megjelenik a pontos GPS koordináta és (geocoding segítségével) a legközelebbi cím (város, utca, házszám), hogy segítse a szóbeli hibabejelentést.
3. Felhasználói Élmény (UI/UX Strategy)
Hibrid Dizájn: Letisztult, funkcionális alapfelület (B2B/Flotta), amely kreditért vásárolható egyedi skinekkel, ikonokkal és animációkkal tehető "csicsássá" a magánszemélyek/fiatalok számára.
🛠️ Megvalósítási Útmutató (PM-nek és Fejlesztőnek)
Mivel a tervezési fázist lezártuk, íme a technikai start-szekvencia, amint hozzáférsz a szerverhez:
Infrastruktúra ellenőrzése:
Docker konténerek futásának ellenőrzése (docker ps).
Adatbázis elérés tesztelése (pgAdmin vagy terminal).
Környezeti változók (.env) véglegesítése:
AWS SES (Email) API kulcsok.
Google OAuth Client ID & Secret.
WhatsApp/SMS Gateway API kulcsok.
Adatbázis Migráció (Alembic):
A korábban elkészített gamification.py, user.py, company.py és referral.py modellek alapján a táblák létrehozása a data sémában.
Backend "Skeleton" felépítése:
Routerek regisztrálása a main.py-ban.
A háttérben futó szinkronizációs logikához szükséges "worker" (pl. Celery vagy FastAPI BackgroundTasks) beállítása.
_______________________________________________________________________________________________________________________________
A kérésedre a megoldás a "Modular Monolith" (Moduláris Monolit) dokumentáció. Hogy hogyan bontsuk? Úgy készítettem el az alábbi Master Dokumentumot, hogy MARKDOWN formátumban van.
Hogyan használd új chat nyitásakor? Nem kell mást tenned, mint kimásolni az egész lenti blokkot (a --- vonalak között), és beilleszteni az új chat ablakba ezzel a felütéssel:
"Szia! Itt a Service Finder projekt aktuális Mesterterve és státusza. Kérlek, olvasd el, tárold el a memóriádban, és ez alapján folytassuk a munkát."
Íme a véglegesített, mindenre kiterjedő specifikáció:
📂 SERVICE FINDER SPECIFICATION UPDATES
Módosított Modulok: Felhasználók, Üzleti Modell, Gamifikáció, Roadmap
👤 II. FELHASZNÁLÓK ÉS CSALÁDI FLOTTÁK (MÓDOSÍTOTT)
A rendszer mindenkit "Flottaként" kezel, csak a méret és a jogi státusz változik.
1. Magánszemély ("Mini Cég")
Struktúra: A Családfő (Tulajdonos) kezelheti a családi flottát.
Hozzáadható tagok: Max 4 fő (pl. Házastárs, Gyerekek). Ők "Sofőr" szerepkört kapnak.
Jármű limit: Alapcsomagban 3 db.
Logika: Ugyanaz a kód fut a háttérben, mint a cégeknél, csak a gombok felirata barátságosabb (pl. "Sofőr hozzáadása" helyett "Családtag meghívása").
2. Validátor és Hirdetésszervező (Kiemelt Szerepkörök)
A közösségből kiemelkedő, megbízható felhasználók.
Feladat:
Helyi szervizek adatainak fizikai ellenőrzése (pl. "Tényleg létezik, ott a tábla").
Szervizek "beszervezése" hirdetőnek.
Jutalom:
Kiemelt státusz (Trust Score növelése).
Jutalék (Kredit formájában): A beszervezett hirdetések után kreditet kap, amit saját prémiumra vagy szolgáltatásokra fordíthat.
📊 V. ÜZLETI MODELL, LEJÁRAT ÉS PROMÓCIÓ (KOMBINÁLT v2.5)
Rugalmas bővítési lehetőségek, szigorú, de fair lejárat-kezelés és közösségi alapú marketing.
1. Előfizetési Szintek és Bővítés
Free (Ingyenes): Max 3 jármű. (Reklámokkal támogatott, "Hirdető" szervizek előre sorolva a keresőben).
Premium / VIP: Magasabb járműlimitek, reklámmentes felület, Excel export, részletes statisztikák.
Kiegészítő Járműdíj (Add-on):
Cél: Ha a felhasználó nem akar teljes csomagot váltani, de a limiten felül +1 autót rögzítene.
Árazás (Magán): +300 Ft (vagy kredit) / hó / jármű.
Árazás (Céges): +500 Ft (2 €) / hó / jármű.
2. Lejárat és Türelmi Idő (Lifecycle Management)
A rendszer 3 fázisban kezeli a lejárt előfizetést vagy a be nem fizetett kiegészítő díjat:
Fázis 1: Türelmi Idő és "Vak Rögzítés" (1-30. nap):
Státusz: "Felfüggesztett / Grace".
Adatkezelés (Write-Only): A felhasználó továbbra is be tudja írni a tankolást/szervizt (hogy ne legyen lyuk a szervizkönyvben), DE:
Nem látja a statisztikákat és diagramokat.
Nem látja a költségösszesítőt.
Nem látja a részletes szerviztörténetet (csak rögzíteni tud).
Minősítés: A "Trust Score" lassú csökkenésnek indul (mivel a rendszer nem futtat prémium anomália-ellenőrzéseket).
Fázis 2: Leminősítés (31. naptól):
Státusz: "Downgraded to Free".
Korlátozás: A rendszer visszaállítja a fiókot Free szintre (Max 3 jármű).
Szelekció: A felhasználónak ki kell választania, melyik 3 jármű marad aktív. A többi (4.+) jármű teljesen zárolásra kerül (már rögzíteni sem lehet hozzá adatot).
Fázis 3: Visszamenőleges Aktiválás (Max 60. napig):
Retroaktív fizetés: Ha a felhasználó újra fizet (és kifizeti a kimaradt időszakot is), a "Vak időszakban" rögzített adatok láthatóvá válnak, a statisztikák helyreállnak, és a Trust Score normalizálódik.
3. Promóció, Referral és Hirdetésszervezés
A rendszer "Win-Win" alapon ösztönzi a terjedést.
Szerviz Meghívása (B2B Referral):
Logika: A User bemutatja az Appot egy szerviznek.
Jutalom: Ha a szerviz regisztrál (a User kódjával), a User Kreditet kap, amit prémiumra vagy szolgáltatásra válthat.
Ügyfélkedvezmény (B2C Benefit):
Logika: A User az Appra hivatkozva érkezik a szervizbe ("Jöttem a Service Finderből").
Jutalom: A Szerviz X% kedvezményt biztosít (munkadíjból vagy alkatrészből).
Előny: A szerviznek ez "sikerdíjas marketing" (csak akkor ad kedvezményt, ha ott a vevő), az App pedig ingyen reklámot kap.
Helyi Szervezők (Validátorok):
Kiemelt felhasználók, akik "Mini Ügynökként" működnek: ellenőrzik a helyi adatokat és segítik a szervizek regisztrációját (Kredit/Jutalék alapon).
🏆 VIII. VERSENY ÉS ADATFELTÖLTÉS (ELŐREHOZVA!)
Ez a Launch Engine. A program terjedésének alapja.
1. A Nagy Adatverseny (The Data Race)
Cél: A térkép "kifehérítése" (szervizekkel való feltöltése) minél rövidebb idő alatt.
Pontozás:
Új szerviz + Fotó + Nyitvatartás: +10 pont.
Márkapspecializáció rögzítése (validáltan): +5 pont.
Hirdető beszervezése (Partnerkód megadásával): +50 pont.
Büntetés (-10 pont): Fals adat beküldése -> Kizárás a versenyből.
2. Lokális Helytartók (Validátorok)
A rendszer automatikusan felajánlja a régió legaktívabb adatfeltöltőjének a "Helyi Validátor" címet.
Ők hagyhatják jóvá a vitatott módosításokat a környékükön.
🗓️ IX. FEJLESZTÉSI ÜTEMTERV (ÚJ ROADMAP)
A Gamifikáció az MVP utáni azonnali prioritás lett.
Fázis 1 (MVP - Alapok):
Core modul (Jármű, Költség, Szervizkereső).
Mini-Cég / Családi logika implementálása.
Költségek és Lejárat (Write-only mód) logikája.
Fázis 2 (Növekedés - A Vírus):
Gamifikáció és Verseny modul (Adatfeltöltés, Ranglisták).
Validátor rendszer és Referral (Meghívás) követés.
OCR (hogy a feltöltés könnyebb legyen).
Fázis 3 (Monetizáció):
Hirdetési rendszer (Kredit/Fix).
Kiegészítő járműdíjak (Add-on fizetés).
Ország sablonok.
Fázis 4 (Expurzió):
Telematika, TMS, Rendezvények.
📂 SERVICE FINDER ECOSYSTEM MASTER SPECIFICATION
Verzió: 2.3 (Véglegesített Logika: Telematika, TMS, Hibrid Hirdetés) Dátum: 2026.01.24. Státusz: MVP Fejlesztés alatt / Architektúra fixálva
🏗️ 1. ARCHITEKTURÁLIS ALAPELVEK
A rendszer nem egyetlen app, hanem egy moduláris ökoszisztéma, amely egy közös adatbázison ("Single Source of Truth") osztozik.
Core App (Service Finder): Nyilvántartás, Keresés, Költségek.
TMS Modul (Logisztika): Útvonaltervezés, Fuvarszervezés (külön nézet/gomb).
Telematika Modul (Biztosítás): Háttérben futó adatgyűjtés.
Adatbázis: PostgreSQL (Shared DB) - A sofőrök, autók és cégek közösek minden modulban.
👤 2. FELHASZNÁLÓK ÉS JOGOSULTSÁGOK (RBAC)
Dinamikus, cégenként konfigurálható szerepkörök.
Szerepkörök:
Superadmin: Rendszerkarbantartás.
Cégtulajdonos: Jogkezelés, Előfizetés menedzsment.
Flotta Manager: TMS irányítás, Költség kontroll, Riasztások.
Sofőr:
Lakossági: Saját autó menedzselése.
Céges: Hozzárendelt autók vezetése, TMS feladatok látása.
Szerviz Partner: Időpontkezelés, Hirdetés kezelés.
Nemzetközi Árazás (Geo-Pricing):
Automatikus IP alapú detektálás regisztrációkor.
Különböző árszabás (PPP alapú) országonként a kreditekre és előfizetésekre.
🚗 3. JÁRMŰ ÉS KÖLTSÉG MODUL (CORE)
3.1. Jármű Adatmodell
Hierarchia: Kategória -> Márka -> Modell -> Generáció -> Motor.
Felszereltség: Dinamikus JSON (Klíma, Multimédia, Felépítmény).
Gumiabroncs: DOT szám figyelés, Szezonális riasztás.
3.2. Költségnyilvántartás (Részletes)
Üzemeltetés: Üzemanyag, Adalék (AdBlue), Mosás/Kozmetika, Parkolás, Tárolás.
Hatósági: Súlyadó/Cégautóadó, Útdíj (Matrica/HU-GO), Vagyonszerzési illeték, Eredetvizsga, Bírságok.
Pénzügyi: Vételár, Lízing/Bérleti díj, Hitel, Értékcsökkenés.
Biztosítás: KGFB, CASCO, Balesetbiztosítás.
Karbantartás: Tervezett szerviz, Váratlan javítás, Gumiabroncs, Alkatrész.
🛠️ 4. SZERVIZ KERESŐ ÉS SOS (CORE)
4.1. Keresési Logika
Fa-struktúra: Főkategória (Javítás) -> Alkategória (Mechanika) -> Címke (BMW).
Ranking: Relevancia > Távolság > Hirdetői Státusz (Free usereknél) > Minőség.
4.2. Vészhelyzeti Protokoll (SOS)
A felhasználó választása alapján:
A) Biztonságos: Legközelebbi Szerződött/Preferált partner (akár távolabb).
B) Gyors: Fizikailag legközelebbi műhely (akár validálatlan is).
4.3. Értékelés
Többszempontú (Szakmai, Kommunikáció, Ár, Sebesség).
Csak validált látogatás után (GPS/Számla).
Munkafelvétel és Szerelő külön értékelhető (ha a szerviz engedélyezi).
📊 5. ÜZLETI MODELL ÉS HIRDETÉS
5.1. Előfizetések (User oldal)
Free: Max 3 autó, Reklámok, PDF export.
Premium: Max 5 autó, Nincs reklám, Excel export, Tiszta találatok.
VIP (Flotta): 10+ autó, Anomália figyelés, TMS integráció lehetősége.
5.2. Hirdetési Rendszer (Szolgáltató oldal)
Két párhuzamos modell (választható):
Idő alapú (Subscription): Havi fix díjért állandó kiemelt hely/megjelenés.
Kredit alapú (PPC/Performance):
Feltöltött egyenlegből vonódik le minden megjelenés/kattintás után.
Ha elfogy a kredit, a hirdetés leáll (normál listázásra vált).
Statisztika: A hirdető részletes kimutatást kap a konverziókról.
🛣️ 6. LOGISZTIKA ÉS TMS (PRO MODUL)
Külön nézet, de közös adatbázis. Gombnyomással váltható.
Funkciók:
Többpontos útvonaltervezés (Multi-drop).
Útvonal optimalizálás (sorrendezés).
Sofőr app nézet: Feladatlista, Vevő értesítése érkezéskor.
Visszatérés bázisra vagy új pontra.
Kapcsolat: A TMS-ben futott km és költség automatikusan bekerül a Core modul költségnyilvántartásába.
📡 7. TELEMATIKA ÉS BIZTOSÍTÁS (INSURTECH MODUL)
Működés: Opt-in (Önkéntes) alapon.
Adatgyűjtés: GPS, Gyorsulás (G-szenzor), Sebességprofil.
Szinkronizáció: Wi-Fi/Mobilneten keresztül kötegelt feltöltés (nem real-time stream a sávszélesség védelméért, kivéve baleset).
Cél: "Pay-how-you-drive" biztosítási ajánlatok generálása az alkuszi modulban.
Privacy: Ha a user nem engedélyezi, nincs mérés, de nincs kedvezmény sem.
🏆 8. KÖZÖSSÉG ÉS GAMIFIKÁCIÓ
8.1. Verseny és Pontgyűjtés
Cél: Adatbázis töltés (Új szerviz +5 pont, Validálás +1 pont).
Büntetés: -10 pontnál kizárás a szerkesztésből (Read-only).
Szezonok: 3-6 havonta díjazás (Pénz, VIP tagság).
8.2. Rendezvények (MVP)
Funkció: Eseménynaptár + Térkép nézet (Hol van találkozó a közelben?).
Típusok: Márkatalálkozó, Túra, Kiállítás.
Jövő: Social feed, Csoportszervezés (későbbi fázis).
🗓️ 9. FEJLESZTÉSI ÜTEMTERV (ROADMAP)
MVP (Most): Core modul (Jármű, Költség, Szervizkereső), Jogosultságok, MinIO/DB alapok.
Fázis 2 (Adat): Ország sablonok, OCR, Gumiabroncs modul.
Fázis 3 (Üzlet): Hirdetési rendszer (Kredit/Fix), Előfizetések.
Fázis 4 (Expurzió): Telematika modul, TMS nézet, Gamifikáció start.
📘 Service Finder Rendszer Specifikáció 2.2 (MASTER)
Verzió: 2.2 (Nemzetközi Modul, SOS Logika, Szerviz Kereső, Gamifikáció) Státusz: Fejlesztésre kész (Ready for Development)
I. Rendszer Architektúra (Technikai Alapok)
A rendszer célja egy nemzetközi, közösségi alapú jármű- és szerviznyilvántartó platform biztosítása SaaS modellben.
Platform: Docker konténerizált környezet (FastAPI Backend, PostgreSQL DB, React Frontend, MinIO Storage).
Adatbiztonság: Szigorú szeparálás (Tenant/User szinten).
Elérés: Webes felület (PWA - Progresszív Web App), ami mobilon applikációként viselkedik.
II. Felhasználók és Jogosultságok (RBAC)
A jogosultságok dinamikusak, cégenként/flottánként változhatnak.
1. Szerepkörök
Superadmin: Rendszerkarbantartás.
Cégtulajdonos: Jogokat oszthat ki és vonhat vissza (pl. kilépő dolgozó).
Flotta Manager: Látja a riasztásokat, költségeket, visszaéléseket.
Sofőr:
Csak a hozzá rendelt időszakban látja az autót.
Jogosultsága lehet: Csak Tankolás, Szerviz Rögzítés, vagy Teljes Nézet.
Szerviz Partner: Saját adatlapot kezel, időpontot fogad, promóciót állít be.
III. Jármű Nyilvántartás ("A Vas")
Hierarchikus, részletes adatstruktúra a pontos szerviz-ajánláshoz.
1. Jármű Adatmodell
Törzsadatok: Kategória (Személy/Teher/Motor/Egyéb) -> Márka -> Modell -> Generáció -> Motor.
Felszereltség (Dinamikus attribútumok):
Személyautó: Klíma típus, Multimédia, Vonóhorog.
Teherautó: Tachográf, Útdíj-box, Raktérhűtés.
Speciális: Lószállító felépítmény, Lakóautó bútorzat.
Gumiabroncs Modul:
Márka, Típus, Méret, Évszak.
DOT Figyelés: Riasztás 6 évnél öregebb gumi esetén.
2. Nemzetközi Megfelelőség (EU Compliance) ÚJ!
Ország Sablonok (Country Templates): A rendszer előre definiált szabályrendszereket kínál fel (pl. "Magyarország", "Ausztria", "Németország").
Logika: A felhasználó kiválasztja az országot, a rendszer betölti a kötelező elemeket:
Vizsga intervallumok: (Pl. HU: 4-2-2 év).
Kötelező tartozékok: (Pl. Izzókészlet, Mellények száma).
Adózási szabályok: (Cégautóadó, Súlyadó kalkuláció alapjai).
Ideiglenes Engedélyek: Kezelni tudja az "Ideiglenes forgalomba helyezés" vagy "Próba rendszám" speciális lejáratait.
IV. Szerviz Kereső és Szolgáltatások (A "Lelke")
Ez a modul köti össze a hibát a megoldással.
1. Szolgáltatás Fa-struktúra (Taxonómia)
Nem ömlesztett lista, hanem címkézett fa-rendszer a pontos találatért:
Főkategória: (Pl. Járműjavítás, Mentés, Kényelmi átalakítás).
Alkategória: (Pl. Villamosság, Mechanika, Gumiszerviz).
Specializáció (Címkék): (Pl. "Csak BMW", "Csak Klíma", "Lószállító építés").
Szűrés: Ha a jármű "Honda", a rendszer elrejti a "Csak BMW" címkéjű szervizeket, kivéve ha a felhasználó kéri az összeset.
2. Keresési Logika (Matching Algorithm)
A találati lista sorrendjét az alábbi súlyozás határozza meg:
Relevancia: Képes-e megoldani a konkrét hibát? (Pl. Defekt -> Gumis).
Távolság: GPS alapú távolság.
Előfizetés: A Hirdető/Partner szervizek előrébb (Free/Premium usereknél). VIP-nél csak a minőség dönt.
Validáltság: Ellenőrzött szervizek előnyben.
Minősítés: Csillagok és "Trust Score".
3. Vészhelyzeti Protokoll (SOS) ÚJ!
Két opciót kínál fel a rendszer (User Decision):
"A" Opció (Biztonságos): A legközelebbi Szerződött/Preferált partner (lehet, hogy 50 km).
"B" Opció (Gyors): A fizikailag legközelebbi szerviz, akár validálatlan is (lehet, hogy 2 km).
Autómentés: Ha a jármű mozgásképtelen, a rendszer azonnal trélert vagy "Sárga Angyalt" ajánl a javítóműhely mellé.
4. Progresszív Profilozás
A szervizek regisztrációja gyors (Név + Cím + Főtevékenység).
Jutalmazás: Ha kitölti a részleteket (pl. "Vállalok hétvégét is", "Van váróterem"), jobban rangsorolja a rendszer.
Feedback hurok: Ha a felhasználó jelzi, hogy "A szerviz adatlapja szerint van klímatöltés, de a helyszínen elhajtottak", a szerviz büntetőpontot kap.
V. Értékelés és Minőségbiztosítás
1. Többszempontú Értékelés
Nem csak egy csillag, hanem kategóriák (1-5):
Szakmai munka: Megjavult?
Kommunikáció: Felvették a telefont? Kedvesek voltak? (Itt értékeljük a munkafelvételt név nélkül).
Ár/Érték arány: Korrekt volt a számla?
Sebesség: Tartották a határidőt?
2. Validált Értékelés
Csak akkor értékelhet, ha igazolja, hogy ott járt (GPS check-in, Fotó a munkalapról, vagy Számla feltöltés).
Negatív értékelés: Szervizenként/Javításonként max 1 db (Anti-spam).
VI. Gamifikáció és Adatverseny
A közösség építi az adatbázist.
1. Verseny Szezonok (3-6 hónap)
Cél: Minél több minőségi adat feltöltése.
Pontozás:
+5 pont: Új szerviz (validált adatokkal).
+1 pont: Validálás (más által feltöltött adat megerősítése).
-2 pont: Téves adat beküldése.
Kizárás (-10 pont): A felhasználó elveszti a rögzítési jogot (Read-only), csak a saját költségeit írhatja.
2. Jutalmazás
Ranglista alapján: Pénzjutalom (1-3.), VIP előfizetés, Prémium tagság.
VII. Előfizetési Csomagok (Üzleti Modell)
Free: Max 3 jármű, Reklámok, PDF export, Hirdetők előre sorolva.
Premium: Max 5 jármű, Nincs reklám, Excel export, Tiszta találati lista.
VIP (Flotta): 10+ jármű.
Anomália figyelés: Túl sok tankolás? Gyanús szervizszámla?
Smart Alerts: Egyéni időzített értesítések.
Prioritás: A rendszer a legideálisabb (nem a fizetett) szervizt adja.
VIII. Fejlesztési Ütemterv (Roadmap)
Fázis 1 (MVP - A Gerinc):
Adatbázis (User, Vehicle, Service, Ownership, Audit).
Alap jogosultságok (Cég/Sofőr).
Jármű rögzítés (Manuális) + Költség rögzítés.
Szerviz kereső (Alap, távolság alapú).
Fázis 2 (Okosítás):
Sablon alapú Ország modul (HU, DE, AT kezdésnek).
OCR bevezetése a dokumentumokhoz.
Gumiabroncs (DOT) modul.
Fázis 3 (Közösség):
Gamifikáció és Verseny indítása.
Részletes értékelési rendszer.
VIP elemzések (Anomália detektálás).
📘 Service Finder Rendszer Specifikáció 2.1
Verzió: 2.1 (Felszereltség, Előfizetések, Verseny és Launch Stratégia) Státusz: MVP + Üzleti Logika Véglegesítése
I. Jármű Adatmodell & Felszereltség (Deep Dive)
A járművek típusától függően dinamikus felszereltség-listát kezelünk (JSONB formátumban tárolva a rugalmasságért).
1. Kategória-specifikus Extrák
Személyautó:
Klíma: Manuális, Automata, 2+ Zónás, Hőszivattyús (EV-nél kritikus).
Multimédia: CarPlay/Android Auto, Navigáció, Hangrendszer.
Motorkerékpár:
Kényelem: Markolatfűtés, Ülésfűtés, Állítható szélvédő.
Tech: USB töltő, Multimédia kijelző.
Teherautó (Haszongépjármű):
Ellenőrzés: Sofőr figyelő rendszer (DMS), Digitális Tachográf.
Adminisztráció: Útlevél/Okmány író, Beépített útdíj-fizető (OBU).
2. Adatfeltöltési Stratégia (Launch)
Kezdet: Manuális rögzítés, DE "Okos" segítséggel.
Törzsadat Script: Python scripttel előtöltjük a leggyakoribb márkákat/típusokat (kb. a piac 75%-át).
Kivételkezelés: Ha a felhasználó nem találja a típust, felvihet újat ("Egyéb"), de a rendszer fuzzy search (hasonlóság keresés) segítségével figyelmezteti: "Nem erre gondoltál: 'Toyota' a 'Tojota' helyett?"
II. Előfizetési Modellek (Monetizáció)
A rendszer 3 szinten működik.
1. Free (Ingyenes)
Limit: Max 3 jármű.
Reklám: Belépéskor és statisztika letöltéskor.
Keresés: A "Hirdető" (fizetős) szervizek előre sorolódnak (szponzorált találatok).
Export: Csak PDF (nem szerkeszthető).
Szerviz láthatóság: Összesítve látja a költségeket.
2. Prémium (Haladó)
Limit: Max 5 jármű.
Reklám: Nincs direkt reklám.
Keresés: "Tiszta" találati lista (a hirdetők nem tolakodnak előre, valós értékelés dönt).
Export: Excel (.xlsx) a saját elemzésekhez.
3. VIP (Flotta / Pro)
Limit: 10 jármű (felette egyedi ajánlat).
Funkciók:
Intelligens Riasztások: Egyéni intervallumok (pl. "Szólj 60 nappal műszaki előtt").
Anomália Detektálás: Túlhasználat figyelése, átlagtól eltérő fogyasztás vagy gyanúsan magas szervizszámla jelzése a Managernek.
Vizualizáció: Finomított havi diagramok, trendek.
III. Közösség és Gamifikáció (A "Motor")
A cél az adatbázis minőségi feltöltése.
1. Versenyszabályok
Időtartam: 3-6 hónapos "Szezonok".
Díjazás:
1-3. hely: Pénzjutalom.
4-10. hely: VIP előfizetés (1 év).
11-25. hely: Prémium (1 év).
26-50. hely: Prémium (6 hónap).
50-100. hely: Prémium (3 hónap).
2. Pontrendszer és Büntetés
+5 pont: Új szerviz rögzítése (ha validált adatokkal történik).
+1 pont: Validálás (az első 5 megerősítőnek).
0 pont: További validálások (de növeli a szerviz népszerűségét).
-2 pont: Rossz/Hamis adat megadása.
KIZÁRÁS (-10 pontnál): A felhasználó "Read-only" módba kerül a közösségi téren. Nem vihet fel új szervizt, csak a saját költségeit rögzítheti meglévő partnerekhez.
3. Szerviz Értékelés és Státusz
Státuszok: Rögzített -> Ellenőrzött (5 user által) -> Minősített/Hirdető.
*Értékelés (1-5):**
Kötelező elem: Munkalap/Számla fotó (vagy annak hiányának jelzése).
Szabály: Pozitív értékelés minden eseménynél adható. Negatív értékelés szervizenként max 1x (spam védelem).
4. Jármű Trust Score (%)
Nem bináris (Jó/Rossz), hanem százalékos.
Egy kihagyott tankolás alig ront rajta.
Súlyozás: A hivatalos (műszaki vizsga, szerviz) km óra állás fotóval sokkal többet ér, mint egy kézi tankolás bejegyzés.
IV. Implementáció: Céges Modellek (Python Kód)
Ahhoz, hogy a fenti jogosultsági rendszert (Cégvezető vs. Sofőr) kezelni tudjuk, itt van a szükséges adatbázis modell.
Ezt a kódot mentsd el a Code-Serverben: app/models/company.py
📘 Service Finder Rendszer Specifikáció 2.0
Verzió: 2.0 (Bővített Üzleti és Gamifikációs Logika) Fókusz: MVP (Stabil alapok) + Jövőbiztos architektúra
I. Felhasználók és Jogosultsági Rendszer (RBAC)
Itt élesen szétválasztjuk a Rendszerüzemeltetést (IT) és az Üzleti Működést (App).
1. Rendszer Szint (IT & Support)
Superadmin: Hozzáférés az adatbázishoz, szerverhez (DevOps).
Moderátor: Adatok validálása, vitás esetek rendezése, szerviz törzsadatok tisztítása.
User (Technikai): Az alap entitás az adatbázisban.
2. Alkalmazás Szint (Business Logic) Dinamikus Jogosultságok
A jogosultságok nem "beégetettek", hanem Cégenként/Flottánként konfigurálhatók.
Cégtulajdonos:
Létrehozza a Céget/Flottát.
Meghívhat Flotta Managert és Sofőrt.
Joga van bármikor visszavonni a hozzáférést (pl. kilépő dolgozó azonnal elveszti az autók láthatóságát).
Beállíthatja a szabályokat: "Ebben a cégben a sofőr csak tankolást rögzíthet, szervizt nem."
Flotta Manager:
Kezeli az autókat, kiosztja őket sofőröknek.
Látja a lejáratokat, költségeket, riasztásokat.
Sofőr:
Vezethet egy vagy több autót (akár egyszerre több cégtől is).
Csak a hozzá rendelt időszakban fér hozzá az autó adataihoz.
Jogosultság: Lehet csak "Read-only" (látja a forgalmit), vagy "Editor" (rögzít tankolást).
II. Jármű Adatmodell A "Deep Dive" (Mély Adatbázis)
Az MVP-ben a struktúrát hozzuk létre, az adatokat folyamatosan töltjük.
1. Hierarchikus Törzsadatok
Nem flat (sima) szövegként tároljuk, hanem relációs adatbázisban a pontos kereshetőségért:
Kategória: Személyautó, Kisteher, Motor, Teherautó.
Gyártó (Make): BMW, Honda, Toyota.
Modell (Model): X5, CR-V, Yaris.
Generáció/Évjárat: Pl. 2018-2022.
Motor: Üzemanyag (Benzin/Diesel/Hybrid/EV) + Motorkód + Teljesítmény.
Felszereltség (Trim): Ez a legnehezebb (Executive, M-Sport). MVP Megoldás: Kezdetben szöveges mező vagy JSON, később strukturált lista.
2. Gumiabroncs Menedzsment (Tire Module) Kiemelt Fontosságú
Külön tábla (vehicle_tires), mert kritikus biztonsági elem.
Adatok: Márka, Típus, Méret (pl. 205/55 R16), Évszak (Nyári/Téli/4évszak).
DOT Szám (Gyártási idő): Pl. "2223" (2023. 22. hét).
Figyelmeztetések (Logika):
Szezonális: "Itt a november, rakd fel a télit!"
Kor alapú: "A gumi elmúlt 6 éves (DOT alapján), csere javasolt!"
Futás alapú: "Már 40.000 km-t mentél ezzel a szettel."
III. Közösség, Gamifikáció és Adatgyűjtés ("Data Race")
Hogyan vegyük rá az embereket, hogy töltsék fel az adatokat? Jutalmazással.
1. Rögzítési Verseny & Pontrendszer
Adatbeküldés: Ha egy felhasználó beküld egy új szervizt a térképre, vagy feltölti egy ritka autó adatait -> Pontokat kap.
Validálás: Ha egy másik felhasználó megerősíti ("Igen, ez a szerviz tényleg létezik és jó"), azért is pont jár.
Ranglista: "A Hónap Flotta Managere", "A Leggondosabb Tulaj".
2. Jármű "Trust Score" (Bizalmi Index)
Ez az autó értéke eladáskor. A rendszer automatikusan számolja 0-100% között.
Van feltöltve fotó? (+10 pont)
A kilométeróra rögzítések konzisztensek? (+30 pont)
Van OCR-rel igazolt szervizszámla? (+50 pont)
Cél: Egy 90+ pontos autó többet ér a piacon, mert "Service Finder Igazolt".
3. Szervizek Értékelése
Nem csak csillagozás (1-5).
Validált értékelés: Csak akkor értékelhet, ha van ott rögzített, GPS/Időbélyeggel vagy számlával igazolt eseménye. (Így szűrjük a fake értékeléseket).
IV. Audit és Biztonság
1. Naplózás és Csalásszűrés
Adatforrás jelölése: Minden bejegyzésnél tároljuk: source_type.
MANUAL: Kézzel írta be (Alacsony bizalom).
OCR_VALIDATED: Fotóról ismerte fel a rendszer (Magas bizalom).
VERIFIED_PARTNER: Regisztrált szerviz töltötte fel (Legmagasabb bizalom).
Csalás detektálás: Ha a source_type hirtelen változik, vagy a km óra csökken, a rendszer "Flag"-eli (megjelöli) az autót.
V. MVP Stratégia (Hogyan indulunk?)
Hogy ne bonyolítsuk túl az elején, de a kód ne ütközzön később:
Fázis 1 (Indulás - A "Gerinc"):
Infrastruktúra (Kész).
User/Cég/Jogosultság alapok (Create, Invite, Remove).
Jármű alapadatok + Tulajdonlás (Ownership).
Szerviz/Tankolás rögzítés (Kézi + MinIO fotó feltöltés).
Audit Log alapjai.
Fázis 2 (Adatdúsítás):
OCR bevezetése (automatikus kitöltés).
Gumiabroncs modul (DOT szám figyelés).
Értesítések (Email/Popup).
Fázis 3 (Közösség):
Gamifikáció (Pontgyűjtés).
Trust Score számítás.
Szerviz kereső és értékelő modul.
📘 Service Finder Rendszer Specifikáció és Fejlesztési Terv
Verzió: 1.0 (Tervezési fázis) Státusz: Infrastruktúra kész, Üzleti logika implementálás alatt.
I. Infrastruktúra és Technológia (Már kész/beállítva)
Ez a réteg biztosítja a rendszer futását a szervereden (192.168.100.43).
Konténerizáció: Docker alapú környezet, szeparált szolgáltatásokkal.
Backend: Python FastAPI (Aszinkron, gyors, modern).
Adatbázis: PostgreSQL 15 (Külön data sémába szervezve a biztonságért).
Fájltárolás: MinIO (S3 kompatibilis objektumtároló képeknek, doksiknak).
Elérés & Proxy: Nginx Proxy Manager kezeli a domaineket és SSL-t:
dev.profibot.hu -> Backend API
db.profibot.hu -> pgAdmin (Adatbázis menedzsment)
code.profibot.hu -> Code-Server (Fejlesztői környezet)
(Tervben): files.profibot.hu -> MinIO
Frontend Technológia (Döntöttünk): React (vagy Vue.js) SPA (Single Page Application).
Cél: Mobilapp-szerű élmény, nincs oldal újratöltés, kódvédelem (buildelt kód).
II. Adatbázis Modell (A Rendszer Gerince)
A táblák a data sémában helyezkednek el, szigorú relációkkal.
Users (Felhasználók):
Alapadatok (Email, Jelszó Hash, Név).
Jogosultságok: is_superuser (Rendszergazda), is_active.
Okmányok: Jogosítvány, Személyi lejárati dátumok.
Reputation Score: Pontrendszer a megbízhatósághoz.
Vehicles (Járművek):
Törzsadatok: Rendszám, Alvázszám (VIN), Márka, Típus, Évjárat.
Szerviz adatok: initial_odometer (rögzítéskori km), current_odometer (aktuális).
Lejáratok: Műszaki vizsga (mot_expiry), Biztosítás.
VehicleOwnerships (Birtoklási Történet) ÚJ!
Kapcsolótábla a User és Vehicle között.
Mezők: start_date (vétel/rendszerbe kerülés), end_date (eladás).
Funkció: Ez alapján döntjük el, ki láthatja a költségeket.
AuditLogs (A "Fekete Doboz") ÚJ!
Minden módosítás naplózása.
Rögzíti: KI (User), MIT (Target ID), MIKOR, HONNAN (IP).
Változás részletei (JSON): { "old_value": 150000, "new_value": 145000 } -> Csalás detektálása.
III. Üzleti Logika és Működés (A "Szabálykönyv")
1. Jogosultsági Szintek
Admin / Superuser: Teljes hozzáférés, rendszerbeállítások.
Moderátor: Adatok ellenőrzése, javítása.
Szerelő: Nincs dedikált szerepkör (vagy csak korlátozott), a rendszerben adminisztratív funkciója nincs.
Felhasználó (User): Kizárólag az Appon keresztül léphet be. Nem látja az adatbázis struktúrát.
2. Jármű Életút & Adatbevitel ("Modern Megoldás")
Rögzítés: Nem feltétlenül a vétel pillanatában történik.
Kezdő dátum: A rendszerbe kerülés napja rögzítve lesz (start_date), innentől "minősített" a jármű.
OCR (Automatikus Kitöltés):
Felhasználó fotózza a forgalmit/számlát.
Kép feltöltése MinIO-ba.
Backend (Tesseract/Vision) elemzi.
Jóváhagyás: A User látja a felismert adatot, és csak az "OK" gomb után kerül az adatbázisba.
3. Költségek és Láthatóság (Privacy)
Szerviz/Tankolás bejegyzés: Örökre a járműhöz kapcsolódik.
Láthatóság szabály:
Aktuális tulajdonos: Látja a saját költségeit és a jármű technikai előéletét (de az előző tulajdonos költségeinek összegét csak összesítve/anonimizálva láthatja, vagy egyáltalán nem, beállítástól függően).
Előző tulajdonos: Eladás után már csak egy statisztikai összesítőt lát (Mennyit költöttem rá?), nem látja az új tulajdonos tankolásait.
4. Értesítési Rendszer (A "Figyelő")
Automatikus háttérfolyamat (Scheduler) figyeli a dátumokat.
Kinek?
Tulajdonos/Sofőr: Figyelmeztetés lejárat előtt.
Flotta Menedzser: Riasztás, ha jogosulatlan sofőr vezet (lejárt jogsi).
Hogyan?
Popup: Belépéskor a felületen.
Jelzés: Piros (lejárt/kritikus) vagy Sárga (hamarosan lejár) ikon a lista nézetben.
Email: 30 nappal a lejárat (Műszaki, Okmány, Gumicsere szezon) előtt.
5. Naplózás (Logging)
Minden esemény visszakereshető az AuditLogs táblából.
Események: Tankolás, Km óra rögzítés, Adatmodosítás.
Tartalom: Időpont, User ID, Rendszám, Művelet (Create/Update), Régi érték vs Új érték.
Cél: Vitás esetek rendezése és a kilométeróra-manipuláció kiszűrése.
IV. Biztonság és Kódvédelem
Frontend: React alapú "buildelt" kód. A forráskód nem olvasható a böngészőben (minifikálás). Az üzleti logika a szerveren marad.
Backend: Docker konténerbe zárva, környezeti változók (.env) használata jelszavakhoz.
Adatvédelem: Az API csak hitelesített (Token alapú) kéréseket szolgál ki.