Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Budgets with multiple users #158

Open
MrDiba opened this issue Apr 10, 2018 · 5 comments
Open

Feature request: Budgets with multiple users #158

MrDiba opened this issue Apr 10, 2018 · 5 comments

Comments

@MrDiba
Copy link

MrDiba commented Apr 10, 2018

I think it would be a great addition if it would be possible to manage budgets with multiple users.

To accomplish this I was thinking about a option to connect to a database on a self hosted server.
When a user has a internet connection the data will be synced directly and when the user is offline the data will be stored locally on the phone until there is a internet connection.
If the user is offline and there is a change on the server, when het user goes back online the two different databases will be merged.

@brarcher
Copy link
Owner

One of the design goals for the application is to not require the internet. If the request requires the internet to accomplish, is it possible to have an add-on for this application that would provide the feature? I'm not familiar with how an add-on may work, but perhaps that component could use the network.

@MrDiba
Copy link
Author

MrDiba commented Apr 11, 2018

I'm not familiar with programming a add-on (or Java in general) but I would like to look in to this subject.

Not requiring the internet to use the application is a great design goal and I would not remove that.

My idea was to make a button in the settings menu where there is a ability to connect to a server. If a user does not use the feature, the app works like it currently does. If a user choose to use a server the app will still use its own database but when it has a internet connection it automatically shares this database with the server like a mirror. This way the data is always backed up and a user does not have to be always connected to the internet to make the app work.
When multiple users use the same database on the server and there is a conflict because some device has not shared it's database the databases will be merged, resulting in that all the transactions will be shown and if a user deletes a transaction the transaction will be removed from the other users

@brarcher
Copy link
Owner

My understanding of plugins and Android is that the plugin is a separate application that the based application can check for an communicate to. Here is an example of such a setup:

http://androidsrc.net/creating-android-app-plugin-architecture-tutorial/

The plugin application would be responsible for connecting to the network and providing an interface to the base application. The base application would need to search for the plugin and use it if it were available. I'm not sure the security implications of the setup as I've not looked into it that much.

I would gladly review a proposed design and related pull requests for this application. I'll probably not pursue this feature independently, however, and instead rely on someone from the community contributing it.

@Jas2Ma
Copy link

Jas2Ma commented Jul 11, 2018

Since my wive and I share a common bank account and we wanted to structure our budgets, I thought about an app synced to our nextcloud to monitor and analyze our spendings.

Your app is great for what I want, just need to be synced to an (non existing) nextcloud-interface. I never developed an nextcloud app before, but really would like to.

Are you interested in an optional synchronization feature for your app?

@brarcher
Copy link
Owner

I think the way forward would be some sort of an plugin for the app, which would be responsible for the nextcloud communication. If you were interested in developing a separate application which could be such a plugin and propose the hooks for Budget Watch, I could help review the design and changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants