Project Information

New Developers

The Alitheia core development team welcomes any potential new member! Getting a Git account is easy, you just have to ask the project administrators for one and know what an ssh public key is. For the first 10 commits or so you will be working on a branch and your code will be monitored; after that, you will get full access to the repository. To start with, please, Download Alitheia Core first. After you have seen the code, you might want to explore how the system is structured or the data formats it uses or how to write extensions for it.

If you feel like writing some code for an advanced, extension friendly platform and you know how to write some Java, here is a list of low-hanging fruits that you can easily grab.


Developers can work on the following contributions:

  • Write a plug-in
  • Work on improving the core
  • Work on improving the documentation or this site

Alitheia Core was designed to be highly extensible. The system hides all service implementations behind well-defined interfaces and instantiates at runtime through a set of instantiation protocols, based on configuration parameters or data access URLs, hidden in factory classes. Following is a non-exhaustive list of extension points that are present in the system (see more about the following components here):

  • The data accessor stack can be extended to provide access to project assets not currently in the Alitheia Core system, for example to IRC backlogs and wiki systems or to alternative raw data storage formats (e.g. SCM accessors for GIT or Mercurial repositories).
  • The metadata updater stack can be extended to incorporate changes to the data accessors by importing new kinds of data in the database.
  • Plug-ins and core services can extend the database schema with custom tables. The system is more fragile to changes to the core schema, but such changes are possible if they are carefully hidden behind method calls inside data access objects. In fact, throughout the course of the project, we did change the source code metadata schema twice without making significant changes to plug-ins or other system parts.
  • New administrative actions can be defined in the administration service, to cater for custom installation or clustering scenarios. Administrative actions automatically benefit from the administrative service facilities such as input validation for common data types and provision of the service through programmatic or URL interfaces.

The easiest way for new contributors is probably to start by writing plug-ins for the system. This way of scratching a personal itch will allow contributors to extract whatever data they want to get out of their code. To get started, best subscribe to the devel mailing list.

User login


Syndicate content