Skip to content

dv-fenix/research-journal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Research Journal App

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.

Features

  • 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).

Project structure

.
├── 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

Setup

  1. Install Python 3.9+ – Ensure you have a modern Python interpreter installed (e.g. Python 3.9 or newer).

  2. Install dependencies – From the project root, run:

    pip install -r requirements.txt

    This installs the minimal dependencies: PySide6 for the GUI and markdown for converting summaries to HTML.

  3. 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.

Usage

  • 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 .md file. Each entry’s summary is included in the export.

Enjoy using your new reading journal!

About

Made this for myself. You found it for a reason. Simple reading journal, clean notes, fast lookup.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages