[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?

Steven D'Aprano steve at pearwood.info
Sun Jul 19 08:27:13 CEST 2015


On Sun, Jul 19, 2015 at 12:49:50AM -0500, boB Stepp wrote:

> In this thread, I kept it very general on purpose.  I was probing this
> community for their thoughts on two things:  1)  Should I make the
> software web-based or desktop-based?  2) What would be the best way of
> handling the data involved, particularly the data that impinges on
> student privacy concerns.

Not to be a wet blanket, but this is way off-topic for this mailing 
list. However, you're a regular in good standing, and we don't have a 
strict rule about staying on-topic (such rules are tiresome and annoying 
if they allow for no exceptions), so let's go with it.

I would start with the simplest thing that can work. With an initial 
user-base of one person, especially one who is quite computer 
literate, you don't have to worry about backwards compatibility and can 
feel free to experiment and expand the software as needed.

So I would start with something that just runs on the local machine. 
Since your missus intends to use a tablet, you may want to investigate 
Kivy for your GUI needs.

http://kivy.org/

I'm not sure if it runs on Macs, but it should work on Android, Windows, 
and Linux, and of course it is entire Python-based.

Once you have a proof-of-concept working for your one user, then you can 
consider how to expand on it by moving the data to a server and possibly 
giving access to others.

In the meantime, keep everything on the local machine. Take backups of 
the data by exporting to some sort of regular file which can be zipped 
up and copied onto a USB stick and locked in a safe. You might consider 
an encrypted file system if the data is particularly sensitive. But 
that's a separate issue from the application itself.

If you use SQLite for the data storage, it should have a simple "dump" 
function that would let you export the database to a standard SQL dump 
format, and reconstruct the database from said dump if needed. Otherwise 
you would have to write your own export/import routines.

If you make the decision to provide multi-user access, then you have a 
large number of problems to deal with:

- security of the database server;
- access to the database itself;
- what to do if the link between the app and the database goes down?
- user authentication and permissions (you don't want little Freddy
  changing his grades, or accessing other people's records);

etc. Why deal with those things from Day One if you only have one user? 
You don't even know if this application is going to be useful. Start 
with a proof of concept to prove that it is worth the extra effort. 
Perhaps your wife will decide that the application isn't useful at all, 
or that it is useful, but it can remain a single person app and no 
shared database is needed. But you won't know until you have something 
to actually experiment with.



-- 
Steve


More information about the Tutor mailing list