FrameScout is an Android application designed for photographers to discover, save, and share visually stunning photo locations (landscapes, portraits, automotive, travel).
- Backend Repository: FrameScout Backend
- Discover Locations: Browse community-uploaded photography spots and sort them instantly (Latest / Oldest).
- Full Details: View high-resolution image previews, detailed descriptions, specific category tags, and open locations directly in Google Maps.
- Favorites System: Save your preferred locations seamlessly across both local offline storage and the cloud.
- Advanced Filtering: Search for spots by text query or filter posts using multi-select tags.
- Upload & Share: Publish your own photo discoveries (title, description, location attributes, tags) directly from your gallery using multipart requests.
- Personal Content Overlay: Easily spot your own uploads with a discrete "My Spot" overlay badge.
The application is built using modern Android development industry standards:
- UI / Interface: Built entirely with Jetpack Compose for a modern, fluid, and reactive design.
- Asynchronous Logic: Driven by Kotlin Coroutines & Flows for efficient background data handling.
- Local Storage (
Room): Implements an offline cache (AppLocalDb) to store globally fetched tags and allow quick access to your favorite locations even without internet connection. - Networking (
Retrofit): Communicates with the backend using modular service contracts:MainApiService– Handles public data feeds (listings, details, global tags).UserApiService– Handles authenticated actions (multipart image uploads, favorite toggles, personal photo history).
- Navigation & Preferences: Uses dynamic routes via
Jetpack Navigationand remembers the user's preferred startup screen on launch usingDataStore Preferences.