Technologies

Enthusiasm for technology as well as a passion for software development resulted in the emergence of a product based on state-of-the-art technologies, which will be improved continuously.

1. Supported browsers

ProjectForge is mainly developed under FireFox and Apple Safari.Please refer the following table to see the status of browser interoperability of the current release:

Browser Score Description

Apple Safari

++

Well tested, works fine.

Chrome

++

Well tested, works fine.

Firefox

++

Well tested, works fine.

Microsoft IE

+

Quickly tested, seems to work (since ProjectForge’s migration to Bootstrap).

2. Professional architecture and CI (continuous integration)

ProjectForge is based on a modern and professional software architecture which is commonly used in theindustry. A professional roles and right management assures that every user can only see and use those data for which he has all the required rights and roles for. The high quality and reliability of ProjectForge base, last but not least, on a lot of automatically test cases. The more than 250 test cases are running daily, there are part of a professional CI-system (continuous integration). A high value of data integrity and security is therefore assured.

3. Rapid Application Development Approach (RAD)

ProjectForge is characterized by a rapid application development approach.

This means:

  • Write the entity as Java beans and define the data base mapping with annotations (JPA)

  • Write simple html pages (Wicket / React)

  • Write the business logic in Java/Kotlin (not in jsp or something comparable)

  • Derive ui classes (list and edit forms) from the base classes.

  • Derive data access objects from the base objects (security, access management, persistancy).

The mission: Develop entities of new functionalities with lists and edit screens in just a few hours!

  • Secure access checking

  • Fully indexed (search)

  • History of every user’s modifications

  • Full data base support

  • Support of object oriented html pages and components (powered by Wicket)!

An established developer should focus on the essentials!

4. Technological requirements for the ProjectForge server

Java 8 might work also with ProjectForge 7, but OpenJDK 11 is recommended (tested in several productive environments), PostgreSQL (optional), Linux, Mac OS X, Windows.

5. Technologies

Technology Usage

Java/Kotlin

Base technology

Hibernate / MGC

Persisting framework O2R, R2O, JPA 2

Spring

Boot Application

React / Wicket

Web framework Wicket will be replaced by React.

JCR

JackRabbit for document storage (used by data transfer tool and others)

FOP

For the creation of PDFs, e. g. the user time sheets, monthly employee reports etc.

JUnit

Test framework

GitHub actions

CI - continuous integration system

Groovy/Kotlin Script

Used for scripting ProjectForge for reports (MS Excel exports, charting etc.) as well as for e-mail templating (see AdministrationGuide for further information).

Jasperreports

For generating reports.

JFreeChart

For internal graphics and diagrams as well as for usage in the groovy scriptlets by the users, e. g. for reports.

Maven3

Building system, testing, staging and Jar-management.

EasyMock / Powermock

For using mock objects in JUnit-tests

MPXJ

For exporting MS-Project plans: MPXJ home page

POI

For the creation and manipulation of Excel files (also supported in the user scripts).

SVG (batik)

For drawing Gantt diagrams


Development
Migration

Related Docs