This is a simple local‑first desktop application for tracking daily reading activity. It is designed to feel like a journal organized around a calendar. Each day you can record what you read, attach a markdown summary to each entry, preview it, search across your history and export any day to a standalone .md file.
- Calendar‑first experience – The main window is a calendar. Click a date to view or edit that day’s reading log.
- Reading entry management – For each day you can add, edit or delete multiple reading entries (books or papers) with optional authors, pages/sections, a markdown summary and minutes spent.
- Entry‑level markdown summary – Every reading entry can have its own markdown summary. Summaries are previewed by default and can be edited via a toggle or double‑click in the entry dialog. If you need more space, open the full summary editor to work with an enlarged view where you can switch between a side‑by‑side edit/preview mode and a full‑preview mode.
- Search – Quickly search across entry titles, authors and summaries. Clicking a result takes you to the corresponding day.
- Local persistence – All data is stored locally in a SQLite database. The app restores the previous state when reopened.
- Export – Export any day to a clean markdown file with the date and reading entries (including each entry’s summary).
.
├── app
│ ├── main.py – Application entry point
│ ├── config.py – Central configuration constants
│ ├── models
│ │ ├── __init__.py
│ │ ├── day.py – Dataclass for day summaries
│ │ └── reading_entry.py – Dataclass for reading entries
│ ├── storage
│ │ ├── __init__.py
│ │ └── db.py – SQLite access layer
│ ├── ui
│ │ ├── __init__.py
│ │ ├── entry_dialog.py – Dialog for adding/editing entries
│ │ └── main_window.py – Main window and widgets
│ └── utils
│ ├── __init__.py
│ └── markdown_helper.py – Markdown to HTML conversion
├── requirements.txt – Python dependencies
└── README.md – This file
-
Install Python 3.9+ – Ensure you have a modern Python interpreter installed (e.g. Python 3.9 or newer).
-
Install dependencies – From the project root, run:
pip install -r requirements.txt
This installs the minimal dependencies:
PySide6for the GUI andmarkdownfor converting summaries to HTML. -
Run the application – Launch the app with:
python -m app.main
The first run will create a local SQLite database in the project directory. The application window should open showing a calendar. Click any date to begin logging your reading.
- Selecting a date – Click a day on the calendar. Days with existing reading activity will be highlighted. The right pane updates to show the reading entries for the selected day.
- Adding an entry – Press the Add Entry button. Choose whether it’s a paper or a book and fill in the details. Authors, pages/sections, minutes spent and a markdown summary are optional.
- Editing or deleting an entry – Select an entry in the list and press Edit Entry or Delete Entry.
- Writing a summary – When adding or editing an entry, a summary preview is shown by default. Click the Edit Summary button or double‑click the preview to edit the markdown. Summaries are saved with each entry.
- Searching – Enter a keyword in the search bar at the top and press Enter. Results list the dates that match across titles, authors and summaries. Click a result to jump to that day.
- Exporting – Press the Export Day button to save the selected day’s reading log to a
.mdfile. Each entry’s summary is included in the export.
Enjoy using your new reading journal!