Opinion: for a cross-platform user interface, use a web interface.
In python, you need to use a third party library to create a user interface.
MVC Design: Model * View * Controller
Model: the representation of the data you're working with (typically a database)
View: how you present your model data (e.g. a web page)
Controller: retrieves data from model and passes it to view for display (e.g. a python script)
Model doesn't care how data is viewed; View doesn't care how data is stored.
Flask & Django are python frameworks that employ MVC design.
Avoid PHP - it grossly violates MVC design.
If you need a database, use only one of these two:
*PostgreSQL - must be installed on a server; can handle many users, easy support for indexing points on a sphere, e.g. cone searches (q3c)
*SQLite - already installed on your computer. For your convenience.
* Object Relational Mapper (ORM) - sits between a database and objects/classes
* You interact with an ORM in an individual Session
* SQLAlchemy: Demitri, Brian C, ...
... # create org and student objects
session.commit() # saves data
***Advice: Learn to write in an object-oriented coding style***
* APIs: Dan F-M, Tom R, Brian C, Demitri M, ...
* To let other people build their own applications on top of your data, you will need to design an API, e.g. using Flask, and host it on a server. Example: http://api.sdss3.org/api_spectrum.html
* In principle, the View can stay the same as the Model changes, but the Controller must change if the Model changes.
(The API can stay the same as the data format changes.)
e.g. CFITSIO conversion: https://github.com/astrojs/fitsjs
Question: How to figure out how new a computer needs to be to run a particular application?
Answer: everything discussed here can be run on a Raspberry Pi $30 computer... can get a free Windows license for same.