TMS Assistant

Here’s another project that I worked on in the past: a standalone application for scripture memory.

TMS Assistant

The idea for the application was spawned by the TMS (Topical Memory System)–a Navigator package of bible verses (grouped categorically) intended for scripture memory. It really is a great toolset, having a good variety of worth committing to memory. I keep it installed on my computer and review verses every now and then using it, but I always notice things that I wish I could change (like giving more attention to usability).

Functionally, TMS Assistant is pretty capable, if I may say so myself. To be honest, I wish I could say I used it more, because I think there are some pretty helpful features available in it. I won’t really iterate over the features here because they are available on the project homepage.

Technically, the project was pretty fun. It started out as a winter break project when I was in school (Christmas 2009). I was able to accomplish a lot of what I wanted over break but I continued on into the school year after some neat suggestions from friends/family.

It was really my first really venture into .NET and specifically, C#. Being pretty accustomed to OO programming, it was a pretty easy venture. A lot of the GUI design was done with a visual editor, so I can’t claim a lot of skill in making the application.

Some of the technical parts that I found enjoyable were:

  • Text-to-speech. This part of the application builds on the Windows TTS components.
  • SQLite. A portable database that I’m sure I’ll bump into again (mobile development?). For a while I was using just a flat text file for data storage, so when I stumbled upon this gem I was in love.
  • Microsoft Word file generation. It really wasn’t super difficult to take one Microsoft product and combine with another, but enjoyable nonetheless.
  • Text comparison algorithms. This was probably where I learned the most. I’d worked on similar algorithms in the past but nothing to this extent. I ended up heavily leaning on some prior work by Matthias Hertel. Very interesting stuff.
  • A “check for updates” feature. It was as simple as parsing through the Google Code RSS feed
  • Web browser integration. Again, not super difficult but rewarding when I implemented it.

There may be other parts I enjoyed but to be honest, I haven’t looked at the source code in over a year and a half (which is probably a good thing–I would probably shudder looking at the way I know I implemented the “flip cards”).

I’ve considered porting TMS Assistant to a web application but the time and effort involved haven’t made me jump to do so. I have some other ideas that would be fun implementing (plus making it more usable, as mentioned), so maybe one day I’ll sit down and work on it.

At the end of the day, hopefully it’s a tool that can be used to further the kingdom and bring glory to God. The foundation of the application is that His word will never pass away. Because of such, committing it to memory is a very worthy discipline.