gitter-badger / ashaw-notes

Note taking made easy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Description

Build Status codecov License: MIT

ashaw-notes was created to allow for quick and easy note taking and retrieval of information and personal context. With a keen focus on speed of entry and filtering, ashaw-notes allows quick overviews of the previous day, month, and year for time tracking or simple daily standup updates.

Rewritten completely in python 3 (originally a php application), this application supports:

  • Multiple backends (flat text file or Redis datastore)
  • Note CRUD
  • Note Searching/Filtering
  • Backend data porting (for trying out various backends)
  • Extensibility - Adding in multiple connectors

Installation

Clone or download the ashaw-notes github project.

You can easily downlaod the repository as a zip file here. Once downloaded, extract it to a local directory.

Make sure you have Python 3 installed on your system, if you don't download the latest version here.

Install the requirements

$ pip3 install -r requirements.txt

Note to Windows users: quicknote.py uses readline to allow for entry suggestions, it is not possible to install this from the requirements file but instead must be compiled on your local machine.

Configure ashaw-notes

Edit notes.config, decide if you want to use a redis backend or a local file. There are benefits to both.

Redis offers:

  • global data storage and retrieval
  • an ability to share notes on any network
  • future options to create and retrieve notes on mobile devices
  • redundancy (when configured with Redis Sentinel)
  • atomic updates to data changes (transactions)
  • potentially faster filtering on very large datasets

Local files offers:

  • secure note storage
  • less latency on data retrieval
  • offline note taking
  • automatic backups on destructive updates

For running ashaw-notes on Redis, you can either run your own Redis container/service or use a free Redislabs account as notes are very small in size. Notes taken from 4 years of use requires about 12MB of memory. The system attempts to use a little memory as possible, resulting in many sets being ziplists.

Running ashaw-notes

After configuring the application execute quicknote.py. You will be presented with an input box to add in your first note. After pressing "Enter" your note will be saved and the command will terminate.

For speedy note inputs it is recommended that quicknote be bound to a shortcut key. A common key combination is "Ctrl + Shift + ~"

Migrating Notes

If you're wanting to sample multiple backends (or if you have a local notes file you'd like to import into Redis) you can use the migration.py located in the scripts directory. Simply execute the script with the modules you want to use as parameters. For example,

$ ./ashaw_notes/scripts/migration.py local_notes redis_notes

will migrate the notes in your local system file to redis while

$ ./ashaw_notes/scripts/migration.py redis_notes local_notes

will migrate all the notes stored on an external redis server to your local machine.

Running the notes GUI client

ashaw notes is a two-staged application. quicknotes.py allows for data entry and the QT GUI lets the user view and filter notes stored.

To run the GUI client, you must first have QT installed on your local system. Once the prerequisites are met you can run the GUI by executing

python3 ashaw_notes/gui/main.py

A UI will popup with a basic notes interface and a filter box at the bottom of the window. Typing in this filter box will allow you to quickly search your notes.

About

Note taking made easy

License:MIT License


Languages

Language:Python 100.0%