matthewchivers / dodl

MIT License
1 stars 0 forks source link

`dodl` MVP and Vision #1

Open matthewchivers opened 1 month ago

matthewchivers commented 1 month ago

MVP Implementation for dodl

Overview

dodl is a command-line tool designed to simplify the creation, tracking, and management of documents. It allows users to quickly create new entries, track existing files, and manage metadata such as tags and modification times. The tool is especially useful for note-taking during meetings, where users need a fast and efficient way to generate and organise files without manual navigation and setup.

Purpose

The primary purpose of dodl is to streamline the process of creating and managing documents by providing an intuitive command-line interface. This tool is useful for:

Features

Initialisation

Entry Management

Create a New Entry

Track an Existing Entry

Get Entries

Tag Management

Add a Tag to a File

Get Tags of a File

List Files by Tag

Status and Metadata Management

Check Status

Refresh Metadata

Metadata Structure

Metadata for each tracked file is stored in a JSON file (.dodl/dodl_metadata.json). The metadata includes:

Example Metadata Structure

{
  "entries": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "type": "meeting-note",
      "path": "year/month/day/meeting-notes-7-10-24.md",
      "date_created": "2024-07-10T00:00:00Z",
      "date_started_tracking": "2024-07-12T00:00:00Z",
      "date_last_accessed": "2024-07-12T00:00:00Z",
      "date_last_modified": "2024-07-12T00:00:00Z",
      "tags": ["meetings", "notes"],
    }
  ]
}

Workflow Examples

  1. Initialise the Register:

    dodl init
  2. Create a New Entry:

    dodl new entry meeting-notes
  3. Track an Existing Entry:

    dodl track entry /path/to/existing/meeting-notes.md
  4. Add a Tag to a File:

    dodl add tag /path/to/meeting-notes.md meetings
  5. Get Tags of a File:

    dodl get tags /path/to/meeting-notes.md
  6. List Files by Tag:

    dodl get entries --tag meetings
  7. Check Status:

    dodl status
  8. Refresh Metadata:

    dodl refresh

Intended Users

dodl is designed for:

By implementing these features, dodl aims to provide a streamlined and efficient experience for creating, tracking, and managing documents, making it an invaluable tool for daily note-taking and document organisation.

matthewchivers commented 1 month ago

Rough outline for remaining work: