TUI-Journal

TUI-Journal is a terminal-based application written in Rust that allows you to write and manage your journal/notes from within the comfort of your terminal. It provides a simple and efficient interface for creating and organizing your thoughts, ideas, and reflections. TUI-Journal supports two different local back-ends: a plain text back-end in JSON format and a database back-end using SQLite.

Demo

Features

Roadmap

Back-ends:

Ensure you have Rust installed on your system.

Linux Dependencies:

Make sure the OpenSSL development package is installed on your system.

Install with default features:

To install TUI-Journal with default features (SQLite and JSON), you can use cargo to install directly from crates.io:

bash cargo install tui-journal

Install with Specific Features:

You can choose to install TUI-Journal with specific features enabled or disabled by customizing the cargo installation command. To install TUI-Journal with only the JSON back-end feature, use the following command:

bash cargo install tui-journal --no-default-features --features json

To install TUI-Journal with only the SQLite back-end feature, use the following command:

bash cargo install tui-journal --no-default-features --features sqlite

NetBSD

On NetBSD a pre-compiled binary built with default features is available from the official repositories. To install it, simply run:

bash pkgin install tui-journal

Usage

Once installed, you can run TUI-Journal by typing tjournal in your terminal:

bash $ tjournal

To view the available arguments and commands, you can use the --help or -h flag:

```bash $ tjournal --help

Usage: tjournal [OPTIONS] [COMMAND]

Commands: print-config Print the current settings including the paths for the backend files [aliases: pc] help Print this message or the help of the given subcommand(s)

Options: -j, --json-file-path Sets the entries Json file path and starts using it -s, --sqlite-file-path Sets the entries sqlite file path and starts using it -b, --backend-type Sets the backend type and starts using it [possible values: json, sqlite] -w, --write-config write the current settings to config file (this will rewrite the whole config file) -v, --verbose... Increases logging verbosity each use for up to 3 times -l, --log Specifies a file to use for logging (default file: /tui-journal/tui-journal.log) -h, --help Print help -V, --version Print version ```

Configuration

The configuration for TUI-Journal can be found in the config.toml file located in the configuration folder within the TUI-Journal directory.

Here is a sample of the default settings in the config.toml file:

```toml backend_type = "Sqlite" # available options: Json, Sqlite. Default value: Sqlite.

[export] defaultpath = "" # Optional default path to export journal content. Falls back to the current directory if not specified. showconfirmation = true # Show confirmation after successful export.

[jsonbackend] filepath = "/tui-journal/entries.json"

[sqlitebackend] filepath = "/tui-journal/entries.db" ```

Acknowledgments

TUI-Journal would not have been possible without the following open-source crates:

These crates have greatly contributed to the development of TUI-Journal, and the project extends its gratitude to the maintainers and contributors of these fantastic open-source libraries.

Contributing

As the author of TUI-Journal and being new to the open-source community, I would greatly appreciate any contributions from experienced developers. Your contributions can help enhance the functionality, usability, and overall quality of TUI-Journal.

If you have any ideas, bug reports, or feature requests, please don't hesitate to open an issue on the TUI-Journal. Your feedback and input are invaluable in improving the application.

If you would like to contribute code, documentation, or any other form of assistance, I am open to collaboration. Please reach out through the GitHub repository and let's discuss how you can contribute to TUI-Journal.

Thank you for considering contributing to TUI-Journal. Your support is highly appreciated!

License

MIT