{"id":19233418,"url":"https://github.com/fedorajuandy/money_tracker","last_synced_at":"2026-05-02T18:34:01.010Z","repository":{"id":64450209,"uuid":"561380645","full_name":"fedorajuandy/money_tracker","owner":"fedorajuandy","description":"Android app for tracking expenses using Flutter","archived":false,"fork":false,"pushed_at":"2023-08-15T21:58:24.000Z","size":1018,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"secondary","last_synced_at":"2025-01-05T00:42:15.981Z","etag":null,"topics":["android","dart","firebase","flutter"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedorajuandy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-03T15:08:37.000Z","updated_at":"2023-04-09T08:46:24.000Z","dependencies_parsed_at":"2024-11-09T16:10:42.286Z","dependency_job_id":"82d1cab9-5356-4656-a3b0-1f9b68e512d5","html_url":"https://github.com/fedorajuandy/money_tracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedorajuandy%2Fmoney_tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedorajuandy%2Fmoney_tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedorajuandy%2Fmoney_tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedorajuandy%2Fmoney_tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedorajuandy","download_url":"https://codeload.github.com/fedorajuandy/money_tracker/tar.gz/refs/heads/secondary","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240310874,"owners_count":19781341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dart","firebase","flutter"],"created_at":"2024-11-09T16:10:30.156Z","updated_at":"2025-10-20T07:52:37.608Z","avatar_url":"https://github.com/fedorajuandy.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PPB UAS - Money Tracker\n\n2019130032 - Fedora Yoshe Juandy\n\n`NOTE! Ignore master branch`\n\nLong story short:\n\n- committed at campus using Wi-Fi\n- tried to sync at campus using said Wi-Fi\n- Wi-Fi error\n- everything got messed up\n- my fever-addled brain decided just to move the branch\n- present time:\n\n## Explanation notes and issues (for now and future)\n\n1. Cannot get parent key id[^1]\n\n\u003e Firebase realtime database cannot get parent id from its child. For plan's operations, every operation has a parentKey for reference.\n\n2. Cannot getChildren at snapshot[^2]\n\n\u003e For FirebaseAnimatedList, there is supposed to be a method getChildren() in android; unfortunately there is no such thing in Flutter and has already been an issue for quite awhile. So the 'Report' part of application cannot simply just itterate the whole thing and return the very last one.\n\n3. Problems with changing states\n\n\u003e The date has to be clicked twice to update \"Total\" in daily \"Transactions\". Must have been a problem with updating the state and cannot found \"onChildChanged\" or similar in FirebaseAnimatedList to update it each time adding a new transaction (plus cannot get the index to manually update it at the last one).\n\n## Firebase Realtime Database Setup[^3]\n\n### CLI setup\n\n1. `npm install -g firebase-tools`\n2. Firebase login\n3. `dart pub global activate flutterfire_cli`\n4. Add the path to env\n\n### App setup\n\n1. Make Firebase account\n2. Create new app in Firebase\n\nFor Android:\n\n3. Choose Android after setup (the middle green Android icon)\n4. Enter app package name from android/app/build.gradle (com.example.something) + nickname. While there, change the minSdkVersion to 21 and target to 28\n5. Download google-services.json to android/app\n6. In android/build.gradle (NOTE: DIFF FROM BEFORE), add classpath in dependencies\n7. In build.gradle (android/app/build.gradle), add apply together with the rest (change into the same format) [THE REST LATER IN yaml]\n8. `flutter-packages-get`\n\nFor iOS:\n\n9. Choose iOS (most left one)\n10. Enter name from ios/Runner.xcodeproj/project.pbxproj (PRODUCT_BUNDLE_IDENTIFIER)\n11. Download plist to ios/Runner\n\n### Project setup\n\n1. `flutterfire configure`\n2. `flutter pub add firebase_core` [CAN ADD MANUALY TO yaml by [Add Firebase to your Flutter app](https://firebase.google.com/docs/flutter/setup?platform=ios#available-plugins)\n3. `flutter pub add firebase_database`\n4. `flutterfire configure`\n5. In main.dart add `import 'package:firebase_core/firebase_core.dart';` and `import 'firebase_options.dart';`\n6. add `final Future\u003cFirebaseApp\u003e _fbApp = Firebase.initializeApp();` to MyApp and change the app not to const\n7. `flutterfire configure`\n\n## References\n\n### Codes\n\n- PPB class notes and past projects\n- [Flutter documentation](https://docs.flutter.dev/)\n- [For main layout UI](https://flutterawesome.com/budget-tracker-app-ui-with-flutter/)\n- [For horisontal scrolling calendar](https://stackoverflow.com/questions/71690214/how-do-construct-a-horizontally-scrollable-calendar-in-my-appbar-with-flutter)\n- [table_calendar 3.0.8 ](https://pub.dev/packages/table_calendar)\n- [For basic Realtime Database CRUD](https://codingzest.com/firebase-realtime-database-crud-operations-for-flutter-project/)\n- [For getting last month; for horisontal scrolling calendar](https://stackoverflow.com/questions/51420559/get-last-month-date-in-flutter-dart)\n- [For YearPicker widget](https://stackoverflow.com/questions/51420559/get-last-month-date-in-flutter-dart)\n- [For changing DatePicker colors](https://www.flutterbeads.com/change-date-picker-color-in-flutter/)\n- [For TimePicker widget](https://www.youtube.com/watch?v=3wsIBoyKmdA)\n- [For rupiah currency formatting](https://galangaji.medium.com/5-flutter-tutorial-cara-mudah-format-rupiah-pada-dart-c1711621e648)\n- [For scroll view with some parts fixed](https://stackoverflow.com/questions/54027270/how-to-create-a-scroll-view-with-fixed-footer-with-flutter)\n- [For base MVC in Realtime Database](https://www.kodeco.com/24346128-firebase-realtime-database-tutorial-for-flutter)\n- [How to change app icon](https://stackoverflow.com/questions/53967670/flutter-launcher-icon-not-getting-changed); [cannot use SVG format](https://stackoverflow.com/questions/68243711/is-there-any-way-to-use-svg-as-app-icon-in-flutter)\n- [For future builds](https://stackoverflow.com/questions/66100385/flutter-setstate-or-markneedsbuild-called-during-build-using-future-builde)\n- [For difference between two dates](https://stackoverflow.com/questions/52713115/flutter-find-the-number-of-days-between-two-dates/67679455#67679455)\n- [For modified alert dialog](https://medium.com/multiverse-software/alert-dialog-and-confirmation-dialog-in-flutter-8d8c160f4095)\n- [For FlatButton widget alternative](https://stackoverflow.com/questions/66805535/flutter-flatbutton-is-deprecated-alternative-solution-with-width-and-height)\n- [For converting String to TimeOfDay](https://stackoverflow.com/questions/53382971/how-to-convert-string-to-timeofday-in-flutter)\n- [For decimals precise places](https://stackoverflow.com/questions/28419255/how-do-you-round-a-double-in-dart-to-a-given-degree-of-precision-after-the-decim)\n- [AboutDialog](https://api.flutter.dev/flutter/material/AboutDialog-class.html)\n\n### Designs\n\n- [General UI/UX for expense trackers](https://dribbble.com/tags/expense_tracker)\n- [Main UI/UX layout for this money tracker](https://www.behance.net/gallery/79266823/Budget-tracker-App-UI-kit)\n- [Finance app colors](https://uxdesign.cc/3-colors-for-financial-applications-ec75c806e454)\n- [Finance app color palletes](https://www.crazyegg.com/blog/color-palettes-financial/)\n\n\u003e Green for choices, quantity, quality, and growth. Also money, of course.\n\n### Images\n\n- Icon is made by \u003ca href=\"https://express.adobe.com/express-apps/logo-maker\"\u003eAdobe Express\u003c/a\u003e and edited by \u003ca href=\"https://www.figma.com/\"\u003eFigma\u003c/a\u003e\n\n[^1]: [How to find parent key using child key in firebase realtime-database?](https://stackoverflow.com/questions/65725337/how-to-find-parent-key-using-child-key-in-firebase-realtime-database)\n[^2]: [[firebase_database] Get children count without downloading all the children #1069](https://github.com/firebase/flutterfire/issues/1069)\n[^3]: [How to Add Firebase to Flutter](https://firebase.google.com/docs/flutter/setup?platform=ios#available-plugins)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedorajuandy%2Fmoney_tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedorajuandy%2Fmoney_tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedorajuandy%2Fmoney_tracker/lists"}