Strona głównaProjektyVulka
Aplikacja Android · reverse engineering
Vulka — aplikacja e-dziennika na Androida dla Librus i Vulcan
Zbudowałem natywną aplikację Android, która w jednej nowoczesnej odsłonie łączyła dwa najpopularniejsze e-dzienniki — Librus Synergia i Vulcan. Wykonałem reverse engineering oficjalnych API, aby pobierać oceny, plan lekcji, wiadomości, frekwencję i ogłoszenia, i podałem je w spójnym interfejsie Material 3 z Jetpack Compose.
- Stack
- Kotlin · Jetpack Compose · Material 3 · Reverse engineering · REST API · Room
- Status projektu
- Vulka jest prezentowana jako zarchiwizowany projekt referencyjny. Aplikacja dokumentuje integrację z API Librus i Vulcan oraz nowoczesny interfejs mobilny.
01
Problem
Uczniowie i rodzice korzystają z dwóch różnych systemów e-dziennika — Librus Synergia i Vulcan — każdy z własnym interfejsem webowym i mobilnym. Brakuje jednej szybkiej, lekkiej aplikacji, która działałaby równie dobrze dla obu.
Żaden z systemów nie udostępniał publicznego API. Jedyną drogą była analiza ruchu oficjalnych aplikacji i odtworzenie działania prywatnych endpointów.
02
Rozwiązanie
Zbudowałem natywną aplikację Android w Kotlinie, która po reverse engineeringu oficjalnych API logowała się do obu systemów i pobierała oceny, frekwencję, plan lekcji, wiadomości oraz ogłoszenia.
Cały interfejs oparłem o Jetpack Compose i Material 3 — z szybkim przełączaniem między dziennikami, lokalnym cache i spójną nawigacją niezależnie od źródła danych.
03
Integracja z API
Przeanalizowałem ruch sieciowy oficjalnych aplikacji Librus i Vulcan, odtworzyłem proces logowania, autoryzacji i strukturę endpointów oraz zaimplementowałem klientów HTTP obsługujących oba systemy.
Każdy system miał inny model danych i sposób paginacji, więc wprowadziłem warstwę unifikacji mapującą oceny, przedmioty i plan na wspólne modele domenowe.
Aplikacja Android
Klient webowy
REST API
Serwer LibrePass
Zaszyfrowane dane
04
Aplikacja mobilna
Interfejs zbudowałem w Jetpack Compose z Material 3 — listy ocen, plan lekcji, widok wiadomości i szczegóły frekwencji działają w tym samym języku wizualnym.
Dane są cache'owane lokalnie, więc aplikacja działa szybko nawet przy słabym połączeniu, a odświeżanie odbywa się w tle.
05
Wyzwania
Brak dokumentacji oznaczał, że każda aktualizacja po stronie Librus lub Vulcan mogła zepsuć integrację — wymagało to odpornego parsowania i szybkich poprawek.
Najtrudniejsze było utrzymanie jednej aplikacji, która zachowuje się identycznie dla dwóch zupełnie różnych backendów, nie gubiąc niuansów każdego systemu.
Czego nauczył mnie projekt
Najważniejsze wnioski z Vulki
Vulka wymagała połączenia reverse engineeringu, pracy z niestabilnymi API i budowy spójnego produktu mobilnego.
Reverse engineering jako integracja
Odkrycie i odtworzenie działania oficjalnych API pozwoliło pobierać oceny, plan, wiadomości i frekwencję bez publicznej dokumentacji.
Jeden interfejs dla dwóch systemów
Dwa różne e-dzienniki wymagały ujednolicenia modeli danych, aby użytkownik widział te same oceny i plan w tej samej aplikacji.
Nowoczesny stack Android
Jetpack Compose i Material 3 pozwoliły zbudować szybki, spójny i natywny interfejs mobilny.
Projekt dla klientki
Zobacz działającą platformę
Vulka jest komercyjnym projektem rozwijanym dla klientki. Kod źródłowy i szczegóły infrastruktury nie są publiczne.
