# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://molgenis.gitbook.io/molgenis/8.5/for-developers/guide-technologies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
