Frontend: Gamification Dashboard oldal (/gamification/index.vue) #330

Closed
opened 2026-06-29 16:06:50 +02:00 by kincses · 3 comments
Owner

Mérföldkő: Epic 8 Gamification 2.0, Verseny és Önvéde
Cél: Gamification HQ Dashboard létrehozása áttekintő kártyákkal és grafikonokkal

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): #329 (Frontend menüpont + routing)
  • Kimenet (Mik támaszkodnak rá): Nincs

📝 Elemzés

A frontend_admin/pages/gamification/index.vue oldal létrehozása, amely a következő elemeket tartalmazza:

  1. Áttekintő kártyák: Összes felhasználó (UserStats count), Aktív szezon, Függő contribution-ök, Ma szerzett XP
  2. Grafikonok (Chart.js): Napi XP trend (utolsó 30 nap), Szint eloszlás hisztogram
  3. Táblák: Legutóbbi PointsLedger bejegyzések (utolsó 10), Top 5 leaderboard
  4. API hívások: GET /admin/gamification/user-stats (összesített), GET /admin/gamification/seasons (aktív), GET /admin/gamification/points-ledger (limit 10)
  5. loading/error/empty state kezelése
**Mérföldkő:** Epic 8 Gamification 2.0, Verseny és Önvéde **Cél:** Gamification HQ Dashboard létrehozása áttekintő kártyákkal és grafikonokkal ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** #329 (Frontend menüpont + routing) - **Kimenet (Mik támaszkodnak rá):** Nincs ### 📝 Elemzés A frontend_admin/pages/gamification/index.vue oldal létrehozása, amely a következő elemeket tartalmazza: 1. Áttekintő kártyák: Összes felhasználó (UserStats count), Aktív szezon, Függő contribution-ök, Ma szerzett XP 2. Grafikonok (Chart.js): Napi XP trend (utolsó 30 nap), Szint eloszlás hisztogram 3. Táblák: Legutóbbi PointsLedger bejegyzések (utolsó 10), Top 5 leaderboard 4. API hívások: GET /admin/gamification/user-stats (összesített), GET /admin/gamification/seasons (aktív), GET /admin/gamification/points-ledger (limit 10) 5. loading/error/empty state kezelése
kincses added this to the Epic 8 Gamification 2.0, Verseny és Önvéde milestone 2026-06-29 16:06:50 +02:00
kincses added the Status: To DoScope: FrontendType: Feature labels 2026-06-29 16:06:50 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-29 22:04:24 +02:00
kincses started working 2026-06-29 22:04:24 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-29 22:04:24

▶️ **Munka megkezdve:** 2026-06-29 22:04:24
kincses added Status: Done and removed Status: In Progress labels 2026-06-29 22:30:12 +02:00
kincses worked for 25 minutes 2026-06-29 22:30:12 +02:00
Author
Owner

Munka befejezve: 2026-06-29 22:30:11

Technikai Összefoglaló:
Gamification Dashboard oldal elkészítve. Backend: új GET /admin/gamification/dashboard-summary végpont (összes felhasználó, aktív szezon, függő hozzájárulások, mai XP). Points-ledger user_name mezővel bővítve (User JOIN). Frontend: dashboard API hívások átállítva a dedikált végpontra, leaderboard adatmapping javítva. Sync Engine: 1284 elem szinkronban.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-29 22:30:11 **Technikai Összefoglaló:** Gamification Dashboard oldal elkészítve. Backend: új GET /admin/gamification/dashboard-summary végpont (összes felhasználó, aktív szezon, függő hozzájárulások, mai XP). Points-ledger user_name mezővel bővítve (User JOIN). Frontend: dashboard API hívások átállítva a dedikált végpontra, leaderboard adatmapping javítva. Sync Engine: 1284 elem szinkronban. ⏱️ *Az idő rögzítve.*
Author
Owner

Gitea #330 - Gamification Dashboard (Frontend Admin) - Kész

Elvégzett módosítások:

Backend - backend/app/api/v1/endpoints/admin_gamification.py:

  • Új végpont: GET /admin/gamification/dashboard-summary — összesíti a dashboard statokat:
    • total — gamification statisztikával rendelkező felhasználók száma
    • active_season — aktív szezon neve (vagy null)
    • pending_contributions — függőben lévő hozzájárulások száma
    • today_xp — ma szerzett XP összesen
  • Javítás: list_points_ledger végpont (GET /admin/gamification/points-ledger) — user_name mező hozzáadva a válaszhoz (User.email JOIN-nel)
  • Deprecation fix: datetime.utcnow()datetime.now(timezone.utc)

Frontend - frontend_admin/pages/gamification/index.vue:

  • API hívás átirányítva a dedikált /api/v1/admin/gamification/dashboard-summary végpontra
  • Leaderboard adatok mapping-je kiegészítve: username/current_level/total_xp mezők támogatása

Verifikáció:

  • Sync Engine: 1284 elem szinkronban, 0 hiba
  • SQL lekérdezések: Minden query helyesen fut
  • Python szintaxis: Validálva
  • Gitea #330: Lezárva
## ✅ Gitea #330 - Gamification Dashboard (Frontend Admin) - Kész ### Elvégzett módosítások: **Backend** - [`backend/app/api/v1/endpoints/admin_gamification.py`](backend/app/api/v1/endpoints/admin_gamification.py): - **Új végpont:** `GET /admin/gamification/dashboard-summary` — összesíti a dashboard statokat: - `total` — gamification statisztikával rendelkező felhasználók száma - `active_season` — aktív szezon neve (vagy `null`) - `pending_contributions` — függőben lévő hozzájárulások száma - `today_xp` — ma szerzett XP összesen - **Javítás:** `list_points_ledger` végpont (`GET /admin/gamification/points-ledger`) — `user_name` mező hozzáadva a válaszhoz (`User.email` JOIN-nel) - **Deprecation fix:** `datetime.utcnow()` → `datetime.now(timezone.utc)` **Frontend** - [`frontend_admin/pages/gamification/index.vue`](frontend_admin/pages/gamification/index.vue:194): - API hívás átirányítva a dedikált `/api/v1/admin/gamification/dashboard-summary` végpontra - Leaderboard adatok mapping-je kiegészítve: `username`/`current_level`/`total_xp` mezők támogatása **Verifikáció:** - Sync Engine: ✅ 1284 elem szinkronban, 0 hiba - SQL lekérdezések: ✅ Minden query helyesen fut - Python szintaxis: ✅ Validálva - Gitea #330: ✅ Lezárva
Sign in to join this conversation.