[Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

Laura Creighton lac at openend.se
Sat Jul 18 06:18:38 CEST 2015


I have a plug in usb keyboard that I can just plug into my tablet.
It  works great for data entry.  I don't know anything about windows
tablets though, this is working for android.  You need a usb port
that is capable of being both a slave and a master.  Most of them
can do this these days -- if you send me the model number of the tablet
I can look that up for you.

>1) Find a way to always keep the laptop and tablet synchronized.

All the cloud storage services want to sell you something that
does this.  So does Dropbox.

>2) Have both devices write a backup copy of the data to the server
>whenever a change in the data occurs.

This may be overkill.  Plus it may not be what you want.  You may
be happier with 'the server gets the new data whenever I push it
to there'.  Or the cloud gets it then.

>3) In case of wireless network failure, the software would realize
>this and know that whenever connectivity is restored to write any data
>that has changed in the interim.
>4) The backup data on the server would have to be securely encrypted
>against whatever hackers might try to to access or intercept the data.
>(Hmm.  What about the communications between the laptop and the
>tablet?)

If wireless, yes, if you are plugging your tablet into your laptop
>
>Is this a sensible way of approaching at least this one project?  Of
>course, I have not a clue as to how to do any of this (yet!).
>
>As always, many thanks in advance!
>
>P.S.:  My wife has researched existing software and has found
>everything lacking.  She wants custom solutions to her custom needs.
>Oh, joy.  But very interesting!
>-- 
>boB

The idea is to use as much off the shelf technology to do what you
want, and not reinvent the wheel.  Especially when it comes to
security issues that, worse case scenario, have all the parents
suing you for not keeping things that are required to be private
from being hacked.

Before there was cloud computing, and smartphones, we wrote a client
server app that handled the billing situation for the local energy
company -- plus all their power outages, service apps etc, etc, etc.
It took 4 of us nearly a year to get the permissions down right for
all possible cases.

Doing the same sort of thing for our mobile app using existing
cloud libraries took about 3 weeks.  Only some of that speedup was
due to the fact that we knew what we were doing a lot better the
second time around, and we had really extensive unit tests from
the old way of doingf that we could slightly refactor and then
make sure they passed under trhe new regime.

You haven't picked yourself an easy one here ...

One warning -- the trick to high speed performance for such things is
to copy as little data as is needed from one device to another (and
then let the devices regenerate a lot of what they need from the
basic necessary set).  But the trick for _developing_ and
debugging such things is to send more information, including a
bunch of handshaking things like 'I am trying to open the MongoDB
Database now.  Ok, that worked, now I am adding new job tickets ...
and so on and so forth.

If you do not do things like that, the time will come when you sit
pointing at your server saying 'You aren't doing anything.  Why aren't
you doing <whatever it is you want it to do>?"  Utterly frustrating.
YOu need to build a verbose way into what you do so you can have your
server tell you what it thinks it ought to be doing, and then a
way to shut the server up when you go into production.

But I would go google for cloud services that have data synchronisation.
(Which is pretty much all of them, that being the point, after all).
You want to build your app out of some of these ready made parts, or
risk that  your wife's students will all be in university before you are
done with your app. 

Laura



More information about the Tutor mailing list