e0c299279e661cc1b866da4d5ffbcc84906eb8f1
Chronological
Calendar, Diary, Photos A single application that combines regualr calendar events, sheduled maintainace and chores, journaling and photos in a single timeline view.
The Timeline
The main view shows a continuous,scrollable calendar grid with monthly sections on the left side. Days with events, journal entries or photos are highlighted with a corresponding icon. The right side shows a detailed, scrollable timeline view of the selected month, with all events, journal entries and photos displayed in chronological order. From either the calendar grid or the timeline view, the user can click on a specific day to see more details or add new entries.
Technical Details
- Build using go and HTMX.
- Single user application without any login or authentication.
- App uses server-side rendering with HTMX for dynamic updates.
- No database, all data is stored in local files.
Data Storage
- Data storage is configurable using a config file
- The following sources are configurable:
- Local path to .ics file for calendar events
- Local path to .ics file for diary entries
- CalDAV data that syncs calendar events from a remote server and local .ics files
- folder path for photos
- Photos are organized in the following manner:
- The photo root folder is configured in the config file.
- Inside the root folder, there are subfolders for each year (e.g., "2023", "2024").
- Inside each year folder the photos are stored directly.
- Photos are named using the following format: "YYYY-MM-DD_description.ext" (e.g., "2024-06-15_BirthdayParty.jpg").
- The diary entries are stored in an .ics file with each entry representing a journal entry for a specific day.
- Only one diary entry per day is supported.
- That entry is always an all-day event called "Chronolog" in the .ics file.
- The description field of that all-day event contains the actual journal text.
Frontend
- The frontend is built using HTMX for dynamic content updates.
- TODO: It is not yet deceided what CSS framework to use, if any.
Description
Languages
Go
64.9%
HTML
22.9%
CSS
8.2%
JavaScript
4%