Giter Club home page Giter Club logo

cryptoboid / splitio Goto Github PK

View Code? Open in Web Editor NEW
85.0 2.0 12.0 1.55 MB

split your bills easily! splitio is an open-source webapp built for tracking debts and payments quickly, without any user accounts. works as a splitwise-clone

Home Page: https://splitio.vercel.app/

License: GNU Affero General Public License v3.0

JavaScript 1.54% HTML 1.64% Svelte 73.77% SCSS 3.63% TypeScript 19.42%
bill-splitting splitwise decentralized gundb sveltekit p2p encryption split-expenses split-bill

splitio's People

Contributors

cryptoboid avatar

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  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  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

splitio's Issues

Research bullet-catcher for soft deletes

Ideas:

  • block puts without header in splitio relays
  • block .put(null) in splitio relays, implement soft deletes in client (mark with deleted: true)
  • only allow I/O under .get('splitio') ?
  • sign .puts() with group's secret key, save pub key under 'groupInfo/pubKey'

REQUEST: Split Unevenly amongst friends

image

  • Split Equally
  • Split by Exact Amounts
  • Split by Percentages
  • Split by Shares (great for time-based splitting (2 nights -> 2 shares) and splitting across families (family of 3 -> 3 shares)
  • Split by Itemised Expense
    image

Add confirm dialog on delete?

I think it would make sense to add a "are you sure" check, even with a simple globalThis.prompt() on deleting expenses. It's a bit too easy to double click for example and delete an expense which I guess there's no way to recover. At least I don't see any obvious undo / redo type functionality.

Feature Request: Add a loading overlay

Not sure why, but the data is taking >10s to load for me right now. Well, it hasn't loaded yet, so maybe it'll take longer! But it took me a while to realise that the title and heading both say "loading...". Would be great to add an overlay with a spinner so that I can't interact with the app until it's finished loading, and also so that I can't miss the fact that it's not yet loaded.

Modals don't play well with safari on iOS

Here's what it's mean to to look like:

image

But here's what it often looks like:

image

Note the bottom bar which changes size. It's a bit tricky on iOS because the viewport height changes. Trouble is, the modal often opens in the second state where the X in the top left is off the screen. Given that the whole thing doesn't scroll, it's not reachable. The only way to escape the view is by hiding the toolbar at the bottom. But that's a pretty advanced level move, I'd assume that most regular humans would just get stuck here and have to reload the whole page. Bit of a nasty UX bug, and unfortunately I'm not 100% sure what the solution is. I'd guess there's probably some libraries that handle this, or maybe it needs a resize event handler to resize the modal. Or maybe there's an easy way to make the modal always ~50px shorter than the viewport?

Persistent mode dialog

After adding a member or expense, show a dialog explaining about persistent mode (only in Firefox) and trigger a StorageManager.persist()

Person only shows 4 people

Screenshot to show the issue:

Screenshot 2022-02-23 at 22 21 54

There are 6 people in our group, but the dropdown somehow goes upwards from the cursor and gets hidden in the top of the modal or something. I can use the arrow keys to select down the list, but it's a bit weird. This is on a huge laptop screen.

JSON export?

I've created a couple of groups, and I'm slightly worried that people in the group will accidentally mess with the data, delete stuff, or whatever. It would be great to have a JSON export of all the data for a group (plus probably an import option). But, maybe this is unnecessary with GunDB, perhaps the history is always visible with GunDB, I'm not sure.

Also, I'm happy to put some time into some of these feature suggestions, I'm not super familiar with Svelte or GunDB but I have lots of frontend TypeScript experience.

This is awesome

Thank you. This is awesome. p2p database, client side encryption, no need for accounts. This is precisely what I had in mind when I thought about trying to find an open source tool. Thank you for publishing it.

I'd suggest adding the split-expenses and bill-splitting topics to this GitHub repo as I think that could help other people find it.

As an aside, if I can do anything to help support this project, like run a db replica node or something (don't know much about gundb off the top of my head), just let me know, would be happy to help and will try to promote this hard every time somebody suggests another splitwise group.

Add SEO tags

First version, at least covering index and /g/ routes with some basic info

Question: How does gun persistence work?

Partly from #4, I'm realising that I have old groups which I can no longer access. The inspector just shows "loading" for the gun status, and the groups won't load on any of my browsers (including several which had loaded the groups previously).

I'm a bit unclear on how gun persistence actually works. In theory, should every record ever stored be kept forever? Or is it more like ipfs where unless a node persists the data then it will slowly age out of caches and disappear?

I'm thinking it would be neat to figure out how to communicate the persistence part clearly and then add it to the app somewhere so folks can understand what's going on with the data.

Recent groups extensions

Some other desired features:

  • "pin"/favorite groups
  • delete group from list
  • disable recent groups button

List "recent" groups?

It would be awesome if I could see a list of my recently visited groups (for example saved in localStorage) on the homepage. That would make it much more user friendly to jump between groups.

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.