I had an idea for a web service that would be useful to my android apps and could be quite useful in general.
It's something I would be willing to collaborate on, though I'm not sure I have the time to focus on it unless I make it my nany 2019 item.
Background: Right now I offer synchronization in my android apps by using the dropbox API, which has an api that can assist in reading/writing files from multiple devices in a shared account.
This works but can be less than ideal for synchronizing data because it means its only appropriate when you yourself want to sync data from different devices of your own.
It's not useable by an app where you wanted to sync data with a friend because you they need to be using your same dropbox account and credentials.
So if you had an app, say an app where you might allow multiple people (say only 2 or maybe 100) to form adhoc sharing of data, what you need is an online "service" where it's easy to create a new "group" account where you could simply tell your friends the password and account id and they could all put that into their app to sync data through it.
So my idea is for a simple service that makes it easy to create such group sharing/synchronization accounts and save/load data through it.
As I was imagining it, the web service would have a back end and a front end. In the back end an administrator could create different application profiles. An application profile would have an ID, and some configuration settings describing the maximum size of groups and data files. And would show some statistics about how many groups were created for it, bandwidth, etc.
The front end would be for users to create new groups for a specific application. Each group would be tied to a specific application and have a unique password. Alternatively you could have user accounts and let users create and manage groups so that they could identify different roles/permission levels for a given group, with different passwords for each role.
So here's how the system would be used:
As the developer of some apps, I would install this web service on the donationcoder server and only I would have access to the back end. I would add each of my android apps to the back end.
Then in each app, the app would offer a synchronization mode that used this web service. If a user chose to use the web service as the synchronization method, they would be asked for an id and password.
They key is that this id and password is not specific to a person, it's specific to the GROUP of users they want to have shared sync access to the data in that app. They would then share that id+password info with the friends that they want to share/sync data with, etc. You could simply make up a new id/password if you wanted to share/sync with a different group of people, etc. Knowing the id+password is akin to joining the synchronization group for that app.
Just think of the web service as having a folder for each combination of APPID+GROUPID+PASSWORD, which it uses for synchronization.
The web service would limit the possibilities of being exploited for other uses by having a very limited api and strong restrictions on the number and size and format of files that it would store. Perhaps each app would just allow one xml file, under 100k, etc.
The api would just provide a few functions for uploading and downloading files.