sirius.international
Interaktywna platforma mapowa z globusem 3D, integracją zewnętrznych danych i aplikacjami na iOS oraz Androida.
Od pomysłu do platformy
Sirius powstał jako miejsce do przeglądania rozproszonych źródeł informacji w kontekście geograficznym. Globus i warstwy mapowe łączą m.in. lotnictwo, satelity, kamery, pogodę oraz zdarzenia naturalne. Projekt rozwija wspólny interfejs mapowy, katalogi danych i integracje API zamiast osobnego widoku dla każdego źródła.
Architektura aplikacji
Frontend wykorzystuje MapLibre GL JS i WebGL do wyświetlania mapy oraz globusu. Moduły JavaScript obsługują warstwy, filtry, popupy i wybór źródeł. Biblioteki HLS i obliczeń satelitarnych uzupełniają odtwarzanie dostępnych strumieni oraz prezentację orbit. Część katalogów jest dostarczana jako pliki statyczne, a dane zmienne pobiera warstwa API.
Backend i dane
API w Pythonie agreguje wybrane źródła, buforuje odpowiedzi i oddziela konfigurację dostawców od kodu uruchamianego w przeglądarce. nginx udostępnia frontend oraz pośredniczy do procesu API działającego pod kontrolą systemd. Dostępność i aktualność warstw zależą od źródła; aplikacja rozróżnia dane bieżące, zapisane zestawy i błędy pobierania.
OCI i Terraform
Zaplecze działa na Oracle Linux w OCI Ampere. Wspólny stos Terraform opisuje sieć, routing, reguły dostępu, instancję i publiczny adres IP. Moduł WWW przygotowuje szablony nginx oraz instalator dla domeny i HTTPS. Wdrożenie aplikacji jest osobnym krokiem, dzięki czemu infrastruktura i kolejne wydania produktu mają odrębne cykle zmian.
Automatyzacja wdrożenia
Proces autodeploy sprawdza zmiany na main, pobiera wskazaną rewizję i wykonuje kontrole składni. Frontend oraz API mają katalogi wydań i przełączane dowiązania aktywnej wersji. API jest aktualizowane, gdy zmienią się jego wejścia. Kontrola zdrowia sprawdza odpowiedź API i serwowany HTML; nieudane wdrożenie uruchamia powrót do poprzedniego wydania.
Aplikacje iOS i Android
Utworzono projekty aplikacji na iOS oraz Androida w oparciu o Capacitor. Kod mapy i zasoby są pakowane z aplikacją, a dane i API pozostają na serwerze. iOS korzysta z Xcode i ścieżki testowej TestFlight; Android ma projekt Gradle i własny proces budowania. Aktualizacja backendu jest niezależna od nowego wydania aplikacji. Uprawnienia i funkcje natywne obejmują zależnie od platformy lokalizację, udostępnianie, zapisane miejsca i powiadomienia.
Utrzymanie i rozwój
Przygotowany moduł monitoringu sprawdza zasoby systemu, usługi, HTTPS i odpowiedzi aplikacji oraz obsługuje alerty APNs po skonfigurowaniu odbiorcy. Projekt łączy rozwój produktu, integrację danych, infrastrukturę jako kod, automatyzację publikacji i dystrybucję mobilną. Kod oparty na bibliotekach zewnętrznych zachowuje ich licencje i wymagane oznaczenia źródeł.
Otwórz projekt w nowej karcie