MyDay architecture

MyDay is a browser app that talks straight to the user's own MySQL or PostgreSQL database, with no backend of its own. Every action follows the same path: one straight pipe from a browser event to a stored procedure and back. The database is the source of truth, and the screen only shows its state.

The path every MyDay action follows Components send events to main.js, which calls the model, then the database access layer. Encryption, the connector, the driver and the relay lead to stored procedures. The procedure's result comes back up to the model, which announces the new list back to the components. A connection box supplies connections, and on PostgreSQL a push box feeds changes from the database back into the model. The page in the browser DOM events HTML and CSS Componentscomponents/*.js: render, and send events Wiringmain.js: hears each event, calls the model Modellib/model.js, lib/items.js: the list and its rules Database accesslib/writes.js, lib/remote.js: procedure calls Encryptiondb-auth: titles and descriptions, in the browser Connectordb-connector: one call, for either server Driverpg-ws or mysql-ws: the server's protocol Relaydb-ws-relay: WebSocket bytes to TCP DatabaseStored procedures: every rule and every write Connectionconnect.js, account.jslib/connection.js, webway Push, PostgreSQL onlylib/push.js: applies each changeand keeps active tabs connected Re-render Result