Required Knowledge to contribute

You are welcome!

Hopefully you entered this site 'cause you like what we are doing (even though we don't have an I like button :-) and you want to join the project as a contributor. Then don't stop reading and read further to get an overview about the different technologies you should be familiar with.

Probably you are one of the guys who do not really know which part of development you mostly prefer, frontend or backend. Nevertheless, take the time to read and understand what is really essential to become part of the team.

Frontend Technologies

Probably you feel more convenient in developing nice and fancy views for the operational UI of the application, then you are right in this section. As a developer of views for the base framework you should have a profound knowledge of the Adobe Flex Framework and the additional Action Script / MXML stuff around.

Adobe Flex Framework

You've already developed dialogues using Adobe Flex 3.0 and the corresponding Action Script 3.0. Things like Transitions, Effects and Modules are nothing new for you and you know how to apply them out-of-the-box. You are also familiar with design pattern like MVC, Observer or Command pattern. Probably you've earned experience with the Adobe Cairngorm Framework (witch is not used anymore).

GraniteDS Framework

The most common used framework in addition to Adobe Flex Framework is Adobe BlazeDS, but we have decided to take GraniteDS just from the beginning. If you have ever used Adobe Cairngorm you know about the traps and gaps and tons of code that you had to write. All this pain is forgotten when you know more about GraniteDS. Knowledge about GraniteDS is desirable but not mandatory even if the whole frontend application is built with GraniteDS. It is a quite new opensource Flex framework that is not such wide spread but has the potential to become a serious team player in this league. A nice part of GraniteDS is called Tide used for client-server interaction, worth while to read about it.

Backend Technologies

Not all developers like to develop dialogues but want to build business logic running on the server. If you are interested in this part of development you should be familiar with one of the most popular Java server-side frameworks - the Spring Framework and all of it's features like AOP, Enterprise Integration and Dependency Injection.

Spring Framework

Extended knowledge about Spring is required to have, the concepts of Spring and practical experience. Unfortunately newcomers to Spring cannot be supported and cannot join the project anymore. To understand Spring and how to use it is essential for project development, thats why new contributors must be familiar with it. In addition to the Spring Framework you've probably knowledge about the Spring Dynamic Modules sub project, otherwise RTFM.

OSGi Concepts

A new team member shall already heard about OSGi technology, what the concept behind is and how to build an application within this architecture. It is not required to know everything about the OSGi Blueprint Specification, but as a backend developer you shall at least understand the concepts and know about OSGi service registration and OSGi bundle Manifest Headers.

JPA Specification and Providers

A relational database is one of the significant bricks in every warehouse management systems we know so far, also in Object-Relational Mapping belongs to our daily business and therefore you should know about this topic in deep. Understanding the JPA Specification and having practical experience with one of the popular JPA providers (Hibernate, EclipseLink) is essential to survive here.