domingo, 11 de abril de 2010

self.showOff(:paraguay_educa_part_one)

After a few weeks of being extremely busy with work and thesis research, I think I can continue my show off schema. Well, well, where i was... oh right! On December 2008, a miraculous day finally came. I finished the 10th Semester, which granted me joy oh freedom again. I received my intermediate Bachelor degree (since I am still working on my thesis research).

On January 15, I was called by an NGO called "Paraguay Educa". This NGO officially started on late 2008 launching the "One Laptop Per Child" project in Paraguay. At that point they were preparing the first large scale laptops deployment at Caacupé City. The current goal was to deploy 4000 laptops to 10 public and private schools, one laptop per child (Obviously).

The Paraguay Educa team was composed of 8 people by the time, 9 including the new member, self. Since the deployment was only 2 month ahead, I had to extend their current Laptops inventory system, to adapt it to their daily changing needs. The basic version of the system was developed by Raúl Gutiérrez, based on his own old projects. System's back end was written in Ruby, using Ruby on Rails framework, and the web front end was written in Javascript using an amazing framework called Qooxdoo.



The first version I finished was only a simple CMS with Places, Laptops, People, Handouts a basic reporting module with a few more handy tools for making the deployment process easy as possible (barcode generation, dynamic handouts forms, etc). In the second version, I also added a technicians module, to store all information about the laptop's reported problems and problems solutions. Plus a few useful reports.



For the third version, I added a network monitoring system, in which for every location registered in the system, users could associate network devices labeled as nodes, and then display the nodes status and extra information ( such as ssid, channel, current load, current number of laptops connected, etc) at the Google map front end. The system external agents were written in ruby also, using ActiveResource.



Since the system was pretty handy for initial and small deployments, other deployments around the world where interested in using it. So for the last version, I added a language support. Raúl Gutiérres and Paulah Saphir from Rwanda OLPC did a great job translating the system to English.



The system has to many great features that I did not mention in this article because my lack of time (its own ACL module, Desktop-like GUI, Raúl's CRUD dynamic forms, Raul's SearchController Module, own seed data generator, data sheets import etc). If you are interested you can take a look at the Online Demo. Username and password "admin". All the system documentation is in Paraguay Educa's wiki page, Spanish only.
  1. Concepts
  2. Manual
  3. Use in logistics
Raúl Guetiérrez also made an rpm package to make the installation ever easier, go to our rpm installation wiki page.

The whole system, school server agents, and the framework developed were released under GPLv3. So feel free to get it, use it and modify it. On your favorite terminal do:

"git clone git://git.paraguayeduca.org/projects/inventario.git"

During this system development, I gathered a lot of a new knowledge domain concerning software design and development techniques. Being part of the requirement gathering process and mostly the only [designer, developer, programmer, tester and documenter] helped me through that learning process. But hopefully I will do more team work in the future. :)

UPDATE: Thanks to our ambassador Daniel Drake, the system is being used by Peru and Nicaragua deployments.