Skip to content

Repository files navigation

Jotly

A minimalist web-based bullet journal for rapid, distraction-free logging.

Overview

Jotly is a privacy-focused web application designed for practitioners of the Bullet Journal method. It prioritizes speed and simplicity, offering a digital space that mimics the "pencil and paper" experience without the friction of complex note-taking apps.

Features

  • Email-Only Account System: Simplified registration using only your email address.
  • OTP Verification: Secure account activation using 6-digit codes sent via email.
  • Multi-Scale Logs: Easily manage Daily, Weekly, Monthly, and Yearly logs.
  • Pencil-and-Paper Aesthetic: A custom, hand-drawn UI style built for focus.
  • Secure by Design: Built-in CAPTCHA, encrypted passwords, and CSRF protection.

Tech Stack

  • Language: Python 3.10+
  • Framework: Django 5.0
  • Database: SQLite (Default)
  • Other: Gunicorn, Nginx, Bootstrap 5

Getting Started

Prerequisites

  • Python >= 3.10
  • pip (Python package manager)

Installation

git clone https://github.com/YuunJiee/web-bullet-journal.git
cd web-bullet-journal
pip install -r requirements.txt

Environment Variables

Create a .env file in the root directory:

SECRET_KEY=your_django_secret_key
DEBUG=False
ALLOWED_HOSTS=jotly.yuunjiee.com,localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS=https://jotly.yuunjiee.com

Run Locally

python manage.py runserver

Project Structure

web-bullet-journal/
├── journal/              # Core application logic (models, views, forms)
├── bullet_journal/       # Project configuration and settings
├── deployment/           # Production configs (Nginx, Systemd, deploy script)
├── templates/            # HTML templates with minimalist UI
├── static/               # CSS, JS, and hand-drawn assets
├── .env.example          # Environment variable template
├── requirements.txt      # Project dependencies
└── README.md             # This file

Usage

After logging in, you can quickly add entries using the "Add Entry" button or navigate between different time scales (Daily/Weekly/Monthly) via the sidebar.

# To create a custom log entry via Django shell
from journal.models import Log, BulletJournalKey
Log.objects.create(user=user, title="My First Goal", content="Log content...", key=key)

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.

License

MIT

About

A minimalist web-based bullet journal for rapid, distraction-free logging.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages