Follow asfourco on Twitter View my LinkedIn Profile

Got me projects


What a view, eh? This is from the balcony of my office at the ICT department, 20th (and last) floor at MINED. The view is facing south to Catembe across the water. I also get a decent workout when the elevators are not working!

View from my office


I’ve been working with MINED (Ministry of Education) for about a month now. First project was to create a web portal to capture information about the students of the teacher training colleges, some 8,000 – 10,000 students distributed through 24 schools around the country. Now that they are linked to the internet, it is theoretically possible. This information will allow MINED to manage the distribution of teachers throughout the country, make sure that everyone is converting to the new 2 yr curriculum, and then collect final marks at the end of the year.

Other projects I’m going to be involved in:

> Providing training on moodle to a core team that will plan and implement an eLearning platform for 11th and 12th graders in the distance education programme of INED (Instituto Nacional de Educação a distancia). The rough plan, if the green light is given, is to take a month understanding the needs, planning the configuration of moodle, then implementing the pilot project within Maputo city. The results of this phase will then be incorporated into the roll-out plan for the rest of the country.

> Creating another web interface for a student registry. This will contain the list of students (not sure, but I believe these are 12th graders) qualified to take exams. From there bar codes can be generated to affix to their scantron answer sheets. The scantron system works. The problem arises when students do not properly fill in the bubbles, incomplete numbers, or entirely illegible. Once these issues are sorted out, then the staff need to cross-reference the eligibility of the student before filling the database with the student’s answers. Now, if the number of erroneous answer sheets were small, then this would not be a problem. It is a big enough problem to delay the release of results for about a month, sometime two. So the idea is smooth out the workflow by eliminating sources of error.

> The third project is a doozy!  MINED spends something like USD45K/yr on software licenses for all the schools with computer labs around the country. With a growing number of schools getting computer labs and connecting to the internet, this number will continue growing, eating up a major chunk of the budget. One solution is to bargain with the suppliers, i.e., Microsoft, for better education prices. However, that will eventually reach a limit. The other logical solution is to move to open source operating systems and software. So the question how would we do that when the capacity to support such systems is either non-existent of very very small. Yes, this is like planning to dominate the world!! But other organisations, municipalities, and education systems have shifted to the open source model. And why not? you have a fully functional and stable system for free, thousands of supporters around the world, multiple languages to use, robust security, and more importantly, very easy to remotely managed. So, yes I’ve got my hands full with this project. I hope that by the end of my placement we would have at least started a pilot phase, if not start rolling out the conversions and building capacity.

You may have detected a recurring phrase here … capacity building. A continuous process with all you interact when working in international development.

“Capacity building, also referred to as capacity development, is a conceptual approach to development that focuses on understanding the obstacles that inhibit people, governments, international organisations and non-governmental organisations from realising their developmental goals while enhancing the abilities that will allow them to achieve measurable and sustainable results” – wikipedia

I’ve noticed that many have the skills, the thought processes, the know-how, and the resourcefulness to achieve their objectives. However, there are many challenges, and not many perceived solutions. This is a delicate process: first build the relationship and confidence with your counterpart(s), then you build their confidence in their abilities, and then you can start to work in earnest at the tasks at hand. A lengthy process, especially when there are deadlines to meet. So no, I don’t know all of what is encompassed in the term “Capacity building”, but I’m learning.

Now onto the geeky stuff. Technical warning: I will indulge in a bit of geekery, but this is not a programming post … those will come later 😉

I’m using CakePHP to program the database interface (frontend), while the database (backend) is PostgreSQL.

CakePHP has the same conceptual framework as RubyOnRails namely, it provides the internal bits and bobs to create a dynamic web portal/site, and all you have to provide is the code to handle the content. It is a MCV framework: M = model, C = controller, and V = views. The idea is that the model represents your tables within your database, the objects within the model are the data, the methods are then used to retrieve, delete, edit, or delete objects and their relationships within the tables. The Controller contains the code on how to handle the data, as well as any needed data processing, which is then passed onto the views. The views are the templates for the content that is presented to the user. There is another PHP framework calledSymfony that seems to be used more, but I must admit, that approached the selection of a PHP framework from the point of view of RubyOnRails. I will endeavour to use it in future projects. However, the beauty of these frameworks is the ability to define relationships between the models. RubyOnRails has a beautiful implementation of these relationships. For example, a database of students, their cars, and classes would have the following relationships:

  • A student has a car
  • A student belongs to many classes

So in the definition of the student model, one would write: “hasOne: Car” and “belongsTo: Classes”. We now have an object oriented programming interface that makes life so much easier. It also means that one could write the code for a fully functional system, and by changing a couple of lines in the database definitions one could switch between the myriad of database systems available. For example I could have developed using sqlite3 then switched to MySQL, Oracle, or what-have-you for the production environment.

So where am I with this software project? It’s completed … I just need to translate the interface into Portuguese! But I’ll have help from the team. One of whom is interested in programming 😀 so I’ll start building a software development team with him.

[Originally published August 15, 2012 at]

Posted: February 2nd, 2013
Categories: ARTICLES
Tags: , ,
Comments: No Comments.
Based on design by techdesign | Powered by Wordpress | ASFOUR consulting © 2010 - All rights reserved