Oskar Karpiński
Wróć do projektów

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.

01

Reverse engineering jako integracja

Odkrycie i odtworzenie działania oficjalnych API pozwoliło pobierać oceny, plan, wiadomości i frekwencję bez publicznej dokumentacji.

REST APIReverse engineeringAutoryzacja
02

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.

Model danychUnifikacjaUX
03

Nowoczesny stack Android

Jetpack Compose i Material 3 pozwoliły zbudować szybki, spójny i natywny interfejs mobilny.

Jetpack ComposeMaterial 3Kotlin

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.