Seyahat paylaşımı kırık. Instagram'da bir fotoğraf, Google Maps'te bir pin, WhatsApp'ta bir mesaj — ama hiçbir yer bir yolculuğun hikayesini hak ettiği derinlikte anlatmıyor. Her durak, her ulaşım şekli, her bütçe detayı o hikayenin parçası. Mevcut uygulamalar ya fotoğraf dökümü ya da harita pini sunuyor. İkisi arasındaki boşluk — yani yolculuğun gerçek dokusu — kaybolup gidiyor.
Voyager, yolculukları durağa durağa anlatan bir sosyal platform. Her durak kendi fotoğraflarına, açıklamalarına ve bağlamına sahip. Duraklar arasındaki ulaşım — otobüsten helikoptere 13 farklı ulaşım modu — hikayenin parçası. Çoklu para birimi bütçe takibi, gerçek zamanlı sohbet, ve bir rota beğendiniz mi? Fork'layın, kendi versiyonunuzu oluşturun. Her yolculuk doğal olarak bir şablon.


Flutter mobil istemci, ASP.NET Core backend, PostgreSQL veritabanı ve AWS S3 medya depolama. Gerçek zamanlı iletişim SignalR ile, çevrimdışı veri ObjectBox ile.

En güzel duraklar genellikle şebekenin olmadığı yerlerde. ObjectBox ile özel veri hidrasyon mantığı kurarak, bağlantı koptuğunda bile uygulamanın sorunsuz çalışmasını sağladım.
Medya yüklemelerini sunucudan geçirmek yerine, istemcilerin doğrudan S3'e yüklemesini sağladım. Bu sunucu hesaplama maliyetlerini %70 azalttı.
Hesap seviyesinde (herkese açık/gizli) ve yolculuk seviyesinde (herkese açık/takipçilere özel/gizli) iki bağımsız gizlilik katmanı. Birleştirildiğinde, gizli hesaptaki herkese açık yolculuk bile sadece onaylı takipçilere görünür.
Her durak kendi fotoğraflarına, açıklamalarına ve medya galerisine sahip. Duraklar arasındaki ulaşım detayları — otobüs, tren, uçak, bisiklet, hatta helikopter dahil 13 mod — hikayenin ayrılmaz bir parçası.
Beğendiğiniz bir rotayı forklayın, durakları özelleştirin, tarihleri ve bütçeyi ayarlayın. Orijinaline bağlantı kalır, keşif zincirleri oluşur. Ayrı bir şablon sistemi yok — her yolculuk doğal olarak bir şablon.
SignalR ile düşük gecikmeli bireysel ve grup sohbeti. Sohbet içinde yolculuk paylaşımı, okundu bilgisi ve teslim durumu.
ObjectBox ile çevrimdışı öncelikli mimari. Yolculuk detaylarını ve haritaları bağlantı olmadan görüntüleyin — çünkü en güzel duraklar bazen şebekenin dışında.
En büyük zorluk, çevrimdışı verilerin tutarlılığını sağlamaktı. Kullanıcı çevrimdışıyken yeni durak eklerse, fotoğraf yüklerse ve sonra tekrar çevrimiçi olursa — tüm bu değişikliklerin doğru sırada, çakışma olmadan sunucuyla senkronize edilmesi gerekiyordu. Delta senkronizasyon mantığını sıfırdan yazdım ve en zor kısım çakışma çözümleme stratejisini belirlemekti.
İki bağımsız gizlilik katmanının (hesap ve yolculuk) birleştirilmesi, her sorguda doğru şekilde kontrol edilmesi gereken bir matris oluşturdu. Özellikle forklama sırasında — 'bu kullanıcı bu yolculuğu forklayabilir mi?' sorusu hem hesap gizliliğine hem yolculuk görünürlüğüne hem de takip durumuna bağlı. İlk implementasyonda bazı edge case'leri kaçırdım ve bunu ancak kapsamlı test senaryolarıyla yakaladım.
Tam işlevsel mobil uygulama prodüksiyon ortamına dağıtıldı
S3 presigned URL'ler ile sunucu hesaplama maliyeti azaltması
Desteklenen ulaşım modu — yürüyüşten helikoptere
Voyager Reborn — genişletilmiş kapsamla sıfırdan yeniden mimari
Projenizi konuşalım.
İletişime geç