topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • October 23, 2018, 10:36 AM
  • Proudly celebrating 13 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: NANY 2019 - Idea for an app synchronizing web service  (Read 193 times)

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 38,883
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
NANY 2019 - Idea for an app synchronizing web service
« on: October 09, 2018, 12:42 PM »
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.

Shades

  • Member
  • Joined in 2006
  • **
  • Posts: 2,385
    • View Profile
    • Donate to Member
Re: NANY 2019 - Idea for an app synchronizing web service
« Reply #1 on: October 09, 2018, 12:57 PM »
Sounds like a base installation of NextCloud on your server could do the trick.

Has everything you want practically out of the box. And can be expanded upon with free/opensource/commercial add-ons. Am using it myself on my own server and till now, it works absolutely great. Slightly slower than Google drive or other cloud providers as my own connection is more limited in bandwidth. For my uses, the basics runs fine on a 10-year old Dual Core CPU with only 2GByte of RAM.

Donation coder would require more as many more users can be expected to make use of this functionality. Much more RAM and PHP caching systems would already be enough to make it a smooth experience for anyone.

* Edit * - added the link.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 9,763
    • View Profile
    • Donate to Member
Re: NANY 2019 - Idea for an app synchronizing web service
« Reply #2 on: October 09, 2018, 01:53 PM »
You could actually just do it on AWS.  As more users start using the project, no matter the platform, it will require more resources though.  That's the major downer to me when I first did this on one of my instances- for me, it's almost nothing.  But could I really afford to offer that to more people?  The answer for me was no.