It is assumed that all software is stored on the sd card under /sd/apps. All user/app data is stored in /sd/appdata/[appname].
Applications are executed by reading the file and feeding it to Python's exec function. All screens should be defined as a class and implement a destroy() function which clears the screen. (The easiest way to do so is to create an array of LVGL objects in __init__() and then just iterate over that object calling obj.delete() for each. Each __init__ function should take a parameter called caller which references the previous screen for disposal.
Time is kept using the ESP32's on-board RTC. I may look at utilising a dedicated RTC module at some stage but for now the ESP32 will do. Power-wise I intend to use something along the lines of an Adafruit Powerboost 1000c LiPo circuit to handle charging and powering and what-have-you.
At the moment the project exists on a breadboard and it ain't pretty. I think if I do some aggressive wiring, I should be able to condense everything down to the footprint of the screen which should make for a nice enough PDA footprint. Then I'll need to design and 3D print a shell for it. (Which I have never done so that should be interesting)