Home
Softono
projectforge

projectforge

Open source Kotlin
130
Stars
69
Forks
23
Issues
24
Watchers
1 week
Last Commit

About projectforge

ProjectForge is a web-based project management solution that provides time tracking, team calendar, Gantt charting, financial administration, issue management, controlling, and work-break-down-structure management. It integrates with JIRA for issue tracking. The application is built with Spring, Spring Boot, Hibernate, and Hibernate Search, and requires Java 17 or later. ProjectForge can be installed quickly via Docker or by running an executable JAR file. No initial configuration is required; a setup wizard launches on first run to guide users through directory selection and optional parameters. The default configuration directory can be customized through command-line arguments, environment variables, or folder placement. For development, ProjectForge supports Gradle-based builds and can be run from the command line or imported into IntelliJ IDEA as a Gradle project. The front-end components, built with React, are compiled during the build process. ProjectForge includes a built-in database but supports Post

Platforms

Web Self-hosted Android

Languages

Kotlin

= ProjectForge - project management solution

ProjectForge is a web-based solution for project management including time tracking, team calendar, gantt-charting, financial administration, issue management, controlling and managing work-break-down-structures (e. g. together with JIRA as issue management system).

== Express installation

For a fast installation via docker or executable jar, please refer https://projectforge.org/docs/installation/[Installation].

== Documentation

=== projectforge.org Full documentation on: https://projectforge.org/ Please visit: https://projectforge.org/docs/development/

== Version 8.0 is out now...

The fastest way of installation of the newest version (8.0). you will find here: https://projectforge.org/docs/installation/[Installation]

This version contains a lot of cool stuff:

  • New versions of Spring, Spring Boot, Hibernate, Hibernate Search etc.
  • ...

== Quickstart from command line

[NOTE]

You only need the following steps for developing ProjectForge. If you just want to run it, please download it from https://sourceforge.net/projects/pforge/ and simply start it java -jar projectforge-application-X.X.X.jar.

Or simply use the fastest way: https://projectforge.org/docs/installation/[Installation as docker image]

  1. Checkout: git clone [email protected]:micromata/projectforge.git
  2. For developing try OpenJDK 17 (tested): java -version.
  3. Build ProjectForge: ./gradlew build -x test (or ./gradlew.bat build -x test on Windows)
  4. Run ProjectForge: java -jar projectforge-application/build/libs/projectforge-application-X.X.X.jar As an alternative you may run ./gradlew bootRun.
  5. Open your browser: http://localhost:8080

Remark: If you have any trouble regarding projectforge-webapp, try to delete the sub directory node_modules and repeat ./gradlew clean build -x test.

=== Configuration of ProjectForge

No configuration needed. After starting ProjectForge a first time, a console or desktop based wizard is provided for doing a quick setup (choose directory and configure optionally some parameters).

To configure a different directory you have several options (choose Your favorite):

. Create ProjectForge as top level directory of your home directory: $HOME/ProjectForge, or . Create a directory named ProjectForge and put the jar file somewhere in it or in the same directory. ProjectForge detects the folder ProjectForge relative to the executed jar, or . Create a directory and define it as command line parameter: java -Dhome.dir=yourdirectory -jar projectforge-application-X.X.X.jar, or . Create a directory and define it as system environment variable PROJECTFORGE_HOME.

Please note the detailed documentations for administrators, developers as well as for users.

Java version 17 is required since ProjectForge 8.0. Please note, that OpenJdk 17 is currently used in production for developing and running ProjectForge.

=== Quickstart with IntelliJ

  1. Launch IntelliJ IDEA
  2. Import new project as Gradle project
  3. Run ./gradle clean build -x test (to build React stuff in projectforge-webapp)
  4. Start by simply running main (in projectforge-application/src/main/java): + org.projectforge.start.ProjectForgeApplication.java

== Quickstart with PostgreSQL (optional)

You may use PostgreSQL instead of the built-in data base.

=== Using PostgresSQL (Podman)

  • Choose and set a database password: + export PGPASSWORD=mypassword
  • Run PostgreSQL: + [source,shell]

    podman volume create projectforge-pgdata podman run -d \ --name projectforge-postgres \ -p 127.0.0.1:5432:5432 \ -e POSTGRES_DB=projectforge \ -e POSTGRES_USER=projectforge \ -e POSTGRES_PASSWORD=$PGPASSWORD \ -v projectforge-pgdata:/var/lib/postgresql/data \ docker.io/library/postgres:16

  • Configure ProjectForge

.$HOME/ProjectForge/projectforge.properties [source,shell]

projectforge.base.dir=${user.home}/ProjectForge spring.datasource.url=jdbc:postgresql://localhost:5432/projectforge spring.datasource.username=projectforge spring.datasource.password=${PGPASSWORD} spring.datasource.driver-class-name=org.postgresql.Driver

  • Run ProjectForge and enjoy it.

.Some helpful docker commands |=== |Stop|podman stop projectforge-postgres |Start|podman start projectforge-postgres |Import dump (optional)|podman exec -i projectforge-postgres psql -U projectforge -d projectforge < ~/ProjectForgeBackup/pf.sql |PSQL|podman exec -it projectforge-postgres psql -U projectforge -d projectforge |Reset passwords (optional)|update t_pf_user_password SET password_hash='SHA{BC871652288E56E306CFA093BEFC3FFCD0ED8872}', password_salt=null; update t_pf_user SET password='SHA{BC871652288E56E306CFA093BEFC3FFCD0ED8872}', password_salt=null, email='m.developer@localhost'; + password is now test123. |Clear calendar subscriptions (optional)|update t_calendar set ext_subscription=false where owner_fk != [pk]; + This is useful for avoiding a lot of external calendar calls of foreign users if your productive data contains a lot of users with calendar subscriptions. |Uninstall|podman stop projectforge-postgres \ podman rm projectforge-postgres \ podman volume rm projectforge-pgdata |===

== Further configurations

Please have a lock at all available config parameters: https://github.com/micromata/projectforge/blob/develop/projectforge-business/src/main/resources/application.properties[application.properties]

== Documentation

Refer

== Adding your own plugins ProjectForge support plugins. The existing menu can be modified and own entities and functionalities can be added.

Please note: We're working highly on a new release (will be published soon). Wicket will be replaced by ReactJS and Rest technology. The implementation of plugins will be changed as well.

The menu is customizable (you can add or remove menu entries in the config.xml file). Deploy your plugins by adding your jar(s) to the plugin directory next to the jar file. In eclipse you have to add the plugin project to the run configuration classpath. The jars contains both, the Java classes and the web pages (Wicket-pages). Nothing more is needed. Register your plugins in the administration menu at the web gui. You need to restart the server. One advantage is that your own plugins are independent from new releases of the ProjectForge core system. In one of the next releases an example plugin will show you how easy it is to extend ProjectForge!