mediafinger / yournaling

An app to journal, to link memories, photos, locations and combine them to a travel log
Other
0 stars 0 forks source link

README

Journal your journey
... on yournaling.com

The Yournaling app will become a place where single people, couples or teams can:


The points below explain technical concepts of the yournaling app.

Dependencies

Installation

When you have the dependencies installed:

Deployment

Did not happen yet. Will most likely be setup with Kamal to a VM or dedicated server.

Contribution

Is welcome. Please get in touch with @mediafinger before opening a PR that would add or change larger parts. This should also be done when picking an open issue, to discuss possible solutions.

YID - Yournaling ID

YID are sortable unique IDs which contain:

YID are:

YID are constructed like this:

YID creation is slow compared to integer IDs or UUIDs, they are long and comparing them is more costly than comparing UUIDs. Their benefits are that they directly reveal the type of object (which is a massive bonus when debugging or sharing object identifiers) and that they are sortable at every moment, without additional database queries (which can speed up the app a lot).

Any YID can be fed to a search, which will determine the object type before returning the correct object. This is mostly useful for debugging and therefore might only be implemented as an internal endpoint or disolver service which will return the actual object (or a 403 or 404 error).

Instead of using the YIDs in URLs directly, we convert them to their Base64 representation to be URL-safe. The controllers use a custom finder method to decode them back to the plain text YID format automatically. Probably other symmetric encoding / decoding encryption algorithms are faster than Base64 and we update the implementation.