imag/doc/src/09000-todos.md
2017-08-25 14:04:18 +02:00

4.1 KiB

Todo

This section contains long-term todos. Some kind of roadmap, of one wants to put it that way.

Modules

Modules imag should offer which are not yet started or in progress, including a short note what each module should do.

First the modules which have been implemented in some way (not necessarily perfect or feature-complete):

  • imag-bookmark - A bookmark manager for web browsing.
  • imag-diary - A diary, or multiple.
  • imag-counter - Counting things.
  • imag-link - Linking imag entries to eachother
  • imag-notes - Note taking
  • imag-ref - Refering to files outside the imag store.
  • imag-tag - Tagging imag entries
  • imag-view - Viewing imag entries

Now the modules that are not yet started:

  • imag-bibliography - For handling bibliographic references when writing scientific papers. Like Citavi, for example.
  • imag-borrow - If you lend something to someone.
  • imag-calendar - Calendar tooling based on icalendar files. No sync functionality.
  • imag-category - For categorizing imag entries. Categories must exist before an entry can have a category.
  • imag-contact - Contact tooling based on vcard files. No sync functionality.
  • imag-cuecards - Cuecards for learning things, for example vocabulary.
  • imag-filter - command to read the store from stdin, filter out entries based on a predicate specified via the CLI and write the store back to stdout.
  • imag-git - wrapper to call git commands on the imag store no matter whether the current working directory is the store or not
  • imag-gps - Adding GPS coordinates to entries
  • imag-habit - Tracking ones habits (create habits and make sure you do what you've planned)
  • imag-image - Image referencing, categorizing, etc.
  • imag-item - Creating entries for Items in the store
  • imag-ledger - Ledger functionality like beancountcand others
  • imag-list - Managing lists
  • imag-mail - Mail handling tool, a CLI-mutt like tool.
  • imag-movie - Movie database handling, categorization and such things
  • imag-music - Music database handling, categorization and such things. Possibly a scrobble server.
  • imag-news - A RSS Reader
  • imag-project - A project planner, integrated with imag-timetrack and imag-todo
  • imag-rate - Attaching a rating to an entry
  • imag-read - Command to load the store and pipe it to stdout (usefull for piping/ chaining commands)
  • imag-receipt - Creating, categorizing, managing receipts
  • imag-shoppinglists - Managing shopping lists
  • imag-store - Low Level CLI Store interface
  • imag-summary - Meta-command to call a set of imag commands (configurable which) and displaying their outputs
  • imag-timetrack - Tracking time like with timewarrior
  • imag-todo - Tracking tasks like with taskwarrior
  • imag-url - Extracting URLs from enties, saving URLs to the imag store
  • imag-weather - Weather tooling for getting forecast and recording a history of weather
  • imag-weight - Weight tracker
  • imag-wiki - A wiki for personal use
  • imag-workout - Tools for tracking workouts. One sub-module will be step-counter tracking
  • imag-write - Command to read the store from stdin and write it to the filesystem store (usefull for piping/chaining commands)

Libraries

  • Ensure all libraries are implemented as extension traits rather than wrapping store types
  • Rewrite logger to allow config/env-var based module white/blacklisting and writing log to file

User Interface

  • Ensure store ids are always passed as positional arguments

Project structure and development

  • Move away from github
    • Have own issue tracking (possibly git-dit)

    • Find a solution to having no travis-ci via github anymore

    • Setup a viewer for the mailinglist archive

  • Add maintainer scripts to repository
    • To check patches for Signed-off-by lines
      • To automatically craft a reply to a contributor about a missing signed-off-by line
      • To automatically craft a reply to a contributor about a patchset that cannot be applied
    • To check pull requests for GPG signatures
    • To apply a patchset in a new branch