WordSleuth: Anagram finder and more…

WordSleuth is an anagram, sub-word, and word combination finder that is written using MeteorJS and MongoDB. The front end is done in HTML, using Meteor’s version of HandlebarsJS, called SpacebarsJS. For client and server side scripting, I used CoffeeScript, which is described as “a neat little language that compiles to JavaScript. I like all the things you can do with JavaScript, but for me I find CoffeeScript easier to write, read, debug, create objects (which is a strange and vague thing in JS), and when/if I do have to compile it back to JS, I’m left with JS that is JSLint style, with things done automatically, like variable declarations before use, etc… The only times I had to use .js files instead of .coffee files is for Global variables for MongoDB collections. CoffeeScript has no scope outside of a .coffee file. Therefore to use something like Anagrams = new Meteor.Collection('anagrams') in both client and server (which is essential) you would have to have a globals.js file with nothing more than var Anagrams;. This app uses three distinct MongoDB collections, so I had to declare those three global variables, that’s all. Also, to keep the Facebook “like” buttons from disapearing, I used about 10 lines of JavaScript from Facebook to keep it living. Those two files are the only JavaScript that lives in this app. I should also note that I used the following packages in this app:

  • bootstrap-3 (for styling)
  • bootstrap3:glyphicons (for cool glyphicons)
  • moment (for time and date formatting)
  • coffee-script (for scripting)
  • iron:router (for page routing)

Wordsleuth’s functionality let’s you choose from different dictionaries, it’s main stock dictionary being the Scrabble (TM) Player’s dictionary. Other languages are slated for inclusion, such as Spanish, German, and French. Also, I plan to make native Android app at some point, as I am unhappy with the way Meteor plays with phones at the moment.
Like most projects, it feels like they are never done, but my purpose for this project wasn’t to create the best anagram app on the market, because there are som out there that are admittedly better, but I do imagine I’ll keep adding features and functionality as it comes. The goal of my project was to make a finished MeteorJS product that has minimal styling (because I’m not a front-end developer by any means, and I am horrible at writing 21st century html), and that I could share with other developers at Meteor events, etc…, in the hopes of proving that 1) I am somewhat competent at writing Meteor apps, and 2) I can actually finish a product, even if I’m a little unsure about a few things. At some point though, you have to move on, and put out what you have. Nothing is ever perfect, at least not to me.
Anyway, if you have time, or are curious, my app can be found here and the Git Hub project is located here.. Thanks for reading, I’ll post updates to the app as they come about. Until then…