Projekty własne & Open Source
Zajęcia UZ
Wieloplatformowy plan zajęć dla studentów UZ
Zajęcia UZ to prosta aplikacja ułatwiająca przeglądanie planu zajęć studentom Uniwersytetu Zielonogórskiego. Po wybraniu kierunku i grupy prezentuje oficjalne zajęcia w widoku dnia, tygodnia i semestru, korzystając ze wspólnego interfejsu dla strony internetowej, PWA i aplikacji Android oraz przygotowanego projektu iOS.
Szczegóły realizacji
- Mój udział
- Projekt i realizacja aplikacji Vue oraz API NestJS pobierającego oficjalny plan UZ: widoki dnia, tygodnia i semestru, PWA, lokalna kopia planu, integracja Capacitor oraz narzędzia budowania Androida i iOS.
- Status projektu
- Autorska aplikacja z wersją WWW, instalacją PWA i zbudowanym APK Androida. Projekt i narzędzia kompilacji iOS są przygotowane; natywne wydanie na iPhone pozostaje planem na przyszłość.
Zajęcia UZ powstały jako wygodne narzędzie do codziennego sprawdzania planu zajęć na Uniwersytecie Zielonogórskim. Korzystanie z aplikacji nie wymaga konta - wystarczy wyszukać kierunek i wybrać grupę, a zapisany lokalnie profil pozwala wracać bezpośrednio do swojego planu. Widoki dnia, tygodnia i całego semestru pokazują terminy, przedmioty, prowadzących oraz miejsca zajęć. Interfejs zaprojektowano z myślą o telefonach, z obsługą języka polskiego i angielskiego, motywem jasnym, ciemnym i systemowym oraz własną paletą kolorów form zajęć.
Wspólny frontend oparto na Vue 3, TypeScript, Pinia i Tailwind CSS v4. Osobne REST API w NestJS pobiera katalog kierunków, grupy i szczegółowe plany z oficjalnych stron UZ, parsuje HTML za pomocą parse5 i przekazuje interfejsowi ujednolicone dane JSON. Backend przechowuje opublikowany semestr w pamięci podręcznej, a aplikacja zapisuje jego ostatnią poprawnie pobraną kopię na urządzeniu. Przy braku sieci lub awarii API można nadal przeglądać zapisany plan, z informacją o aktualności danych. Wersja WWW wykorzystuje Vite SSG, a instalowalna PWA z vite-plugin-pwa zapewnia uruchamianie interfejsu offline po pierwszym wczytaniu i aktualizacje potwierdzane przez użytkownika.
Capacitor 8 pozwala dołączyć ten sam frontend do aplikacji Android i przygotowanego projektu iOS. Repozytorium zawiera własny wieloetapowy obraz kontenerowy do budowania Androida przez Docker lub Podman: Node.js 24, JDK 21, Android SDK i Gradle są dostarczane przez kontener, bez konieczności instalowania Android Studio na komputerze. Skrypty npm budują APK w wariancie debug lub podpisanym release, synchronizują frontend z Capacitor i weryfikują podpis gotowej paczki. Dla iOS przygotowano skrypt uruchamiający xcodebuild, obsługę Swift Package Manager oraz ręcznie uruchamiany workflow GitHub Actions na macOS do budowania aplikacji dla symulatora lub podpisanej paczki IPA, z opcjonalnym wysłaniem do TestFlight. Narzędzia iOS wymagają weryfikacji w środowisku Apple; natywna wersja na iPhone pozostaje planem na przyszłość.
Wykorzystane technologie
- Vue 3
- NestJS
- PWA / Service Worker
- Capacitor
- Android SDK
- Xcode