So the term has come to a close and I thought I’d give a short retrospective of my time working on POSIT. First of all, I’d like to thank all the people involved in UCOSP for making it what it is and letting us be involved in it. I know I’ve found it to be a very educational and rewarding experience, and I think the other students on my team feel the same way.
We started off the term with an experimental version of POSIT that had been rebuilt with a pluggable architecture that would hopefully make it a lot easier to customize the app according to clients’ needs. However, since the new architecture was fairly new, the actual functionality was pretty rough. For this reason, our UCOSP team spent much of the early part of the term helping Ralph and Rachel out with testing and patching bugs while they continued to build features back into the new architecture. As POSIT got incrementally nicer each week, we would then gleefully load the new version onto our phones and do horrible things to it until it broke.
Later in the term, as POSIT was getting more stable, we each chose individual projects to expand POSIT’s functionality. All of us eventually decided on function plugins for the app, which I believe have already been discussed by other members of my team. Here’s an overview of what my teammates have accomplished:
Twitter Plugin – Stanley had a neat idea early in the term to combine POSIT with Twitter. His plugin uses the Twitter4j library to give users the ability to post finds to their Twitter accounts. The wiki page for Stanley’s plugin is available here: http://code.google.com/p/posit-mobile/wiki/TwitterFunctionPlugin
Camera Plugin – POSIT’s camera functionality is one of the things I found most striking about the app when I was first introduced to it. Gordon’s plugin puts the ability to take pictures and associate them with your find back into the app using the new architecture. Find out more about it on the plugin’s wiki page: http://code.google.com/p/posit-mobile/wiki/Camera_plugin_with_syncing
Tracker Plugin – Another nifty feature that was begging to be added back in is POSIT’s tracker functionality. It provides the ability to track the path of someone’s expedition when using the app. This was Kalin’s project, and you can read about it here: http://code.google.com/p/posit-mobile/wiki/Tracker_Activity_Walkthrough
Location Aware To Do Reminder Plugin – Without disparaging anyone else, I think Eric’s plugin is probably the coolest. His To Do plugin allows you to set reminders for yourself that are linked to a find’s location. It monitors your own location and will alert you when you are in close proximity to the reminder location. You can read all about it on the wiki page: http://code.google.com/p/posit-mobile/wiki/To_Do_Reminder_Walkthrough
SMS Plugin – This was my plugin, so forgive me if I spend a disproportionate amount of time talking about it. I wanted to do something similar to what was done with the version of POSIT used in Haiti. The deployment of wireless Internet in Haiti isn’t exactly ubiquitous, so for them it was important that they be able to share data without relying on the Internet. For this reason, they built a whole synchronization system that used SMS messaging. My plugin’s functionality is a bit simpler than that. I implemented SMS functionality merely as a way of sending and receiving a single find over SMS. The tricky part about this was that, while the Acdi Voca app knew exactly what its Find object looked like, I had to contend with the fact that the user might be using a Find Plugin about which I don’t know the details. I’m pretty happy with the result, and my hope is that the code I have written will also be of help to anyone who wants to extend POSIT’s SMS functionality even further. The wiki page I created for the plugin is here: http://code.google.com/p/posit-mobile/wiki/SMSFunctionPlugin
And that just about wraps up everything I have to say! Thanks everyone again for letting me be involved with this. I think it’s great what you guys are doing and I wish you the best of luck in future terms.