← Back to portfolio
featured · 03Android · Location Services

SergiiTBMaps

A location-based Android application integrating Google Maps, live geolocation, hardware camera capture (CameraX), and cloud synchronization with Firebase.

SergiiTBMaps icon
SergiiTBMaps
Android Geolocation & Camera Experience
Min SDK 24Target SDK 33v1.0
KotlinJetpack ComposeGoogle MapsFirebaseCameraX
Interactive Map View with Markers
scroll
Demo & Context

Navigate the world,
capture it instantly.

The Project: SergiiTB Maps is a robust mobile application built around location-based services. Users can register securely, view their real-time location on an interactive map, and plot custom markers. The app integrates directly with the device camera to attach photos to map pins, seamlessly synchronizing all data via Firebase.

The Challenge: Integrating multiple hardware APIs (Location Services, CameraX) with a reactive UI (Jetpack Compose) required strict MVVM boundaries. Handling permissions dynamically with Accompanist and managing state flows between the local Datastore and Firebase Firestore were key challenges. Additionally, the Google Maps API Key was explicitly documented via secrets.properties for educational validation (note: this key was activated exclusively for the school demo and is now revoked).

Screenshots
5 screens

Interactive Map View with Markers1 / 5

Tech Stack
Language
Kotlin
Platform
Android SDK
UI System
Jetpack Compose
Mapping API
Google Maps
Hardware
CameraX
Backend & Auth
Firebase
Local Storage
DataStore
Image Loader
Glide
Architecture
src/
model/

Data Layer: Firebase Firestore & Storage repository integrations, along with local DataStore preferences manager and entity models.

viewmodel/

Presentation Layer: MapViewModel exposes reactive LiveData for UI state, auth status, camera payloads, and map markers.

view/

Compose UI: Interactive MapScreen, AddMarkerScreen, LogScreen, ProfileScreen, and Camara integration views.

ui.theme/

Material Design 3 system defining custom typography, color palettes, and responsive component layouts.