MemoryLane
It’s not about organizing photos we will never look at - it’s about taking a people-first approach to link digital assets to personal memories.
Asset Processing
Hashes
Hash are stored as MD5’s of the original file. We also store an eTag from S3. The MD5 is for clients to determine if an asset already exists. The S3 eTag is for syncing with S3.
Meta Data
EXIF data is parse and stored on a Photo node. Data stored is:
- Make
- Model
- Date Taken (trying for the best of the various date fields)
- Lens Make
- Lens Info
Previews
For each asset we generate a preview asset, and store that previews location in the graph.
Photo Previews
For photos we store webP file locations on the Photo node.
- Full (1000 wide)
- Medium (500 wide)
- Square-medium (500x500)
- Square-small (100x100)
Blur Hash
To support rapid loading and good UX, we produce and store a blur hash of the large preview file as a string on the Photo node.
Dates
Creation dates are stored in two ways. First on the relevant asset type node, e.g. (Photo node) a ‘DateTaken’ is stored. Dates are also stored in nodes for ‘Month’, ‘Year’ to allow for quick filtering (See [Date Nodes][/models/dates.go]).
Geographic Places
Places are a map layer for collecting and sorting coordinate locations parsed from metadata and stored on relevant asset type node, e.g. (Photo node).
People
<!--- //TODO update this when people are implemented -->Machine learning can be used to detect faces and tag individuals. People tags can be stored as nodes connected to the relevant asset type node, e.g. (Photo node).
Notes
To add a new command line command
$HOME/go/bin/cobra add {name of command}