Skip to content

Pension Compare mobile app to help monitor and compare the performance of multiple pension plans

License

Notifications You must be signed in to change notification settings

zjcz/pension_compare

Repository files navigation

Pension Compare App

test status License: GPL v3 Flutter Version

A Flutter application to allow users to compare the performance of their pension funds. The app works by allowing the user to input the details of their pensions from their annual statements, then view the performance of each pension as well as how well they are performing in total.

✨ Features

  • Enter information about pensions, including state pension
  • Compare performance using charts
  • All data stored locally on device in an encrypted database
  • Ability to backup and restore data

🖥️ Instructions

The app is written in Flutter and uses Firebase for analytics.

Firebase Configuration

To configure the Firebase services used by this application, follow these steps:

  • Create a project in Firebase

    • Go to the Firebase console.
    • Click on "Create a Firebased project" and give your project a name (e.g., "pension-compare").
    • Follow the on-screen instructions to create the project. Make sure "Enable Google Analytics for this project" is enabled.

Code

To run the app you will need to install flutter. Follow this Get Started guide.

  • Clone the repository
git clone https://github.com/zjcz/pension_compare.git
  • Navigate to the project directory
cd pension_compare
  • If you don't have the FlutterFire CLI installed, run this command to add it:
dart pub global activate flutterfire_cli
  • Run the following command to configure Firebase for your Flutter app. This command will guide you through selecting your Firebase project and will automatically generate the firebase config files for you platforms:
flutterfire configure
  • Install the dependencies
flutter pub get
  • Start the emulator or connect a device
  • Run the application
flutter run

Testing

The project contains a comprehensive set of tests.

To run the tests, use the following command:

flutter test

Maestro

The project uses Maestro, a UI Testing framework for mobile to generate screenshots used in the app store. Uses the maestro_android_screenshots.yaml script to generate the images. See API Reference - Commands for a list of commands, or Automated Screenshot Generation with Maestro - Code With Andrea for more information.

📸 Screenshots

home screen home screen - summary pension performance screen pension details screen settings screen

Database Security

The database is encrypted by Drift using the sqlcipher_flutter_libs packaged, as documented here.

The password for the database is entered by the user in the form of a passcode, which is then encrypted using the Crypt package. The hash of this is used as the password for the database. See also SqlCipher Documentation.

Dev Notes

Uses the following packages:

🚂 Motivation

This app was originally released on the Google Play Store. However, due to a change in personal circumstance I have removed the app from the store and made the source code publically available. Feel free to fork the repo and build the app yourself for your own use.

📄 Terms and Conditions, Privacy Policy

The Terms and Conditions and the Privacy Policy was generated at App Privacy Policy Generator

💼 License

This project is licensed under the GNU General Public License v3.0 - see the license.md file for details.

About

Pension Compare mobile app to help monitor and compare the performance of multiple pension plans

Topics

Resources

License

Stars

Watchers

Forks