|Stable release||0.8.2.5.1 / December 23, 2009|
|Written in||Java, PL/SQL|
Makumba is a query-centric application framework using the model-view-controller pattern and designed to develop data driven web applications. It provides a custom JSP tag-library as a main interface, but leaves API open for advanced access. It is implemented in Java.
Makumba is an open-source infrastructure technology helping its users to put together data-driven web applications for medium and large audiences in a rapid, architecturally-sound and sustainable manner. Makumba is aimed towards communities of programmers of varying competencies, from HTML, through SQL, procedural programming, to object-oriented programming in Java. Many of its users have followed this learning path from simple scripting to professional programming, and later built on this experience, finding jobs in IT consulting companies.
Makumba was designed and partly implemented in the context of a PhD thesis at KTH, as part of a larger project aiming to help amateur and voluntary communities to design and implement their own software. The main setting for use of Makumba is the pan-European voluntary student organisation called BEST (Board of European Students of Technology), present in 33 countries and 95 technical universities across Europe. The organisation runs applications for its members (over 3000 users) and for its student "customers" (around 10000 users every year, a third of whom attend the 1-2 week courses organised by BEST). Applications are of varying natures: document sharing, membership databases, registering and processing applications to internal and external events, shared calendars, virtual job fair, etc. The applications are designed, developed and maintained by the "IT group", a distributed group with no physical premises, meeting several times a year. Like in the rest of the organisation, students come in and out of the group on a regular basis, as people finish studies or run into family or job obligations after finishing studies. In this context, it is a challenge for the IT group to sustain long-term activities such as application design and development, which sometimes span several generations of voluntary members. Attracting new members in itself (i.e. sustaing the whole group) is a challenge.
Since the adoption of Makumba in 2002, the IT group size stayed steadily over 20. A large number of new sub-applications are proposed, prototyped (using e.g. PowerPoint) and implemented on a regular basis, and the common database allows them to be fully integrated with the Makumba-based system of the organisation, which now features around 100 data types, 1500 JSP scripts and 150 Java modules.
Makumba has been designed specifically to answer the needs of groups and communities as the one described previously. Its main design principles are:
- low learning threshold that prospective users have to face. It is commonly believed that a prospective member of a community using Makumba can start to contribute to the larger system after a 3 hour training. By contribution it is meant accessing the database and displaying results in a meaningful manner for the other members.
- separation of learning tasks. This allows people who do not yet know professional-level languages to join, and learn them later from or together their peers. Makumba supports a "graceful learning path"
- the architecture that allows several subgroups to work on several parts of the system, and also enforces a model-view-controller separation, leading to a robust system over the long term, despite frequent membership changes
- Easy readable
- Property based data definition types
- JSP taglib that generates HTML based on the data type and operation (listing, adding, editing, etc.)
- Optional Business Logic in Java that gives the developers access to advanced features
- MVC based framework
- Support of Object Query Language and Hibernate Query Language