Code Monkey home page Code Monkey logo

justsplit's Introduction


JustSplit

A product of Dot.Studios LLC



Did you pay for your friends and feel anxious about asking money back? Dont you worry! Just Split all expenses with friends, family or anybody and bring peace to your mind. JustSplit's mission is to reduce the stress and awkwardness that money places on our most important relationships. Go ahead, download the app now!!


Get It On

Get it on Google Play

Screenshots



Bugs or Reports

If you encounter any problems feel free to open an issue. If you feel the app is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull requests are also welcome.

See Contributing Guidelines.


Contributing

Contributions of any kind are welcome! See Contributing Guidelines and Code of Conduct.

Overview

  • App tries to follow Clean Architecture guidelines. Logic is separated from the UI.
  • App uses BLoC extensively
  • If you find something in code that looks a bit odd, it might be some useful extension method from lib/extensions

Donate

If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of โ˜•


License

JustSplit is licensed under Apache 2.0 License. View License

justsplit's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

justsplit's Issues

Use Automatic JSON Serialization

Currently manual serialization is being used in the sdk which is not an optimal solution. So we need to migrate to Automatic JSON Serialzation using Json_serializable package

Separate settled-up friends

Is your feature request related to a problem? Please describe.
Even if the expenses with a friend are settled-up, the friend is still listed on the HomePage. This makes scrolling and searching for a particular name, very difficult moreover it makes UI very congested.

Describe the solution you'd like
A separate section should be there at the end of the list with the settled-up friends.

[Please first describe the approach you are thinking before moving on with the coding part]

NoSuchMethodError on cancelling Google SignIn on Login Page

Describe the bug
When we cancel the google sign-in method this error is generated.

Expected behavior
Instead of showing a snack bar with an error, the method should abort without notifying the user. Like without showing any snack bars.

App gets stuck on CircularProgressIndicator

App gets stuck on CircularProgressIndicator whenever internet connection is unavailable. When we try to update, delete or add any expense on the app, the app gets stuck on the CircularProgressIndicator and it doesn't show any Network Error.
So, the users will not know that there is a network problem.

Missing Bloc Context in Dialog Box

Describe the bug
The new showDialog function API shows dialog with a context that isn't related to a previous context. The Bloc thus, doesn't have the required context to add an event.

Fix the input formatter in the phoneNumber field

Describe the bug
The input formatter that adds country dial code to the phoneNumber behaves in an absurd manner. It adds the code when someone tries to type and if the phoneNumber is picked from the phone book then it is not formatted automatically

Expected behavior
The input formatted should work automatically when input is present irrespective of whether the phone number is entered manually or via the phone book

Fix the jagging that occurs when drawer menu is opened

Describe the bug
The drawer menu opens with a jag and the frame rate is slow in some devices

To Reproduce
Steps to reproduce the behavior:

  1. Click on the drawer menu button or swipe right
  2. See the jagging

Expected behavior
Drawer menu should open flawlessly without any delay in frames.

Add Expense Page: Bad State Error

Describe the bug
Bad State: No Element error in Add Expense Page

To Reproduce
Steps to reproduce the behavior:

  1. Go to Add Expense Page'
  2. Select the Add Friend option from the dropdown menu
  3. The Add New Friend Dialog appears, click on CANCEL
  4. Now add the expense
  5. See the error

Expected behavior
The expense should not be added when the friend is not added or precisely when the value of dropdown is "Add Friend".

Sort friends list in HomePage

Is your feature request related to a problem? Please describe.
The friend's list is not sorted. Even if the expenses are settled up the user is still displayed. This makes searching for a particular friend very difficult.

Describe the solution you'd like
Sort the friend's list in ascending order of the corresponding first name.

bad state error in all expenses page

Describe the bug
The bad state no element occurs in the all-expenses page due to some odd expense addition from the previous bug.

How to Proceed
Add null safety in the all-expenses BLOC

Splash screen changes according to theme

Is your feature request related to a problem? Please describe.
The splash screen currently doesn't change according to the app theme. It is always light-themed.

Describe the solution you'd like
The splash screen should change according to the theme of the app

Refactor and optimise the FCM functions

The current code for FCM (Firebase Cloud Messaging) generates a huge amount of errors. Ideally, these are the exit cases that need to be addressed. Example: When the user is logged out, the token is also erased from the database but the cloud functions do not address this case and generate an error.

Screenshot-20210101181358-1281x625

We need to make the code more robust and consider all exit cases.

Add the Delete friend option

Describe the solution you'd like
On the details page instead of the profile menu button there should be a popup-menu button with a "delete friend" option. Clicking on the "delete friend" will settle up all expenses and delete the user from the current user's friend list. Also, the current user will be deleted from the unfriended user's friend list.
More options for the pop-menu button will be decided later.

Transactionize the write and read requests

Transactionizing the read and write requests would overcome the problem of atomic read and writes.
In simple words, if two requests are made simultaneously to a document then either they give an error or produce some absurd result. Transactioizing them would mean that even if the requests are made at the same time, they will function correctly as several bank transactions occur simultaneously around the globe.

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.