1 Introduction

The “Online Membership System” (often referred as OMS) is a project started in AEGEE in around 2006. The design was done in order to get rid of an older infrastructure using IBM Lotus.


Some years later, however, some CD made a decision to commission the development of a system to an external company. This caused big problems because eventually the developed system, which is our current intranet, was definitely not ready for production; the main reason of this failure was the lack of clear specification. More info can be found in this document.


The so-called OMS later became a must-do in short time, and mission-critical in order to re-gain the functionalities that alas have been lost in the transition. Nonetheless, the lack of HR made this project stale (you can find any information here) and no real alternative to the intranet was in sight yet. One of the problems in cases of lack of HR is that one never knows when another team may kick in, thus the documentation left from the previous team must be clear enough for a follow-up to be possible. In the case of the OMS, the source code can be found on the repository, however it is unclear how does it work, where to start, and documentation can be found away from the repository - and not even that complete nor giving a quickstart


As a result, the approach that I wanted to follow was the opposite. First study what has been produced and designed so far, the database structures, the approach for accessing data, the technologies; then rapidly prototype (read: extreme programming, agile technique, “move fast and break things”...) to see how it works, how it scales, what can be improved; then leave a heritage for young contributors, and people who wanted the glory, or simply students of IT in AEGEE (who did not join BEST :-o  ) who are software enthusiasts. They will be the real engine of this project.




Keywords for the whole project:

Agile, Scrum, Extreme Programming, Continuous delivery, Git, Vagrant, Puppet, Travis-CI, Node.js, Javascript, Express.js, LDAP, MongoDB, Redis, Authentication, Authorisation, API, REST, Oauth, Federation, Microservices, Scalability,