Project overview [OUTDATED]

Motivation

The “Online Membership System” (often referred to as OMS) is a project started in AEGEE in around 2006. Back then AEGEE wanted to get rid of an old intranet/infrastructure system used since  2000/2001 based on IBM Lotus. In 2008/2009 AEGEE bought the current version of the intranet (only internally called OMS) mainly based on CakePHP,  MySQL, and LDAP.

This "first" version of the OMS is now out-of-date, both feature-wise and in regard of the technology it uses. From 2012 on AEGEE's IT compiled a list of features the old OMS was missing. The development of a new OMS ("MyAEGEE") started in 2015. This time the system will be developed by AEGEE internally, as we know much better what exactly we want and can maintain the system afterwards more easily.

More info on the history of the OMS can be found in the history section.

Project description

This project can be adapted by any kind of association that needs a quick and flexible way of managing its members. The project has a modular approach. Everyone can contribute to the existing modules (like core, event-management, user-management, fee-management) or create new modules or extensions to be used with the project.


Project architecture

The project is created on a microservice architecture style (Wikipedia - Microservices), meaning it is made of many different microservices ("modules" would be an everyday-speech representation). This is a very modern approach to serve web applications used by Netflix, Facebook, etc.

In our case each module has a specific area of tasks to serve, like events management, member management, a voting system, and many more. In our approach we use a central microservice called core (OMSCORE), handling the communication between all other microservices using well-defined Interfaces.

A big advantage of microservices is that their internals are completely independent from each other. Each service can be developed in a different programming language, running on a different webserver using a different database. Just the interfaces have to be compatible to each other - to be able to introduce new features easily we use versioning here, meaning that one microservice can handle request of differnent versions (e.g. current, old) of their API.

The reason why we chose this approach compared to other approaches is that it gives us the flexibility of choosing what technology we want to use with every microservice we are developing. By this we have more control and flexibility over what features we want our application to have.


Technologies used in current microservices

As explained in the previous section the backend is different for each microservice.

Currently, the frontend is based on Angular JS and a bootstrap theme named Color Admin v2.

For a more detailed breakdown on the technologies we use or recommend check here: Technologies

Technologies used in the core

The core microservice has its backend based on Laravel PHP framework due to its awesome features and extensions you can find for it. The database can be any kind of relational database but we recommend using PostgreSQL due to it's stability and advanced features.

For a more detailed breakdown on the core check the appropriate confluence space: OMSCORE



Tools used

Development environment

For the development environment we are using an environment based on vagrant + virtualbox. We created a container-based appliance that you can use as the development environment to check your changes live.

The repositories are hosted on github under the team AEGEE: https://github.com/AEGEE/

For the exact repository of each micro service, please check the confluence space for the microservice you are interested in.

Documentation and collaboration

For collaboration we use most of the Atlassian stack (Jira, Confluence). To get in touch with us, you can find us on Slack. In order to start helping, it's as easy as writing us in the chatroom and installing following the installation page link!



Installation

Follow the instruction at the installation page to get started.



Quick links