Plants of the World Online
An international collaborative programme that has as a primary aim to make available digitized data of the world's flora gathered from the past 250 years of botanical exploration and research.
https://github.com/RBGKew/powop
Category: Biosphere
Sub Category: Plants and Vegetation
Last synced: about 8 hours ago
JSON representation
Repository metadata
Plants of the World Online Portal
- Host: GitHub
- URL: https://github.com/RBGKew/powop
- Owner: RBGKew
- License: agpl-3.0
- Created: 2015-09-28T10:26:17.000Z (over 9 years ago)
- Default Branch: production
- Last Pushed: 2022-05-13T13:06:21.000Z (almost 3 years ago)
- Last Synced: 2025-04-17T21:29:09.006Z (10 days ago)
- Language: Java
- Size: 110 MB
- Stars: 21
- Watchers: 12
- Forks: 3
- Open Issues: 0
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
README.md
Plants of the World Online
Plants of the World Online Portal is a global, online, biodiversity information resource. This repository contains the code for the data model, harvester and web portal.
The POWO code powers:
Developing
The easiest way to run the POWO app is using docker-compose
. In order to do this you need to run the following to build images for the different modules:
mvn install
Once this is done you can run the following to start the application
docker-compose up
Initial setup
Once you have the application up and running you will need to load some data to interact with. To do this:
- Go to
http://localhost:10080/admin/#/organisations
- Click the cog in the top right and login with username
admin
and passwordpassword
- Click the cog in the top right and click import - select the
powo-harvest/local-development-data-configuration.json
as the file - Go to
http://localhost:10080/admin/#/lists
and click the play icon next to theLoad everything
job [Note: if you want images in search results, first follow the Images instructions below]
This loads a subset of the full data onto your development machine. It can take several hours to complete.
Making changes
If any module dependencies have been updated (e.g. after running git pull
) rebuild your local modules using:
mvn install
After making changes to a specific module you can rebuild just that module using the following commands (using the relevant Maven module e.g. powo-portal
):
mvn prepare-package -pl powo-portal
mvn package -pl powo-static
Then you can restart that service using the following command (using the relevant service name defined in docker-compose.yaml
e.g. portal
):
docker-compose up portal
You can run services that change infrequently in the background to simplify this process and make startup easier:
docker-compose up -d db harvester solr geoserver geodb
Then restarting only the services you need:
docker-compose up portal ingress
Making changes to the frontend
First, start all the docker services with docker-compose up -d
.
If you make changes to the frontend handlebars templates you will need to rebuild powo-portal
:
mvn package -pl powo-portal -Ddockerfile.skip
If you are working mainly on the frontend JS or CSS, you can use the following command to start automatic asset recompilation and browser reload:
# If yarn not installed globally
npm i -g yarn
# Then start automatic asset compilation
cd powo-portal/src/main/frontend
yarn dev
# Connect to a different backend, for developing an alternative POWO site
yarn dev --backend-port=20080
Issues with services hanging
If the portal
and harvester
services are hanging and failing to startup, it can be an issue with an unreleased lock on a Liquibase managed table. This can happen when services are stopped and don't properly release the locks. To fix this you can run:
docker exec <your_db_container_id> mysql --user=powo --password=powo powo -e "UPDATE DATABASECHANGELOGLOCK SET LOCKED=0, LOCKGRANTED=null, LOCKEDBY=null where ID=1;"
This will reset the lock on the db, after that you can stop and restart your containers and they should be OK.
Images
In order for the app to load images correctly, it needs a CDN key. The steps to do this locally are:
- Get the CDN key from the POWO team
- Create a file called
.env
in the root of the project - Add the following line, replacing
your_cdn_key
with the actual key:
CDN_KEY=your_cdn_key
Deployment
Deployment for POWO is managed via the powo-infrastructure repository. Please refer to that for all deployment documentation.
Owner metadata
- Name: Royal Botanic Gardens, Kew
- Login: RBGKew
- Email: [email protected]
- Kind: organization
- Description: Biodiversity Informatics team at RBG Kew
- Website: https://www.kew.org/science/who-we-are-and-what-we-do/departments/biodiversity-informatics-and-spatial-analysis
- Location: London
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/6953174?v=4
- Repositories: 32
- Last ynced at: 2023-11-24T14:00:23.357Z
- Profile URL: https://github.com/RBGKew
GitHub Events
Total
- Watch event: 2
Last Year
- Watch event: 2
Committers metadata
Last synced: 5 days ago
Total Commits: 3,389
Total Committers: 31
Avg Commits per committer: 109.323
Development Distribution Score (DDS): 0.857
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
ben | b****n | 485 |
Malcolm Stone | m****e@k****g | 484 |
John Iacona | J****a@k****g | 389 |
ben | b****k@z****k | 328 |
John Iacona | j****a@k****g | 246 |
David Bishop | d****p@k****g | 232 |
jk00kg | j****g@k****g | 155 |
ben | b****n@z****k | 149 |
annapaola | a****o@z****k | 144 |
James Crowe | j****e@k****g | 103 |
jk00kg | j****g | 91 |
Matthew Blissett | M****t@k****g | 84 |
annapaola | a****a | 74 |
Joaquim de Souza | j****a@k****g | 68 |
Jenkins | n****s@k****g | 62 |
Joaquim | j****s@g****m | 51 |
Jenkins Continuous Build server | j****s@g****) | 45 |
Joaquim dSouza | J****a@k****g | 39 |
ben | b****k@g****m | 34 |
Joseph Kelly | j****y@k****g | 32 |
John Iacona | j****a@g****m | 31 |
jenkins | j****s | 20 |
danielddb | d****l@c****m | 13 |
Nicky Nicolson | n****n@k****g | 10 |
Ben Clark | b****n@e****) | 7 |
jc20kg | j****g@A****g | 4 |
Nick | n****k@k****g | 3 |
Ben Clark | b****n@l****n | 2 |
Nicky Nicolson | n****n@g****m | 2 |
Nick Black | N****k@k****g | 1 |
and 1 more... |
Committer domains:
- kew.org: 15
- zoo.ox.ac.uk: 2
- localhost.localdomain: 1
- a9494.ad.kew.org: 1
- eeepc.(none): 1
- class-creative.com: 1
- godfraysrv.(none): 1
- zoo-benclark.zoo.ox.ac.uk: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 0
Total pull requests: 2
Average time to close issues: N/A
Average time to close pull requests: about 2 months
Total issue authors: 0
Total pull request authors: 2
Average comments per issue: 0
Average comments per pull request: 1.5
Merged pull request: 0
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
Top Pull Request Authors
- NatClamp (1)
- gmlewis (1)
Top Issue Labels
Top Pull Request Labels
Dependencies
- mariadb 10.3.5 build
- eu.gcr.io/powop-1349/db latest
- eu.gcr.io/powop-1349/geodb latest
- eu.gcr.io/powop-1349/geoserver latest
- eu.gcr.io/powop-1349/harvester latest
- eu.gcr.io/powop-1349/ingress latest
- eu.gcr.io/powop-1349/portal latest
- eu.gcr.io/powop-1349/solr latest
- rbgkew/gke-helm-deployer 0.1.6 build
- mysql 5.5 build
- tomcat 8.0-jre8-alpine build
- tomcat 9-jre11-slim build
- tomcat 9-jre11-slim build
- solr 7.5-alpine build
- nginx 1.15-alpine build
- com.github.eirslett:frontend-maven-plugin 1.6 provided
- javax.servlet.jsp:jsp-api 2.2 provided
- javax.servlet:javax.servlet-api 3.1.0 provided
- org.projectlombok:lombok 1.18.6 provided
- ch.qos.logback:logback-access 1.2.2
- ch.qos.logback:logback-classic 1.2.2
- com.eclipsesource.minimal-json:minimal-json 0.9.4
- com.fasterxml.jackson.core:jackson-annotations 2.9.6
- com.fasterxml.jackson.core:jackson-core 2.9.6
- com.fasterxml.jackson.core:jackson-databind 2.9.6
- com.fasterxml.jackson.dataformat:jackson-dataformat-xml 2.9.6
- com.github.jknack:handlebars 4.1.2
- com.github.jknack:handlebars-springmvc 4.1.2
- com.google.guava:guava 23.5-jre
- com.jayway.jsonpath:json-path 2.2.0
- com.mattbertolini:liquibase-slf4j 2.0.0
- com.spatial4j:spatial4j 0.5
- com.sun.xml.bind:jaxb-impl 2.3.2
- com.thoughtworks.xstream:xstream 1.4.7
- com.vividsolutions:jts 1.13
- commons-beanutils:commons-beanutils 1.9.3
- commons-io:commons-io 2.5
- gnu.trove:trove 2.1.0
- javax.xml.bind:jaxb-api 2.3.0
- javax.xml.stream:stax-api 1.0-2
- joda-time:joda-time 2.9.4
- net.sf.ehcache:ehcache-core 2.6.11
- net.sf.json-lib:json-lib 2.3
- org.apache.commons:commons-dbcp2 2.1.1
- org.apache.commons:commons-lang3 3.5
- org.apache.httpcomponents:httpclient 4.5.2
- org.apache.httpcomponents:httpmime 4.5.2
- org.apache.lucene:lucene-analyzers-common 7.5.0
- org.apache.lucene:lucene-core 7.5.0
- org.apache.lucene:lucene-queries 7.5.0
- org.apache.solr:solr-solrj 7.5.0
- org.codehaus.woodstox:wstx-asl 3.2.7
- org.gbif:dwc-api 1.16
- org.gbif:dwca-reader 1.18
- org.gbif:ecat-common 1.6
- org.geotools:gt-epsg-hsql 17.1
- org.geotools:gt-main 17.1
- org.geotools:gt-shapefile 17.1
- org.hibernate.javax.persistence:hibernate-jpa-2.1-api 1.0.0.Final
- org.hibernate:hibernate-core 5.3.9.Final
- org.hibernate:hibernate-java8 5.3.9.Final
- org.hibernate:hibernate-spatial 5.3.9.Final
- org.hibernate:hibernate-validator 6.0.16.Final
- org.jadira.usertype:usertype.core 6.0.1.GA
- org.jsoup:jsoup 1.10.2
- org.liquibase:liquibase-core 3.6.1
- org.liquibase:liquibase-maven-plugin 3.6.1
- org.mariadb.jdbc:mariadb-java-client 2.7.4
- org.powo:powo-model 2.0.0
- org.powo:powo-persistence 2.0.0
- org.powo:powo-service 2.0.0
- org.slf4j:jcl-over-slf4j 1.7.5
- org.slf4j:jul-to-slf4j 1.7.5
- org.slf4j:log4j-over-slf4j 1.7.5
- org.slf4j:slf4j-api 1.7.5
- org.springframework.batch:spring-batch-core 4.0.0.RELEASE
- org.springframework.batch:spring-batch-infrastructure 4.0.0.RELEASE
- org.springframework.security:spring-security-acl 5.0.1.RELEASE
- org.springframework.security:spring-security-config 5.0.1.RELEASE
- org.springframework.security:spring-security-core 5.0.1.RELEASE
- org.springframework.security:spring-security-web 5.0.1.RELEASE
- org.springframework:spring-aop 5.1.2.RELEASE
- org.springframework:spring-beans 5.1.2.RELEASE
- org.springframework:spring-context 5.1.2.RELEASE
- org.springframework:spring-context-support 5.1.2.RELEASE
- org.springframework:spring-core 5.1.2.RELEASE
- org.springframework:spring-expression 5.1.2.RELEASE
- org.springframework:spring-jdbc 5.1.2.RELEASE
- org.springframework:spring-jms 5.1.2.RELEASE
- org.springframework:spring-orm 5.1.2.RELEASE
- org.springframework:spring-oxm 5.1.2.RELEASE
- org.springframework:spring-tx 5.1.2.RELEASE
- org.springframework:spring-web 5.1.2.RELEASE
- org.springframework:spring-webmvc 5.1.2.RELEASE
- stax:stax 1.2.0
- xmlunit:xmlunit 1.3
- com.github.tomakehurst:wiremock test
- com.github.tomakehurst:wiremock 2.6.0 test
- junit:junit test
- junit:junit 4.12 test
- org.easymock:easymock 3.0 test
- org.hamcrest:hamcrest-core 1.3 test
- org.hamcrest:hamcrest-library 1.3 test
- org.mockito:mockito-core 2.7.22 test
- org.powo:powo-service 2.0.0 test
- org.springframework.batch:spring-batch-test 4.0.0.RELEASE test
- org.springframework:spring-test 5.1.2.RELEASE test
- com.github.eirslett:frontend-maven-plugin
- ch.qos.logback:logback-access
- ch.qos.logback:logback-classic
- com.mattbertolini:liquibase-slf4j
- com.sun.xml.bind:jaxb-impl
- com.thoughtworks.xstream:xstream
- commons-io:commons-io
- javax.servlet:javax.servlet-api
- javax.xml.bind:jaxb-api
- javax.xml.stream:stax-api
- joda-time:joda-time
- org.apache.httpcomponents:httpclient
- org.codehaus.woodstox:wstx-asl
- org.easymock:easymock
- org.gbif:dwc-api
- org.gbif:dwca-reader
- org.gbif:ecat-common
- org.hamcrest:hamcrest-library
- org.hibernate:hibernate-core
- org.liquibase:liquibase-core
- org.mariadb.jdbc:mariadb-java-client
- org.powo:powo-model
- org.powo:powo-service
- org.projectlombok:lombok
- org.slf4j:jcl-over-slf4j
- org.slf4j:jul-to-slf4j
- org.slf4j:log4j-over-slf4j
- org.slf4j:slf4j-api
- org.springframework.batch:spring-batch-core
- org.springframework.batch:spring-batch-infrastructure
- org.springframework.batch:spring-batch-test
- org.springframework.security:spring-security-config
- org.springframework.security:spring-security-core
- org.springframework.security:spring-security-web
- org.springframework:spring-jdbc
- org.springframework:spring-jms
- org.springframework:spring-orm
- org.springframework:spring-test
- org.springframework:spring-web
- org.springframework:spring-webmvc
- xmlunit:xmlunit
- org.glassfish:javax.el 3.0.0 test
- org.powo:powo-persistence ${project.version} test
- ch.qos.logback:logback-classic
- com.fasterxml.jackson.core:jackson-annotations
- com.fasterxml.jackson.core:jackson-core
- com.fasterxml.jackson.core:jackson-databind
- com.spatial4j:spatial4j
- com.thoughtworks.xstream:xstream
- com.vividsolutions:jts
- javax.servlet:javax.servlet-api
- joda-time:joda-time
- org.apache.commons:commons-lang3
- org.apache.solr:solr-solrj
- org.easymock:easymock
- org.gbif:ecat-common
- org.geotools:gt-epsg-hsql
- org.geotools:gt-main
- org.geotools:gt-shapefile
- org.hamcrest:hamcrest-library
- org.hibernate.javax.persistence:hibernate-jpa-2.1-api
- org.hibernate:hibernate-core
- org.hibernate:hibernate-spatial
- org.hibernate:hibernate-validator
- org.jadira.usertype:usertype.core
- org.jsoup:jsoup
- org.mockito:mockito-core
- org.projectlombok:lombok
- org.slf4j:jcl-over-slf4j
- org.slf4j:slf4j-api
- org.springframework.batch:spring-batch-core
- org.springframework.security:spring-security-acl
- org.springframework.security:spring-security-core
- org.springframework:spring-aop
- org.springframework:spring-beans
- org.springframework:spring-context
- org.springframework:spring-core
- org.springframework:spring-orm
- org.springframework:spring-oxm
- org.springframework:spring-web
- stax:stax
- xmlunit:xmlunit
- javax.xml.stream:stax-api test
- commons-beanutils:commons-beanutils
- javax.servlet:javax.servlet-api
- org.apache.commons:commons-dbcp2
- org.apache.lucene:lucene-analyzers-common
- org.apache.solr:solr-solrj
- org.gbif:ecat-common
- org.hamcrest:hamcrest-core
- org.hamcrest:hamcrest-library
- org.hibernate:hibernate-core
- org.hibernate:hibernate-spatial
- org.mariadb.jdbc:mariadb-java-client
- org.powo:powo-model
- org.projectlombok:lombok
- org.slf4j:jul-to-slf4j
- org.springframework.batch:spring-batch-core
- org.springframework.security:spring-security-acl
- org.springframework:spring-jdbc
- org.springframework:spring-orm
- org.springframework:spring-test
- com.mattbertolini:liquibase-slf4j test
- org.liquibase:liquibase-core test
- ch.qos.logback:logback-access
- ch.qos.logback:logback-classic
- com.eclipsesource.minimal-json:minimal-json
- com.fasterxml.jackson.core:jackson-annotations
- com.fasterxml.jackson.core:jackson-core
- com.fasterxml.jackson.core:jackson-databind
- com.fasterxml.jackson.dataformat:jackson-dataformat-xml
- com.github.eirslett:frontend-maven-plugin
- com.github.jknack:handlebars
- com.github.jknack:handlebars-springmvc
- com.google.guava:guava
- com.mattbertolini:liquibase-slf4j
- com.sun.xml.bind:jaxb-impl
- javax.servlet:javax.servlet-api
- javax.xml.bind:jaxb-api
- joda-time:joda-time
- net.sf.ehcache:ehcache-core
- org.apache.commons:commons-dbcp2
- org.apache.commons:commons-lang3 3.9
- org.apache.commons:commons-text 1.7
- org.apache.httpcomponents:httpclient
- org.easymock:easymock
- org.gbif:ecat-common
- org.hamcrest:hamcrest-library
- org.liquibase:liquibase-core
- org.mariadb.jdbc:mariadb-java-client
- org.powo:powo-model
- org.powo:powo-service
- org.projectlombok:lombok
- org.slf4j:slf4j-api
- org.springframework.security:spring-security-config
- org.springframework.security:spring-security-web
- org.springframework:spring-context
- org.springframework:spring-jms
- org.springframework:spring-test
- org.springframework:spring-web
- org.springframework:spring-webmvc
- org.powo:powo-service test
- org.yaml:snakeyaml 1.10 test
- javax.servlet:javax.servlet-api
- net.sf.ehcache:ehcache-core
- org.apache.commons:commons-dbcp2
- org.easymock:easymock
- org.hamcrest:hamcrest-library
- org.powo:powo-model
- org.powo:powo-persistence
- org.springframework.security:spring-security-acl
- org.springframework.security:spring-security-config
- org.springframework.security:spring-security-web
- org.springframework:spring-context
- org.springframework:spring-context-support
- org.springframework:spring-test
- @babel/core ^7.1.2 development
- @babel/polyfill ^7.0.0 development
- @vue/cli-plugin-babel ^3.0.5 development
- @vue/cli-plugin-eslint ^3.0.5 development
- @vue/cli-plugin-unit-mocha ^3.0.5 development
- @vue/cli-service ^3.0.5 development
- @vue/test-utils ^1.0.0-beta.16 development
- chai ^4.2.0 development
- vue-cli-plugin-vuetify ^0.2.1 development
- vue-template-compiler ^2.5.17 development
- webpack ^4.20.2 development
- axios ^0.18.0
- lodash ^4.17.10
- vue ^2.5.16
- vue-router ^3.0.1
- vuetify ^1.2.9
- vuex ^3.0.1
- 1115 dependencies
- @babel/core ^7.12.9 development
- @babel/preset-env ^7.12.7 development
- autolinker ^3.14.3 development
- babel-jest ^26.6.3 development
- babel-plugin-transform-amd-to-commonjs ^1.4.0 development
- browser-sync ^2.26.13 development
- del ^2.0.2 development
- gulp ^4.0.2 development
- gulp-autoprefixer ^3.1.0 development
- gulp-cssnano ^2.1.0 development
- gulp-define-module ^0.1.4 development
- gulp-extname ^0.2.2 development
- gulp-filter ^4.0.0 development
- gulp-flatten ^0.2.0 development
- gulp-handlebars ^5.0.0 development
- gulp-htmlmin ^4.0.0 development
- gulp-imagemin ^4.1.0 development
- gulp-load-plugins ^1.2.0 development
- gulp-load-subtasks ^1.1.2 development
- gulp-raster ^0.2.0 development
- gulp-rename ^1.2.2 development
- gulp-requirejs ^1.1.1 development
- gulp-rev ^7.1.2 development
- gulp-sass ^5.0.0 development
- gulp-sass-lint ^1.2.0 development
- gulp-sourcemaps ^1.9.1 development
- gulp-svg-sprite ^1.2.11 development
- gulp-uglify ^3.0.0 development
- gulp-util ^3.0.6 development
- handlebars 4.0.6 development
- imagemin-pngquant ^9.0.1 development
- jest ^26.6.3 development
- require-dir ^0.3.0 development
- run-sequence ^1.1.4 development
- sass ^1.39.0 development
- yargs ^16.2.0 development
- chalk ^1.1.1 development
- gulp ^3.9.0 development
- gulp-sass-lint ^1.1.1 development
- gulp-util ^3.0.7 development
- mocha ^2.3.4 development
- sass-lint ^1.7.0 development
- sass-true ^2.1.2 development
- sassdoc ^2.1.20 development
- sassdoc-theme-herman ^0.2.0 development
- 1566 dependencies
- PyYAML ==5.3.1
- cachetools ==4.1.1
- certifi ==2020.6.20
- chardet ==3.0.4
- crcmod ==1.7
- google-api-core ==1.22.0
- google-auth ==1.19.2
- google-cloud-core ==0.29.1
- google-cloud-dns ==0.29.1
- google-cloud-logging ==1.9.0
- googleapis-common-protos ==1.52.0
- grpcio ==1.29.0
- idna ==2.8
- ipaddress ==1.0.23
- kubernetes ==6.0.0
- oauthlib ==3.1.0
- protobuf ==3.12.2
- pyasn1 ==0.4.8
- pyasn1-modules ==0.2.8
- python-dateutil ==2.8.1
- pytz ==2020.1
- requests ==2.21.0
- requests-oauthlib ==1.3.0
- rsa ==4.6
- six ==1.15.0
- urllib3 ==1.24.3
- websocket-client ==0.57.0
Score: 6.47850964220857