Skip to content

GavT/fueller

Repository files navigation

Fueller

A mobile application to find nearby fuel prices in the UK using real-time Fuel Finder data.

Overview

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.

Features

  • 📍 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

Tech Stack

Architecture & Framework

  • Language: Kotlin
  • UI Framework: Jetpack Compose
  • Build System: Gradle (Kotlin DSL)
  • Min SDK: Android 8.0 (API 26)
  • Target SDK: Android 15 (API 36)

Key Dependencies

  • 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

Getting Started

Prerequisites

  • Android Studio (latest stable version)
  • JDK 11 or higher
  • Android SDK with API level 36

Building

  1. Clone the repository:
git clone https://github.com/GavT/fueller.git
cd fueller
  1. Build the project:
./gradlew build
  1. Run on device or emulator:
./gradlew installDebug

Development

The 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).

Project Structure

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

License

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.

Contributing

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

Contact

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

Test coverage

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

About

Mobile app to find nearby fuel prices in the UK using Fuel Finder information

Resources

License

Stars

Watchers

Forks

Contributors

Languages