From f2e02fdb9ec1ed2390abd489cfee0fc7f3ab744f Mon Sep 17 00:00:00 2001 From: CustomIcon Date: Sat, 20 Apr 2024 01:43:47 +0000 Subject: [PATCH] Updated Docs --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++----- assets/favicon.png | Bin 4186 -> 0 bytes assets/icon.png | Bin 4186 -> 6729 bytes 3 files changed, 46 insertions(+), 5 deletions(-) delete mode 100644 assets/favicon.png diff --git a/README.md b/README.md index 33690b5..c59f86d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,48 @@ -# BillPay +# icon BillPay (WIP) -To run the app: +A fully Independent Application for cross platform -``` -flet run [app_directory] -``` +## 🎯 Purpose for BillPay +It has been difficult for me to manage mmy bills by having multiple apps installed on my mobile device, and I am sure many other people do too. There are many services here that provide all in one bill pay but they are so locked out we have to login to pay, and to pay we have to communicate with a third party bank account to send it credit so we can process our payments. If those services go down there is no possibility that we can further process our bills through those platforms. +So what could be better than having a fully independent App where YOU control YOUR bills and payments without having to rely on a thirdparty service. + + +## 💧 Features +### 🈚 Independent +Application doesnt rely on any thirdparty service to process any bill payments other than banks which are included by the vendor +### 🧩 Plugins +Apps can be pluggable, if user dont want to see them they can turn it off +### ♻️ Backup & Restore +Backup Payment History and Restore them on any device + + +## ⏬ Downloads +- Grab your own copy from [Builds](https://git.cubable.date/BillPay/app/~builds) + + +## 🦮 Build Guide +### 📜 Requirements +- flutter +- python 3.11.1 +- android studio (for android) +- Visual Studio (for Windows) +- Xcode (for IOS) +- Chrome (for Web) + +### 🛠️ Build Steps +- Create a python virtualenv: `python -m venv venv` +- Activate virtualenv: + - Windows: `.\venv\Scripts\activate` + - Linux/MacOS: `source venv/bin/activate` +- Install requirements: `pip install -r requirements.txt` +- Run interactive for debugging: + - `flet run --` where the platform is either `ios` `android` `web` +- To Build Release: + - `flet build --verbose` where `` is either `ios` `android` `web` + + +### Developed with ❤️: + +drawing +drawing +drawing diff --git a/assets/favicon.png b/assets/favicon.png deleted file mode 100644 index c630155602e14dfb0ea3ac0279ef1049d4927918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4186 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 diff --git a/assets/icon.png b/assets/icon.png index c630155602e14dfb0ea3ac0279ef1049d4927918..9d2174f44222c89120e0fe7ed85c28a5163d5618 100644 GIT binary patch literal 6729 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 Z>D3;K>J9EmpJcuqbU`_j_nrFp{{Ss#h?)QZ literal 4186 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