A mobile application to find nearby fuel prices in the UK using real-time Fuel Finder data.
Fueller is an Android application built with Kotlin and Jetpack Compose that helps users discover and compare fuel prices at nearby petrol stations across the United Kingdom. The app leverages the Fuel Finder API to provide up-to-date pricing information and uses device location services to identify stations in proximity.
- 📍 Location-Based Search: Find fuel prices at nearby petrol stations using device GPS
- 🗺️ Map View: Browse stations on an interactive OpenStreetMap
- 💰 Real-Time Pricing: Access current fuel prices from Fuel Finder
- 🔄 Easy Comparison: Compare prices across multiple stations
- 📱 Modern UI: Built with Jetpack Compose for a smooth, responsive experience
- Language: Kotlin
- UI Framework: Jetpack Compose
- Build System: Gradle (Kotlin DSL)
- Min SDK: Android 8.0 (API 26)
- Target SDK: Android 15 (API 36)
- Networking: Retrofit + OkHttp for API calls
- Serialization: Kotlinx Serialization for JSON handling
- Maps: OSMDroid (open-source mapping library - no API key required)
- Location Services: Google Play Services Location
- Navigation: Jetpack Compose Navigation
- Testing: JUnit, Espresso, Compose UI Testing
- Android Studio (latest stable version)
- JDK 11 or higher
- Android SDK with API level 36
- Clone the repository:
git clone https://github.com/GavT/fueller.git
cd fueller- Build the project:
./gradlew build- Run on device or emulator:
./gradlew installDebugThe app connects to different backends depending on build configuration:
- Debug: Uses local development backend at
https://api.fueller.app - Release: Connects to AWS Elastic Beanstalk backend at
http://fueller-backend.eu-west-1.elasticbeanstalk.com
Note: The release build currently uses cleartext HTTP. This is a known limitation that must be resolved before publishing to the Google Play Store (see Issue #21).
fueller/
├── app/ # Main application module
│ ├── src/ # Source code
│ ├── build.gradle.kts # App-level build configuration
│ └── proguard-rules.pro # ProGuard configuration
├── build.gradle.kts # Root build configuration
├── settings.gradle.kts # Gradle settings
├── gradle/ # Gradle wrapper
└── README.md # This file
This project is dual-licensed:
- AGPL-3.0: GNU Affero General Public License v3.0 (default open-source license)
- Commercial License: Available for commercial use under separate terms
See LICENSE and COMMERCIAL-LICENSE.md for details.
Contributions are welcome! This is an active project with 72 open issues. Please feel free to:
- Report bugs and suggest features via GitHub Issues
- Submit pull requests for enhancements
- Help with testing and documentation
For questions or inquiries, please reach out to @GavT or open an issue on the repository.
Project Status: Active Development
Last Updated: 2026-05-19
Generate a JaCoCo HTML/XML coverage report from the debug unit-test build:
./gradlew jacocoTestReport
Reports:
- HTML:
app/build/reports/jacoco/jacocoTestReport/html/index.html - XML (CI ingestion):
app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml