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:
data_statusoszlop avehicle.assetstáblában (DRAFT, ACTIVE, stb. státuszokhoz).vehicle_transfer_requeststábla a tulajdonosváltási (Owner transfer) forgatókönyvekhez (rendszám igénylés/átvétel/elutasítás).system_data_completion_weightstábla és dinamikuscompletion_percentagea 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.vuefá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.statusugyan ki van vezetve (pl.'draft'), de az újdata_statusszintű 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.vuecsak egy egyszerű form (model_name,plate,vin,current_odo), amely aPOST /assets/vehiclesendpointot 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.