Aplikacja została stworzona z myślą o branży lotniczej, aby ułatwić i zautomatyzować proces weryfikacji wiedzy oraz nauki kierunków lotów. Głównym zadaniem aplikacji jest generowanie testów do druku z destynacji lotniczych. Dodatkowo projekt służy jako kompleksowe narzędzie dla szkoleniowców zajmujących się wdrażaniem nowych pracowników.
- Dla użytkowników / nowych pracowników:
- Generowanie testów: Tworzenie gotowych do wydruku, losowych arkuszy sprawdzających znajomość destynacji lotniczych.
- Dla szkoleniowców (Zabezpieczony Panel):
- Uwierzytelnianie: Bezpieczne logowanie do panelu administracyjnego za pośrednictwem Firebase.
- Zarządzanie bazą danych: Możliwość szybkiego dodawania nowych i usuwania nieaktualnych destynacji lotniczych.
- Materiały szkoleniowe (Print Tables): Generowanie przejrzystych, sformatowanych pod wydruk tabel z listą destynacji, które ułatwiają naukę nowym pracownikom przed przystąpieniem do testów.
Projekt został zbudowany przy użyciu nowoczesnych narzędzi ułatwiających skalowanie i szybki rozwój:
- Język: TypeScript (pełne typowanie modelu danych i komponentów).
- Frontend: React w połączeniu z Vite dla maksymalnej wydajności deweloperskiej.
- Backend & Auth: Firebase (Baza danych w czasie rzeczywistym/Firestore oraz zarządzanie użytkownikami).
- Routing: React Router DOM (Zabezpieczanie ścieżek przez Protected Routes).
- Styling: CSS3
Zoptymalizowana struktura plików (src/) wspierająca przejrzystość:
src/
├── assets/ # Zasoby statyczne
├── components/ # Mniejsze, reużywalne kawałki UI (np. ProtectedRoute.tsx)
├── contexts/ # Logika stanów (np. AuthContext.tsx)
├── pages/ # Główne widoki aplikacji
│ ├── AdminPanel.tsx # Zarządzanie destynacjami
│ ├── Generator.tsx # Kreator testów do druku
│ ├── Login.tsx # Ekran logowania szkoleniowców
│ └── PrintTables.tsx # Generowanie tabel do nauki
├── services/ # Usługi zewnętrzne (firebase.ts)
├── types.ts # Wspólne typy domenowe (Destination, Airport, Zone)
├── App.tsx # Centrum zarządzania (routing i wrappery)
└── main.tsx # Główny punkt wejścia