Sunday, June 12, 2011

Update: 5/12

I set up FrontlineSMS on the mini Acer laptop, with a Huawei GSM modem and a T-Mobile SIM Card set up with a "pay as you go" plan with unlimited SMS (with very expensive per minute charges, luckily we won't be using that). After a bit of configuration (windows 7's stock installation sure requires a lot of updates!) I was able to get it to work, and was able to receive and auto-respond to SMS messages. I left it running in the office so that I could remotely log in while I was gone for the week (using logmein.com) but it shut down for some reason, when I return I'll have to try to figure out why; I'm blaming windows's aggressive auto-update and restart policy, which I thought I disabled.

Meanwhile, FrontlineSMS has a feature that allows for a local command to be executed--I currently have it starting a python script that adds the received text to a local mysql database. That works great!

Now that the framework is set up, the next thing I have to do is figure out what kind of database we need. We need to create a simple logging system first of all, something that records the information available: the text that was sent, the date/time, and the number sent from (probably the response given as well). Design of the database also requires that we figure out what we need to know about the provider locations and how we intend to access and provide the correct information.

It is here that the limitations to the system and our experimental approach comes in. The following things apply:

  • Text messages are limited to 160 characters.
  • Ghanains are likely to know their region, but not necessarily their districts.
  • Ghanains may not know any more detailed information like street addresses, as a uniform addressing system doesn't seem to exist like it does in the US. They are likely to use references to landmarks: "nearby the Hospital", or "between the graveyard and the post office".

With these things in mind, I think the best thing to use is a system that gets their region, a district if they know it, and then any landmarks they can use to pinpoint their location. We will then use some sort of probability-based ranking system (something like google maps uses) to provide a list of locations. The following flow chart describes my current idea:



I'm going to try to start implementing it this week. The hard part will be trying to figure out what ranking algorithm to use, and the specifics of how to store the data.

No comments:

Post a Comment