Interfejs graficzny (frontend)
Przegląd
Interfejs użytkownika to aplikacja Vue 3, która zapewnia interfejs pulpitu nawigacyjnego do tworzenia dynamicznych wizualizacji danych. Najważniejsze funkcje obejmują:
- kreator zapytań do tworzenia niestandardowych zapytań dotyczących wykresów
- dynamiczne renderowanie wykresów przy użyciu Chart.js
- interfejs nawigacyjny oparty na zakładkach
- wyświetlanie tabel danych z funkcją sortowania i eksportowania
- ciemny motyw interfejsu użytkownika z responsywnym szablonem
Podstawowe komponenty
1. App.vue
- Komponent główny zawierający globalne style CSS
- Definiuje ciemny motyw przy użyciu zmiennych CSS
- Zapewnia spójną stylistykę dla:
- Typografii
- Komponentów układu
- Elementów formularza
- Przycisków
- Kart
- Tabel
- Okien modalnych
- Implementuje breakpointy responsywnego szablonu
2. MainComponent.vue
- Główny komponent układu
- Dzieli widok na dwa panele:
- Panel wykresów: wyświetla wizualizacje i tabele danych
- Panel kreatora: zawiera interfejs z zakładkami dla narzędzi
- Zarządza przepływem danych między kreatorem zapytań a komponentami wizualizacji
3. TabsComponent.vue
- System nawigacji zakładkami
- Funkcje:
- Przyciski nagłówków zakładek
- Dynamiczne renderowanie komponentów na podstawie wybranej zakładki
- Płynne przejścia
4. QueryBuilder.vue
- Centralny komponent do tworzenia zapytań danych
- Sekcje obejmują:
- Konfiguracja osi X
- Zbiory danych osi Y (wiele)
- Filtry
- Filtry zagregowane
- Opcje sortowania
- Wybór typu wykresu
- Ustawienia ograniczeń
- System walidacji formularzy
- Obsługa wysyłania żądań API
5. DynamicChart.vue
- Komponent renderowania wykresów przy użyciu Chart.js
- Funkcje:
- Dynamiczna aktualizacja wykresów po zmianie właściwości
- Responsywny element canvas
- Czyszczenie instancji wykresów po odmontowaniu
- Obsługa wielu typów wykresów
- Akceptuje:
chartPayload
: Dane i konfiguracja wykresuchartNames
: Etykiety i tytuły osi
6. TableBuilder.vue
- Komponent wyświetlania tabeli danych
- Funkcjonalność:
- Sortowalne kolumny
- Eksport do formatu JSON/CSV
- Responsywny projekt tabeli
- Dynamiczne ładowanie danych
- Właściwości:
table
: Dane nagłówka i wierszafullPayload
: Oryginalne dane żądania
7. XAxis.vue
- Dedykowany komponent do konfiguracji osi X
- Wykorzystuje DbSelect do wyboru tabeli/pola
- Trzyczęściowa konfiguracja:
- Wybór tabeli
- Wybór pola
- Nazewnictwo aliasów pól
8. YAxisDatasetItem.vue
- Komponent wielokrotnego użytku dla zestawów danych osi Y
- Opcje konfiguracji:
- Wybór tabeli
- Wybór pola
- Metoda agregacji
- Alias pola
- Etykieta wyświetlania
9. DatabaseInserts.vue
- Komponent interfejsu wyszukiwania
- Funkcje:
- Ujednolicone pole wyszukiwania
- Działania specyficzne dla punktu końcowego
- Wyszukiwanie zbiorcze we wszystkich punktach końcowych
- Wyświetlanie wyników z obsługą błędów
- Stany ładowania
- Integruje się z:
- Google Scholar
- Scopus API
- Scopus Scraper
Przepływ danych
- Użytkownik tworzy zapytanie w
QueryBuilder
- Zweryfikowana zawartość przesyłana do API
- Dane odpowiedzi przekazywane do:
DynamicChart
w celu wizualizacjiTableBuilder
w celu wyświetlenia w formie tabeli
- Użytkownik może eksportować dane za pomocą
TableBuilder
System motywów
- Zmienne CSS kontrolują wszystkie aspekty stylizacji
- Ciemny motyw z 3 poziomami tła
- Spójna paleta kolorów dla:
- Kolorów podstawowych/drugorzędnych/akcentujących
- Hierarchii tekstu
- Stanów obramowania
- Głębokości cienia
- Zmienne odstępów i promieni zapewniają spójność interfejsu użytkownika
Responsywny projekt
- Podejście „mobile first”
- Punkty przełamania:
- 768 pikseli: dostosowuje układ i rozmiary czcionek
- 480 pikseli: optymalizuje wypełnienie kart i odstępy modalne
- Elastyczne komponenty:
- Kolumny układają się w stos na urządzeniach mobilnych
- Zmniejszenie rozmiaru czcionki w tabeli
Kluczowe zależności
- Vue 3 (Composition API)
- Chart.js + vue-chartjs
- Narzędzia VueUse
- Niestandardowy komponent DbSelect (współdzielony)
- Fetch API do komunikacji z zapleczem
Zarządzanie stanem
- Reaktywność na poziomie komponentów przy użyciu Vue ref/reactive
- Przekazywanie danych między komponentami oparte na właściwościach
- Obserwatorzy aktualizacji pól zależnych
- Walidacja formularzy z wyświetlaniem błędów
Interakcja API
- Wszystkie punkty końcowe kierują do
http://127.0.0.1:5000
- Główne punkty końcowe:
/dynamic-chart/data
(POST) - Dane wykresu/dynamic-chart/export/{format}
(POST) - Eksport danych/filter-options/*
- Dynamiczne opcje filtrowania- Punkty końcowe wyszukiwania Scholar/Scopus
Konwencje interfejsu użytkownika
- Spójne sekcje oparte na kartach
- Jednolite odstępy w formularzach (--space-lg gaps)
- Standaryzowane style/rozmiary przycisków
- Responsywne nagłówki tabel
- Ograniczona szerokość kontenerów (maks. 1200 pikseli)