Giter Site home page Giter Site logo

tankste / app Goto Github PK

View Code? Open in Web Editor NEW
37.0 2.0 5.0 1.21 MB

The mobile app of the tankste! project.

Home Page: https://tankste.app

License: Other

Kotlin 6.15% Dart 93.00% Ruby 0.30% Swift 0.38% Objective-C 0.01% Shell 0.16%
android car flutter gas gas-price gas-prices ios price price-tracker dart gradle kotlin swift

app's Introduction

tankste! - App

License: GPL v3 Translations

Your open source fuel price app. The mission is to give you one app that you can use in all countries.

Play Store App Store

iOS Screenshot 1 iOS Screenshot 2 iOS Screenshot 3

Availability

Flag Country
🇩🇪 Germany
🇮🇸 Iceland

Data sources

The gas station data are hosted by our own backend. The backend gets the data from multiple data sources. We listing them on our website.

Get started

Configuration

All secrets are needs to be defined in config.json. At this moment we maintain an duplicated configuration for every platform. In future this should be auto-generated created by build scripts.

  • Flutter: config.json
  • Android: android/app/src/main/res/values/config.xml
  • iOS: ios/Config.xcconfig

Development

Modules

Name Description
app App entry point
station Station and gas price things
navigation Routing utils and widgets
sponsor Sponsor & payment stuff
report Report wrong station data forms
map Map utils
settings User settings page
core Generic core and util functions

Code quality

The tankste! project is based on a prototype code. The quality of the code has improved since then, but there is still a lot to do. We are on the right track. So please be patient or help us to improve the code.

Special thanks

License

Important

This license refers to the source code in this repository. The content provided by the app is protected by copyright.

tankste! - Your open source gas station mobile app. Copyright (c) 2023 Fabian Keunecke

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

app's People

Contributors

fabi755 avatar marrrrtthias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

app's Issues

Sponsor page

Show needed and already spent money in app. Allow spending sponsor by in-app purchases.

Automate releasing

Building binaries and upload to given distribution platforms (github, play store, app store, f-droid, amazon store) should be automated.

Custom Price Alert

As a user I would like to set a specific price of the fuel of my choice in the app to get informed via push message if my price is reached, so that I can fuel up cheaply 😎

Report wrong data

Using the data of the MTS-K require that we offer an report form, where users can submit wrong data.

Add report feature to the station details and send them to the backend.

Improve prototyping code

Refactore the ugly code in main.dart file and split to multiple files and using a architecture.

Favorites stations

Add favorite list.

Allow mark gas stations as favorite. We should add a favorite filter for map and an separate favorite list.

Apple Maps on iOS platform

Use Apple Maps instead of Google Maps on iOS/iPadOS.

To be discuss: Should we always use Apple Maps or give we iOS users the choice to switch back to Google Maps in the settings?!

Show last price changes date on station details

Multiple users wants to see the latest price changes date on the station details page.

While our current data source Tankerkönig is not give us this data, we need to skip this until we have our own backend.

Handle multiple currencies

  • Show currency given by backend
  • Setting to select home currency (default by current language)
  • Show also home currency price when other currency price is available

More countries

Support more countries.

Add countries to PlayStore / AppStore. Data source will handle our backend.

Improve design and look & feel

Needs some discussion and a designer 😜.

  • Better markers (rounded corners)
  • Choose font(s)
  • Define theme colors

Get design away from material design to get more generic (and don't look like an Android app).

Uncouple from Playservices, use Openstreetmap provider

Hello, promising project, nice.

I just tried to use it on LineageOs without installed Playservices. Unfortunately the App does not work without Playservices (no map). It would be really great to uncouple the app from it, e.g. use some Openstreetmapservice.

Allow usage without GPS

Instead of using only the GPS location we should allow to check prices on other locations too by moving the map to them.

Nice to have: Would be nice if the last map position will restored on app launch.

Map provider option

Allow to change the map provider to available maps.

Rename the navigation-map provider option for a better user understanding.

Map loading hangs up on start sometimes

Many users reporting very slow or not working marker loading on map.

I see the same issue, that sometimes the map is hanging on initial state. The map shows the location and the loading bar is displayed. Nothing other is happening, until the map will moved.

For now, this issue was only seen on iOS.

Station list

Beside the map we should provide a list of stations that is sortable by distance or price.

The filters should apply here too.

Like Bertha (was only iOS) we should use some bottom sheet. For example something like Bar Finder.

Source badge

Using the data of MTS-K require that we show the data source.

An logo/brand image of the source should be showed on the station details page. On the footer or if we want to show the data mixed, we need to show them on every detail.

Parsing error on coordinate integers

Like in #44 the API returns integer values when given value is a round one.

This also affect our fields latitude & longitude.

This cause in current versions (1.0.0 - 1.2.1) a parsing exception and no station markers are displayed on the map.

iOS: Location marker covers price badge

Today I saw this slightly bug that in some zoom level the iOS location dot overlaps the price badge so that this price is not readable anymore.

That maybe needs some UX improvement, maybe the price badge with a top arrow or something else.

73ED6FD3-7935-4053-BB10-B6753AD01B8E

Add (local) logging

  • Add logger framework
  • Log local
  • Option to enable/disable logging (for the first version, a feature flag is enough)
  • Disabled by default
  • Allow to view the logs in the app
  • Allow to share the logs by mail or any other apps

Payment

Allow pay fuels from the app.

This needs a lot of validation and should skip until most other feature will be done.

Dark Mode

Adding dark mode. Maps should be showed in light/dark mode too.

Allow user to change design modes in settings with following options:

  • System (automatically depending on system)
  • Light
  • Dark

Replace OpenStreetMap by MapLibre

Instead of build & using an OpenStreetMap library using the existing MapLibre project for open source behavior. This is already available for our required platforms (Android, iOS & Web)

Developer settings

Adding hidden developer settings.

Enable like Android OS settings, with x clicks on version.

Developer settings should contain a sub-settings page, that allow enable/disable new features.

This will hide new things for normal users, and allow us to test some new stuff in production environment.

now refreh when app is opened (again)

When i open the app again, there is no automatic refresh. i have to hit the "location" icon to let the app get my location and so do an update of the last shown prices.

Onboarding

Adding onboarding pages to setup the app.

  1. Choose filters (gas type, ...) to customize app
  2. Accept terms & privacy

anything else?

Generate native configuration files

Generate native configuration files for Android & iOS.

The build scripts should read ./config.json and generate ./android/app/src/main/res/values/config.xml (Android) + ios/Config.xcconfig (iOS) files.

Android Auto

Adding Android auto application. I have already started, but this needs more improvements on the usage flow & UX.

Parsing error on integers

When a gas station has a round integer number (like 3.000€) the API response them as integer (ex: 3) instead of double (ex: 3.0).

This cause in current versions (1.0.0 - 1.2.0) a parsing exception and no station markers are displayed on the map.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.