AMP 3.5 is deployed using Apache Tomcat 8.5, an open-source Web Server that implements several Java EE specifications. AMP is based on Java 8. The open-source Nginx HTTP Server is used to deliver the application content to the country-specific domain, with the right pointers to the Public Portal and AMP itself. AMP benefits from its security, traffic control efficiency and its compliance with current HTTP standards. AMP developer setup additionally uses some tools like Maven 3.8.1 and GitHub. The AMP Public Portal is deployed as a separate application and can even run on a different server if necessary. The Public Portal uses WordPress.
DG leverages Open Source technologies both as part of the end-product applications as well as its supporting tools in the Software Development process. Our Aid Management Platform relies upon Jenkins for continuous integration. DG uses GitHub extensively in its development process, and our developers are active participants in the Open Source community, with experience in all common Open Source practices.
AMP system relies on an open-source PostgreSQL Database. It is well known for its high performance, and reliability and, unlike some other open-source RDBMS, it provides a PostGIS extension that we use for the GIS module. PostgreSQL fulfilled AMP system needs and proved stable over an extensive period of usage in different environments with different resources. We have defined a set of configurations to tune PostgreSQL for AMP needs to gain the best performance for each country setup. Document Management is handled by the open-source content repository for the Java platform, Apache Jackrabbit.
The Aid Management Platform 3.0 backend runs on the latest Java 8 release. Java 8 includes features like Lambda Expressions, new Date/Time API. The Java-based platform brings us a multitude of Java frameworks, cross-platform capability, a large pool of technical knowledge shared on the Internet and hard copy books, as well the possibility to hand over to any other third-party Java experienced developers.
AMP uses Hibernate 4.x core and Hibernate 2.x for Entities mappings to RDBS DB. Using Java Persistence API allows us to switch to a different RDBS, though PostgreSQL proved to be the right long-term choice.
The open-source Spring 3.x Security framework is used to provide AMP authentication and authorization with its protection against attacks like session fixation, clickjacking, and cross-site request forgery, among others.
Apache Lucene open-source search software enables Java-based indexing and advanced search capabilities among AMP data like activities, reports, documents, etc.
Struts 1.x Forms and Actions is used in part of the admin sections of the application.
For the complex features of the Project Edition Form, we use Apache Wicket open source, component-oriented, serverside, Java web application framework. First released in 2004, it is one of the few serverside web frameworks that continue to be in use today and still proves to be one of the best choices for special needs.
For various automated Jobs like Auto closing activities, and alert notifications, AMP relies upon Quartz Job scheduling open source library. It allows us to have a very-grained configuration of the schedules and run multiple jobs concurrently.
Along with different reengineering efforts, revamped most relevant modules UI like GIS, Dashboards, Tabs, Filters, and some Admin parts, that now embrace a new look and feel. Modern JS libraries and tools are used to ease development and maintenance. The decoupling from the AMP system via its API allowed us to address each AMP module’s particular needs.
Open source jqGrid plugin on top of jQuery came in to support the Tabs results display in a simple grid view, with its support for pagination, AJAX.
To provide an interactive GIS experience, AMP relied upon Leaflet, Esri-Leaflet and React-LeaftLet plugins. Built with simplicity, performance, and usability in mind, it enabled us with a full set of mapping features, as well as mobile-friendly support. Esri-Leaflet provided us with tools for consuming ArcGIS services with Leaflet.