Giter Club home page Giter Club logo

little_victories's People

Contributors

devkishor8007 avatar saksham-gt avatar scottishross avatar

Stargazers

 avatar

Watchers

 avatar  avatar

little_victories's Issues

Enhancement: Add Twitter login

Along with Google Sign-In, users should be able to sign in with a Twitter account.

  • Twitter sign-in implemented.
  • A new user is created on Twitter sign-in.
  • If that Users email already exists (i.e. via Google sign-in), the login details are combined.
  • Sign-out of Twitter button added to Preferences.

a document path must point to a valid document.

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.)

image

Redesign: decide on a new look for Little Victories

I am not too happy with the overall design of Little Victories. Things to think about:

  • Reduce the amount of curve on the borders to make them a little sharper
  • Change the home page from buttons to cards with nice colours and icons.

New Feature: Delete User Account

A user should be able to delete their user account and all relevant information.

  • Create button in preferences called Delete Account.
  • This deletes everything in Firebase relevant to that user.
  • A modal confirm should appear before this happens.
  • User is routed to sign-in page on complete.
  • Snackbar notification should appear confirming that all user details have been deleted.

Design: Redesign app

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.

Enhancement: Handle Google Sign-In Crashes

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.

Enhancement: Schedule reminders for celebrating Victories

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).

Enhancement: Add intro pages

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.

Security: Encrypt Victories

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.

Design: Splash Screen improvement

Right now the Splash Screen is very simple. An improvement to the splash screen to include an animation would make it a lot better.

Awesome Notifications Integration

To help with Push Notifications and to create Local Notifications, the Awesome Notifications package should be integrated.

  • Any current Push Notifications work should be replaced with Awesome Notifications.
  • LocalNotificationService.dart file to be created with methods to create scheduled, periodic, and one-shot notifications.

https://pub.dev/packages/awesome_notifications

Enhancement: Notifications allow quick creation of Victory

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.

General Refactoring

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.

Enhancement: Facebook sign-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.

Refactor: Notifications initialization combined into one method

Currently the Notifications initialization is spread over the main.dart file and then individually initialized.

  • Create NotficiationService.dart
  • Create NotificationService class.
  • Move all notifications logic into here.
  • Create init() method that initializes what needs to be.
  • called NotificationService.init() on main.dart initialization.

New Feature: Add Victory also includes icons

When celebrating a Victory a user should be able to choose an icon out of a list of Icons.

  • Create a new class called "VictoryIcons".
  • Fields:
    • Title
    • Icon

Icons (Title / Icon):

  • Happy - sentiment_very_satisfied
  • Activity - local_activity
  • Outside - nature_people
  • Food - restaurant
  • Hygiene - bathtub
  • Exercise - fitness_center
  • Other - help_outline

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.

Firebase: Rewrite document structure

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.

Refactoring: Modals

Currently, there are several modals when this can be refactored into 1 or 2 widgets.

Complications: Confetti widget in AddVictory. SignOutOfGoogle.

Enhancement: Create feedback section

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.

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.