Karate Journal

Karate Journal is a web application that lets you keep track of your notes on basic techniques, forms, sparring, practices with seniors, etc. Since it is a web application, you can set it up to be accessed from anywhere you choose, by anyone you wish.

Features

  • Create, update, delete, or display entries.
  • Search your journal for a keyword, and get back a list (ordered by relevance determined by a super-secret, highly advanced search algorithm) of entries that contain that word, and snippets of the entry with the keyword highlighted.
  • Index page that neatly breaks down the entries by category.
  • Supports a simple wiki-style markup language that lets you format your entries without writing verbose HTML.
  • Database backed, and supports any database that the Rails web framework supports.

Screen shots

The index page Create a new entry Display an entry Search the journal

Demo

Please email me if you would like to see a demo.

Download

Code coming soon…

History

The need for the Karate Journal is rooted in the need of every martial arts student to take good notes. Taking good notes and reviewing them periodically helps you make progress, as it keeps you from “re-learning” the same things over and over again.

I was always encouraged, by my instructors and other seniors, to keep good notes. I tried several times to keep notes the old fashioned way, written down in a notebook. However, this left me with nothing more than an unorganized heap of notes that I could never find anything in. I wanted something more organized, that I could access from anywhere (I often plan my karate class while on lunch at work, and having these notes available would help immensely).

So the solution, of course, was a new web app. Karate Journal was my second Rails app. I decided to go with Rails again because I really liked working with it on the Addressbook, and I still had some learning to do. Plus, since the Karate Journal was simply a CRUD application with some search functionality tied in, Rails seemed like the perfect fit.

Afterthoughts

I really liked how the Karate Journal turned out. The wiki markup language is strong enough to support everything I like to do when writing documents (headings, bold text, nested lists, etc). The search functionality works well. And, in general, it keeps my notes very organized.

There are however a few things that still need to be done. One is how the notes are associated with one another. For example, during a special practice with a senior instructor, we will often cover several topics, and I’ll often learn something new about each one of the topics. This would naturally lead me to break up the topics into separate entries, and keep the notes there. However, I like to write notes on the flow of the practice, the order the subjects were covered, who was there, when it happened, where it happened, etc. So, I opted to create a “Senior Visit” entry type. However, now I may have notes on a technique in that technique’s entry page, as well as in one or more senior visit pages. So far, the search functionality has helped me find anything and everything I have been looking for. But, as I add notes, over time, I know that finding what I want will become more difficult. So, I need to come up with a way to tag snippets of an entry. Then, I can change the individual technique pages to not only display the notes that are stored in that technique’s entry, but also dynamically pull in the tagged snippets from elsewhere.

The second is to make the categories on the index page hidden by default, and change the category names so that when clicked, the entries in that category blind down.