Wiki

Clone wiki

OMS-core / Home

Welcome

Welcome gentlemen to the project with codename Calaf! Why Calaf? Because OMS is a three-letter abbreviation that bothers AEGEE since 2009, and because we are computer scientists and we love codenames. So let's just use the name of a guy who sings "I'll win" (from Giacomo Puccini's Turandot)

First things first: How can I help (even if I am not a technical person)?

Then: why you should join the project (as technical person)

Once you cleared that out, keep reading!

First steps (mostly for tech, but also for curious people)

  1. Join ITC! We are not just about code. Internet governance and privacy (both in AEGEE and in the world) is also part of our interest.
  2. Register on Bitbucket - BONUS: If you register on GitHub, you can use that account as OpenID for Bitbucket.
  3. Learn about the technologies you want to work on, or that interest you, or whatever. If you think another technology (e.g. Brainfuck) is good for the project, try to convince me it is useful and nobody rules out that we'll use it! More on the technologies later.
  4. Check the documentation carefully, and add whatever thought, or good thing, you can think of. Learn to use the tool (bitbucket for now) and make annotations and comments. Cooperate. You can download the wiki and start contributing to that: $ git clone https://aegeeitc@bitbucket.org/aegeeitc/oms-core.git/wiki
  5. Check the virtual machine on which you are going to work. Clone it, do whatever you want to it, you can always destroy and build it again.
  6. Check the real matter, the Core

Wiki info and features

If you are in doubt of how to use the wiki, check the Example page. It uses Markdown syntax.

As written already, the wiki itself is actually a git repository, which means you can clone it, edit it locally/offline, add images or any other file type, and push it back to us. It will be live immediately. More info again on the example page.

WARNING: Scary names below. Don't worry too much

GIT info

We are going to use this branching model. If have never used GIT before this, please read the short guide I've written that can help you getting to know all you need to start working. If it sucks, help improving it!

Vagrant info

All you need to know about Vagrant is already in the virtual machine README. If not, tell me, or even better contribute to the documentation! We don't need an essay on the state-of-the-art, just write what you think a newcomer needs to know about it.

LDAP info

You can find here a short introduction to LDAP that I wrote. It is in no way complete, but it's enough to get you started. Here you can find the technical documentation of the structure of the LDAP directory. Most of the times you will not need its knowledge (not at all if you are developing a module), but it's a nice plus to know it. Again if it sucks, contribute to improve it!

Architecture info

The Core will give mechanism for authentication and authorisation, as well as ways to interact with the other database solutions (for event storage, for document management, and so on).

Because the final structure of the whole system will be loosely-coupled services, the architecture has been designed as the Core being a server providing services through REST API.

I suggest you to start investigating the subject with this link and this other link: I had a clear understanding of REST (in practice) just by reading the tutorials. The only difference between us and them, is that they interface to MongoDB while we interface to LDAP - no big deal, just notice the core functionality.

A good and brief theoretical read on the REST concept can be found here. For a shorter explanation, I extracted the most important concepts and you can find them here. For an example of the ease-of-use of REST API you can check Twitter's API. Anybody knows how simple Twitter is, reading briefly just the sidebar and seeing how the HTTP verbs work together with the arguments and the returned JSON should be enough to get a clear example of use.

Remarks

I am not your boss, I just want to make cool things, and I know you want too. Ask me anything if you are curious, if I missed anything, if something here is unclear.

Have fun!

Updated