This repository has been archived by the owner on Aug 24, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Technologies
sebastian-raubach edited this page May 16, 2018
·
7 revisions
Germinate uses third-party software libraries to extend its functionality. The following sections will list these libraries and explain their purpose:
- baguetteBox.js
- baguetteBox.js is used to create popups of images and text. https://github.com/feimosi/baguetteBox.js
- Bootstrap Notify
- We use Bootstrap Notify to display notifications on the website. https://github.com/mouse0270/bootstrap-notify
- Bootstrap Switch
- Bootstrap Switch makes it easy to use switch or toggle buttons on the web interface. https://github.com/Bttstrp/bootstrap-switch
- CookieCuttr
- Because of the EU "Cookie Law", websites have to let the user know when they're using cookies. CookieCuttr displays a banner notifying the user of just that. https://github.com/weare2ndfloor/cookieCuttr
- D3.js
- We us D3.js to generate dynamic and interactive data visualizations. Almost all charts in Germinate are created using this library. https://github.com/mbostock/d3
- d3Pie
- This is a plugin for D3.js that we use to easily create pie charts. https://github.com/benkeen/d3pie
- D3.tip
- This is a plugin for D3.js that allows easy creation of tooltips for SVG elements. https://github.com/Caged/d3-tip
- html2canvas
- html2canvas is used to convert the d3.js chart legend to an image and download it. https://github.com/niklasvh/html2canvas
- jQuery
- jQuery is the most popular JavaScript library out there. It allows easy selection, traversal and manipulation of DOM elements. https://github.com/jquery/jquery
- lasso.js
- This is a plugin for D3.js that allows freehand drawing of selections within D3.js charts. https://github.com/skokenes/D3-Lasso-Plugin
- Leaflet
- Leaflet is an open-source JavaScript library for mobile-friendly interactive maps. We use it throughout Germinate to display data on geographic maps. https://github.com/Leaflet/Leaflet
- Peity
- Peity is a jQuery plugin that converts an element's content into a mini pie, donut, line or bar chart. Germinate uses it to display donut charts for the Passport Data Completeness Index. https://github.com/benpickles/peity
- prettify.js
- Prettify is used to make code on website more pretty, e.g. it adds basic syntax highlighting. The main use of this library is for the SQL debug messages that appear when Germinate is run in debug mode. https://github.com/google/code-prettify
- saveSvgAsPng.js
- This library allows the user to save a SVG image in the browser (usually generated by D3.js) to a PNG file on their computer. https://github.com/exupero/saveSvgAsPng
- Spectrum
- Spectrum allows us to easily add color-pickers to the web-interface. HTML5 introduced the color-type input element, but many current browsers still don't support it. We also always have to consider users with outdated browsers, so unfortunately we have to fall back to a third-party library for this purpose. https://github.com/bgrins/spectrum
- zxcvbn
- zxcvbn is a password strength estimator inspired by password crackers. We use it to measure password strength when a user registers to give them feedback on their choice of password. https://github.com/dropbox/zxcvbn
- Bootstrap
- Bootstrap is one of the most popular web front-end frameworks out there. It provides HTML- and CSS-based templates for interface components and layouts alongside JavaScript extensions for additional functionality. https://github.com/twbs/bootstrap
- Bootstrap-xxs
- Bootstrap-xxs adds a smaller size to Bootstrap's grid system. https://github.com/auipga/bootstrap-xxs
- flag-icon-css
- These flags are used throughout the website wherever a country is represented.. https://github.com/lipis/flag-icon-css
- Material Design Icons
- Material Design Icons is an icon set inspired by Google's Material Design guidelines. We use it throughout Germinate. https://github.com/Templarian/MaterialDesign
- Apache Commons CLI
- We use this library to easily handle command line parameters for out data import code. https://github.com/apache/commons-cli
- Apache Commons FileUpload
- This library is used to make the upload of files from the browser to the server easier. https://github.com/apache/commons-fileupload
- Apache Commons IO
- This is a widely used utility library. https://github.com/apache/commons-io
- Apache Commons Logging
- A popular logging library. https://github.com/apache/commons-logging
- Apache HttpComponents Client
- This library is used to easily communicate with Gatekeeper via HTTP requests. https://github.com/apache/httpclient
- Apache HttpComponents Core
- Required by Apache HttpComponents Client. https://github.com/apache/httpcore
- Flapjack
- Flapjack is a graphical genotype viewer developed at The James Hutton Institute. Germinate uses it on the server side to export genotypic data and allele frequency data. https://ics.hutton.ac.uk/flapjack
- Flyway
- Flyway is a database migration tool that Germinate uses to update its database between releases. https://flywaydb.org
- GWT
- GWT is the main building stone of Germinate. It's the web development framework we chose to use. https://github.com/gwtproject/gwt
- GWT-Charts
- This is a GWT implementation of the JavaScript Google Charts API. https://code.google.com/p/gwt-charts
- GwtQuery
- We use this library to use jQuery-like code in Java. https://github.com/ArcBees/gwtquery
- Intro.js
- Intro.js is used to display interactive introduction tours that guide the user through a number of steps and explains certain parts of the web interface. https://github.com/usablica/intro.js/
- jBCrypt
- jBCrypt is a Java implementation of the OpenBSD's Blowfish password hashing algorithm. https://github.com/jeremyh/jBCrypt
- JAK
- This "Java API for KML" is used when exporting geographic information to KML format. https://github.com/micromata/javaapiforkml
- JAXB
- Required by JAK. https://jaxb.java.net/
- minimal-json
- This library is used as part of the data import code. https://github.com/ralfstx/minimal-json
- MySQL Connector/J
- This is a library that allows us to easily communicate with a MySQL database from Java code. https://github.com/mysql/mysql-connector-j
- SimpleXML
- We use SimpleXML to parse the custom menu of Germinate easily. https://github.com/ngallagher/simplexml
- Thumbnailator
- This is a utility library used to create thumbnails of images. Whenever a new image is copied to the full-size image folder of Germinate, we will use this library to automatically generate a thumbnail for it. https://github.com/coobird/thumbnailator