# Technologies

## Technologies

We are happy to reuse as much as we can from high-quality existing open source software projects. Find below a listing of the technologies we use:

## Development

* [YourKit Java profiler](https://www.yourkit.com/java/profiler/index.jsp) - for profiling our apps with a full-featured intelligent Java Profiler. YourKit, LLC supports our open source project
* [IntelliJ IDEA](https://www.jetbrains.com/idea/) - for writing Java code. Jetbrains supports our open source project
* [WebStorm](https://www.jetbrains.com/webstorm/) - for writing JavaScript code. Jetbrains supports our open source project
* [myBalsamiq](https://balsamiq.com/) - for rapid wireframing. Balsamiq, LLC supports our open source project

## Middleware

* [Maven](http://maven.apache.org/) - to organize, compile and build modules
* [Spring framework](http://projects.spring.io/spring-framework/) - to assemble modules at runtime
* [Spring MVC framework](http://projects.spring.io/spring-framework/) - to assemble modules at runtime
* [Spring framework](http://projects.spring.io/spring-framework/) - to create web service 'controllers'
* [Freemarker template language](http://freemarker.incubator.apache.org/docs/index.html) - for server-side layout
* [Various great Apache projects](https://www.apache.org/) - for utilities such as commons, commons-io, logging
* [Google guava](https://code.google.com/p/guava-libraries/) - for utilities

## Frontend

* [Bootstrap](http://getbootstrap.com/) - for responsible HTML layouts
* [React](https://facebook.github.io/react/) - to create module user interface components
* [jQuery](https://jquery.com/) - to ease javascript + DOM interaction

## Backend

* [PostGreSQL](https://www.postgresql.org/) - our work-horse for simple database storage
* [ElasticSearch](https://www.elastic.co/products/elasticsearch) - for smart indexing and search
* [OWL api](http://owlapi.sourceforge.net/) - for semantic data imports
* [Open CSV](http://opencsv.sourceforge.net/) - for reading tab/csv delimited files
* [Apache POI ](https://poi.apache.org/) - for reading Microsoft Excel files

## Quality

* [Github](http://github.com/molgenis/molgenis) - for our code versioning, bug lists and code reviews
* [Jenkins](http://www.molgenis.org/jenkins/) - our continuous integration build and automatic test server
* [TestNG](http://testng.org/doc/documentation-main.html) - for unit tests
* [Selenium+Java ](http://www.seleniumhq.org/) - for user interface tests
* [TRAC](http://trac.edgewall.org) - for managing our scrum backlog
