BoochJournal is a web app for writing daily journal entries of various types.
NOTE: This is a work in progress. Most (if not all) the features are not yet implemented.
- Multiple journals
- You'll always go to the last journal you were in
- So if you only have 1, this feature won't get in your way
- Each journal has a name
- Each journal is configured and stored separately
- You'll always go to the last journal you were in
- Journals have multiple entries
- Each entry has an entry type
- Entries will have a created_at and updated_at dates
- Journal entries will be written in Markdown
- Entry types
- An entry type can have a template
- The template can contain markdown
- The template can contain CSS for the Markdown-to-HTML view
- An entry type can have a template
- All data should be stored in a central location
- But I shouldn't have to worry about conflicts
- So we'll have to deal with conflicts
- Ideally, put the entries in files in a git repository
- This will likely require a server-side component
- Let the user know if they're likely to be creating a conflict
- Ideally, put the entries in files in a git repository
- So we'll have to deal with conflicts
- Ideally, the entries should be encrypted
- Will have to look into options for encrypting files in git but being able to diff changes
- But I shouldn't have to worry about conflicts
- Easy navigation between entries
- Via several axes
- Date
- Entry type
- Tags
- Search
- Via several axes
- Svelte
- TypeScript
- Elixir/Phoenix (if any server-side support is required)
This is primarily to give me a tool to use for my own journaling. It's also to give me a little side project where I can learn new tools.
- Provide a tool I can use for journaling
- Learn Svelte
- Learn CSS Grid
- Learn/show what good UX, UI, and design look like
I may eventually turn the web app into a mobile app. In that case, I might learn Swift or Cordova or something else.
First, install all the package dependencies:
npm install
To run the development server:
npm run dev &
open http://localhost:5000
To build the app and run the server:
npm run build
npm run start &
open http://localhost:5000