scottishross / little_victories Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
A user should be able to delete their user account and all relevant information.
Due to changes to Dart Math, the Confetti package crashes on call. This will have to be temporarily removed to resolve this issue.
Replace Share
To improve Little Victories, I need feedback from users on how I can improve it. To do this, create a button in the Preferences page/Home Page to allow the submission of feedback. This should go straight to my email address so I get notified immediately.
As noted in #19 if something goes wrong in the Google Sign-In process, the app crashes. This needs to be handled better.
I suggest that the app routes back to the Sign In Page and a toast bar appears informing the user of an error message.
To help with Push Notifications and to create Local Notifications, the Awesome Notifications package should be integrated.
Since Little Victories is a free app, I will not be able to support using the Twitter API. As such, I need to remove it.
Things to check:
As a user, I'd like the ability to choose a date range to show the Victories within that timeframe. I should be able to search for a specific date, week, month, or year.
Currently, Confetti is crashing the app. Whilst working on this fix I thought I should have the ability to turn off the Confetti just in case people dislike it.
When celebrating a Victory a user should be able to choose an icon out of a list of Icons.
Icons (Title / Icon):
Add a new field to the Add Victory modal allowing a user to select an Icon. Implement how would like, but I think a horizontal sliding list with each Icon would look good. On select have the icon light up. The default selection should be "Other".
When submitting the Victory, this new field should be populated in Firebase. So AddNewVictory will need to be modified.
In View Victories the ListTile should have the Icon appear on the left of the tile. If there Icon is null it should be the Other icon.
The page transitions are pretty basic.
Currently, I just display data from the queries without converting it into a Victory model. For cleaner code, I should create a Victory class and use it.
When expanding a Victory, display the time the user submitted it.
Right now the Splash Screen is very simple. An improvement to the splash screen to include an animation would make it a lot better.
When I sign in with Google, as authentication process completes and suddenly the app exits. And if I run the app again then my ID is already signed in.
Along with Google Sign-In, users should be able to sign in with a Facebook account.
Facebook sign-in implemented.
A new user is created on Facebook sign-in.
If that Users email already exists (i.e. via Google sign-in), the login details are combined.
Sign-out of Facebook button added to Preferences.
I am not too happy with the overall design of Little Victories. Things to think about:
In push_notifications_screen.dart I have a SwitchTileList showing whether a user wants to receive certain push notifications. Currently changing the switch does nothing.
Changing the switch should update the document with the correct values.
This project was created when I was first learning Flutter, and as such, there is a lot of improvements that can be made to the code. Any sizable improvements to refactoring a PR can be linked to this ticket, and if I consider it sizable enough I will merge it.
To be in line with new Android developments, it might be worth making the app work with Material You.
Hello @ScottishRoss
I am geeting Exception while pressing the Push Notifications
_AssertionError ('package:cloud_firestore/src/firestore.dart': Failed assertion: line 115 pos 12: 'isValidDocumentPath(documentPath)': a document path must point to a valid document.)
As a user, it may be useful to have a switch in preferences that allow me to turn on automatic sharing to specific apps. These apps are:
Twitter, Facebook, Instagram.
To explain the concept of Little Victories, it would be good to implement an intro sequence to explain the concepts. Using something like https://pub.dev/packages/intro_views_flutter
It should be stored shared_preferences if a user has already been through it.
Optional: Include a button in Preferences to display the intro pages again.
The plugin social_share
uses a deprecated version of the Android embedding.
This is blocked until the author of the plugin reviews his latest code and pushes the new version.
The share image is pretty bad. The background to the Victory (the container) looks bad. Need to think of a better way.
The package flutter_twitter_login isn't actively maintained and hasn't been upgraded to null-safety, as such we need to move to twitter_login:
Currently, every victory is a separate document. This potentially has the chance of creating a large Firebase bill, as every time a user views their Victories, it will be reading all of those documents.
Rewrite the Victories so they're all contained in one document per user.
Currently the Notifications initialization is spread over the main.dart file and then individually initialized.
Currently, there are several modals when this can be refactored into 1 or 2 widgets.
Complications: Confetti widget in AddVictory. SignOutOfGoogle.
Notifications can have a text field and submit button, so to make it easier for someone to celebrate a Victory from the notification, add this feature.
Note, it may not be possible to select an icon via this method, but it might be worth having a specific icon for Victory added via notification.
To help users be more consistent in celebrating their Victories, we need a solution to prompt users to add a Victory. Two potential solutions:
1: Add Push Notifications (not preferred).
2: Add Local Notifications that are scheduled on the Preferences page. Users should be able to turn them off or change the time, date, and period (daily, weekly, etc).
This app was the first app I threw together, and I believe the design could be a lot better. It is currently very simple and I believe some more interesting design would could be done.
Move the account functions to outside the app and to Firebase.
The colour of the image should be white (i.e. the app_icon)
Issue opened in awesome_notifications: rafaelsetragni/awesome_notifications#506
Victories should be encrypted on Firebase so that no one has access to them (i.e. me).
If possible, try and encrypt all previous entries and update the document with them.
When clicking on the app icon, it's possible to allow someone to navigate to a specific screen. Use quick_actions package to allow this.
https://www.fluttercampus.com/guide/281/create-shortcuts-quick-links-in-home-screen-flutter/
Along with Google Sign-In, users should be able to sign in with a Twitter account.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.