Files
service-finder/docs/masterbook_2.0.1/deep_analysis_v201.md
2026-03-30 06:32:22 +00:00

4.1 KiB

Masterbook 2.0.1: Backend - Frontend UI Szakadék Elemzés

Dátum: 2026. március 29. Készítette: Enterprise Solutions Architect Referencia: Issue #172 Mélyelemzés

1. Vezetői Összefoglaló (A Brutális Valóság)

A mai nap folyamán a Backend rendszermag (SQLAlchemy + Database + API) sikeresen megkapta a Masterbook 2.0.1 legfejlettebb vállalati funkcióit:

  1. data_status oszlop a vehicle.assets táblában (DRAFT, ACTIVE, stb. státuszokhoz).
  2. vehicle_transfer_requests tábla a tulajdonosváltási (Owner transfer) forgatókönyvekhez (rendszám igénylés/átvétel/elutasítás).
  3. system_data_completion_weights tábla és dinamikus completion_percentage a profil kitöltöttség mérésére (Gamification és Trust score alapja).

A Frontend azonban jelenleg "vak" és teljesen leválasztott ezekről a mély, vállalati szintű (Enterprise) funkciókról. A Vue.js komponensek, mint a Dashboard.vue, VehicleCard.vue, VehicleShowcase.vue vagy AddVehicle.vue vagy hardkódolt értékekkel (vagy egyszerű fallbacks-ekkel) dolgoznak, vagy egyáltalán nem is jelenítik meg a Backend által szolgáltatott adatokat. Ráadásul az alapvető navigációt biztosító profilt váltó rendszerek (Profile/Organization Switcher) 500-as Internal Server Errort dobnak bizonyos esetekben, ami blokkolja a Garage funkciók rendes tesztelését.

2. Részletes Elemzés (Mélyfúrás a kódban)

2.1. A Dinamikus Profil Kitöltöttség (Completion Percentage) és Data Status Hiánya

A Backend oldalon: A rendszer a system_data_completion_weights alapján súlyozza a megadott adatokat, és API válaszban küldené a dinamikusan kalkulált completion_percentage értéket és az adat minőségét/státuszát (data_status). A Frontend oldalon:

  • A frontend/src/components/garage/VehicleCard.vue fájlban jelenleg egy hardkódolt vagy hiányos fall-back szerepel:
    <div class="text-xs text-gray-600 mb-1">Profile: {{ vehicle.profile_completion_percentage || 0 }}% Complete</div>
    <div class="w-full bg-gray-200 rounded-full h-2">
      <div class="bg-yellow-500 h-2 rounded-full" :style="{ width: (vehicle.profile_completion_percentage || 0) + '%' }"></div>
    </div>
    
  • A vehicle.status ugyan ki van vezetve (pl. 'draft'), de az új data_status szintű bontás (enum: DRAFT, DISCOVERED, ENRICHED, ACTIVE, ARCHIVED stb.) vizualizálása nem teljes körű vagy nincs a helyes backend mezőre drótozva.

2.2. A Jármű Átruházás (Vehicle Transfer Requests) teljes hiánya a UI-on

A Backend oldalon: Teljes életciklus kezelés (Scenario A, B, C) készült a rendszám alapján történő igénylésre, konfliktuskezelésre (ha már valakié az autó), és tulajdonosváltás lebonyolítására. A Frontend oldalon:

  • A frontend/src/views/AddVehicle.vue csak egy egyszerű form (model_name, plate, vin, current_odo), amely a POST /assets/vehicles endpointot hívja.
  • Nincs UI ág arra az esetre, ha a API 409 Conflict-ot adna vissza (már létezik a jármű).
  • Nincs "Transfer Request" nézet, ahol a felhasználó láthatná a bejövő és kimenő jármű igényléseit, és ahol jóváhagyhatná/elutasíthatná azokat.

2.3. A Blokkoló Hiba: 500-as hiba a Profile/Organization Switcher-ben

Ahhoz, hogy a B2B és B2C (Private Garage vs. Corporate Fleet) nézeteket és járműveket érdemben tesztelni lehessen, a fiókváltás kritikus. Jelenleg a Profile Select / Org Switcher backend/frontend integrációja bizonyos API hívásoknál 500-as Internal Server Errorra fut, ami lehetetlenné teszi a különböző szerepkörök (Owner vs. Member, Private vs. Corporate) tiszta elkülönítését és tesztelését a Garage nézetben.

3. Következtetés

Jelenleg egy "Ferrari motoros Trabantot" építettünk. A Backend enterprise szinten kezeli az állapottérgépet (State Machine), a minőségi pontozást és az eszköztulajdonosi konfliktusokat, míg a Frontend egy v1-es, "MVP" (Minimum Viable Product) szintű UI-t használ. Ezt a szakadékot azonnal, három célzott Issue (Gitea jegy) formájában kell áthidalnunk.