Git Product home page Git Product logo

ryanhow / ebudget Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 2.0 5.9 MB

eBudget is a free personal and family budgeting app with a focus on every day use and requiring minimum time to keep your budgeting in check.

Home Page: https://ebudgetapp.com

License: MIT License

TypeScript 81.68% HTML 13.88% JavaScript 0.79% Batchfile 0.11% Ruby 0.36% Shell 0.41% SCSS 2.78%
budget-app budgeting finance-management personal-finance-manager ionic3 distributed holochain-application

ebudget's Introduction

eBudget

eBudget is a free personal and family budgeting app with a focus on every day use and requiring minimum time to keep your budgeting in check.

It was built out of the need for families, especially with newborn kids, to keep on top of their spending, so they can:

  • Always have enough money aside to pay for the essentials.
  • Allocate money to and priorities the things that they want (getting your finances line up with your goals and wants).
  • Make visible progress for saving towards the bigger goals instead of leaving those to chance.

With a few seconds (let's face it, it's hard to fine time for most things, yet alone budgeting) and a smart phone or web browser you'll forever be able to answer the questions when going to make a purchase, "Can I afford it?", and keep your spending habits in line with what you really want.

I conducted interviews of new parents about money and budgeting. Everyone has different approaches to it, some worked better than others. But they all agreed that they were super busy, and generally found managing money very hard to find time for. When under stress we default to our old ways and don't keep on top of it. There are some scarey and sometimes funny "critical mass" stories of when managing money between couples got out of hand and it results in a huge conflict. It seems to be a turning point for many to look into some kind of budgeting solutions, even if that is as crude as separate bank accounts for bills and spending. But it also seems when life starts putting the pressure on again, the systems and discipline to keep to those systems breaks down. eBudget is meant to keep you on top of it.

Here are a few key features

  • Share your budget, so you and your partner can always be on the same page. Guaranteed to result in less fights about money*. (* Not a real guarantee, but pretty close)

  • Private and secure. All the data stays with you!. It is only shared between your devices and web browser and directly with who you share your budget, no-one is evesdropping.(Note: currently it bounces off a relay server, so this isn't entirely true, but you can run your own, or shortly it will be running off holochain, the backend is very simple as the app was built to be decentralised in the first place so you could also roll your own, alternatively data can be easily encrypted end-to-end.)

  • Mobile, desktop and web app. Use it on all devices and have it always available everywhere. Also no setup required!, Not even a login.

  • Automatic bank transaction downloads. Then you can reconcile against your bank account to make sure your budget is 100% correct. And you can do this in less than a minute a day! (A currently working prototype is in the app. It uses a hidden web browser in the app and connects directly to the bank, secure, direct and no 3rd parties listening in the middle. This can be expanded to work with almost any bank.)

Project Status

The project is at a MVP stage. It works. It's been in production usage for quite a while without any data loss. So it is safe to use, and any updates are designed to be safe to your data.

The UI is not at production quality (It is modern, it just isn't polished nor intuitive in some places), and quite a few features are in progress and in testing.

The current build is available at https://ebudget.live

Developers

The app is written in Ionic 3 and runs as a PWA. It is easy to get started and nice to develop with. Changes are live loaded in the browser. All the scripts are there to build it for web, iOS and Android.

Todo: Developer getting started detailed docs. please bug me for it if you are interested!! I'll put a nice video here of installing everything, developing, building and deploying.

Vision of Budgeting Help/Resources

As part of eBudget I want to have some fantastic resources on budgeting and how to budget in different family and incomes situations. The end goal is to have a questionnaire that gets you to a starting point with your initial budget that can be tweaked from there. The idea is to make adoption as frictionless as possible.

For application help, I want an interactive how to guide on how to budget and track different events in the app, and how to use the app. You'll find a JavaScript UI automation kit in the sources which can show live demos and allow the user to interact with it. You can see it in action in the initial starting of the website at https://ebudgetapp.com

I also want to couple all of this with an active and connected community who can help and support each other on their budgeting journey. We want to keep people engaged and budgeting!

Author Note

eBudget has been in the making for many many years. It's been through a few rewrites and I have spent countless hours planning out features, nutting out design problems, coming up with business plans and dreaming of the possibilities. It's only now the technology to enable what I originally envisioned is finally coming to the world.

I intended for this build of eBudget to be a commercial application, but I think it's best chance of success is in the open source world and be a community based app. So I'm changing my focus from development, to fostering a community.

I think it is quite essential to make this app mainstream friendly and of a commercial quality. Realistically this is only going to happen with some paid core developers.

There are ways to monetarily support developers in an open source ecosystem, so if enough community support builds up around this app, I'd like to pursue some of the options (and I have some ideas for some new options) and compensate developers (and other non-developer contributers) for their support.

If you've read this far and the project sounds interesting, drop me a line, or make sure you give it a star on GitHub. That might be the most valuable contribution to get started!

Get In Touch

Get in touch with me if you are keen to give any development a go. I've got tonnes of ideas, notes and designs for features, but it's too much for me to handle alone. The future of this app depends on people like you... And we can all benefit from the improvements.

For hardcore developer chat ping me @ryan on https://chat.holochain.org Or for general chat join the telegram group https://t.me/ebudget

ebudget's People

Contributors

ryanhow avatar

Stargazers

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

Watchers

 avatar

Forkers

satroan etamoss

ebudget's Issues

holochain backend for sharing budgets

Creation of a holochain backend for sharing a budget.

The current sharing implementation can be found in replication.ts.

This could be adapted to use a holochain backend (An active sharing implementation could be selected on a per budget basis).

Most of the processing is done in the frontend, so the replication only needs to track a few fields for conflict resolution and tracking the replicated / still to replicate data.

The replication data structure that needs to be ported to holochain looks like

export class Repl {
    id: number; // A unique number used to ID and order records
    timestamp: number; // Timestamp of the transaction (used for conflict resolution)
    deviceReplId: string; // Unique ID for each device (In holochain this could just be the agent hash)
    checksum: number; // Data checksum (This is really a double check to ensure data hasn't been tampered with and can probably be removed for holochain)
    data: any; // Data being replicated
}

Note that it is fine to use locally generated IDs and timestamps for this application. Budgets that are shared as read/write will only be shared with trusted peers who have no intent to destroy the replication data structure. In the worst case event, the local budget will be able to be rolled back to a consistent state and then re-shared with other peers.

The functionality of the backend only needs to be very simple.

  • A simple write for new repl records
  • Query all deviceIds
  • Query repl.id > last downloaded repl.id for each deviceId

The frontend would need the ability to spin up a new private DHT for each budget so sharing of that budget can remain private and only between those given the share code.

Create a sample "starter" budget

At the moment, when the app is first opened, there is the option to create a new blank budget, or link to an existing one.

A blank budget is very confusing for anyone just getting started and wanting to see the application work.

A quick solution to demonstrate the application would be to go straight into a sample "starter" budget. Then they can view it from there and tweak it or start a new one.

The other option is to "continue" on from the demo budgets. This would use the demo system as a starter, and show the user what to do. Then they can continue it on themselves and try it.

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.