imag/doc/src/09000-todos.md

104 lines
4.5 KiB
Markdown

# 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):
- [x] imag-bookmark - A bookmark manager for web browsing.
- [x] imag-diary - A diary, or multiple.
- [x] imag-counter - Counting things.
- [x] imag-link - Linking imag entries to eachother
- [x] imag-notes - Note taking
- [x] imag-ref - Refering to files outside the imag store.
- [x] imag-tag - Tagging imag entries
- [x] 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
- [x] Rewrite libimagerror to be based on `chain-error` crate. This basically
removes our error infrastructure, though existing traits and convenience
functionality should be kept (for example the `MapErrInto` or the `IntoError`
traits), as much as possible). If the switch to `chain-error` would require
too much code to be rewritten, reconsider.
- [ ] 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