Commit b4f1e765 authored by Koehorst, Jasper's avatar Koehorst, Jasper
Browse files

Update README.md

Deleted frontend/generated/index.ts, frontend/generated/vaadin.ts, frontend/src/README, frontend/styles/views/about/about-view.css, frontend/styles/views/empty/empty-view.css, frontend/styles/views/main/main-view.css, frontend/styles/README, frontend/styles/shared-styles.css, frontend/styles/shared-styles.js, frontend/styles/vaadin-text-field-styles.css, gradle/wrapper/gradle-wrapper.jar, gradle/wrapper/gradle-wrapper.properties, src/main/java/nl/fairbydesign/backend/credentials/Credentials.java, src/main/java/nl/fairbydesign/backend/data/objects/AVU.java, src/main/java/nl/fairbydesign/backend/data/objects/Assay.java, src/main/java/nl/fairbydesign/backend/data/objects/Biom.java, src/main/java/nl/fairbydesign/backend/data/objects/DiskUsage.java, src/main/java/nl/fairbydesign/backend/data/objects/File.java, src/main/java/nl/fairbydesign/backend/data/objects/GridSelection.java, src/main/java/nl/fairbydesign/backend/data/objects/Investigation.java, src/main/java/nl/fairbydesign/backend/data/objects/Item.java, src/main/java/nl/fairbydesign/backend/data/objects/Job.java, src/main/java/nl/fairbydesign/backend/data/objects/Member.java, src/main/java/nl/fairbydesign/backend/data/objects/ObservationUnit.java, src/main/java/nl/fairbydesign/backend/data/objects/Process.java, src/main/java/nl/fairbydesign/backend/data/objects/Project.java, src/main/java/nl/fairbydesign/backend/data/objects/Sample.java, src/main/java/nl/fairbydesign/backend/data/objects/Study.java, src/main/java/nl/fairbydesign/backend/data/yaml/FileClass.java, src/main/java/nl/fairbydesign/backend/data/yaml/Workflow.java, src/main/java/nl/fairbydesign/backend/data/yaml/WorkflowBiom.java, src/main/java/nl/fairbydesign/backend/data/yaml/WorkflowClustalO.java, src/main/java/nl/fairbydesign/backend/irods/Browser.java, src/main/java/nl/fairbydesign/backend/irods/Connection.java, src/main/java/nl/fairbydesign/backend/irods/Data.java, src/main/java/nl/fairbydesign/backend/kubernetes/Kubernetes.java, src/main/java/nl/fairbydesign/backend/metadata/Metadata.java, src/main/java/nl/fairbydesign/backend/metadata/MetadataParser.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Address.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Base.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Bases.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/CloudFile.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/CloudFiles.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Contact.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/DESCRIPTOR.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/DESIGN.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Database.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Databases.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/EXPERIMENT.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/EXPERIMENTPACKAGE.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/EXPERIMENTPACKAGESET.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/EXPERIMENTREF.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/EXTERNALID.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Elements.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/IDENTIFIERS.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/ILLUMINA.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/LIBRARYDESCRIPTOR.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/LIBRARYLAYOUT.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/LS454.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Member.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Name.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Organization.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/PLATFORM.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Pool.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/READSPEC.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/RUN.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/RUNATTRIBUTE.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/RUNATTRIBUTES.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/RUNSET.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Read.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Root.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Rows.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLE.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLEATTRIBUTE.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLEATTRIBUTES.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLEDESCRIPTOR.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLELINK.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLELINKS.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SAMPLENAME.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SPOTDECODESPEC.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SPOTDESCRIPTOR.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SRAFile.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SRAFiles.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/STUDY.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/STUDYLINK.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/STUDYLINKS.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/STUDYREF.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/STUDYTYPE.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/SUBMISSION.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Statistics.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/Table.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/URLLINK.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esample/XREFLINK.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/ESearchResult.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/ErrorList.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/IdList.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/Root.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/TermSet.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/TranslationStack.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/esearch/WarningList.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/sheets/Investigation.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/sheets/Project.java, src/main/java/nl/fairbydesign/backend/ncbi/objects/sheets/Study.java, src/main/java/nl/fairbydesign/backend/ncbi/NCBI.java, src/main/java/nl/fairbydesign/backend/ncbi/XLSX.java, src/main/java/nl/fairbydesign/backend/parsers/ExcelGenerator.java, src/main/java/nl/fairbydesign/backend/parsers/ExcelValidator.java, src/main/java/nl/fairbydesign/backend/parsers/Structure.java, src/main/java/nl/fairbydesign/backend/ApplicationServiceInitListener.java, src/main/java/nl/fairbydesign/backend/Config.java, src/main/java/nl/fairbydesign/backend/WebGeneric.java, src/main/java/nl/fairbydesign/views/about/AboutView.java, src/main/java/nl/fairbydesign/views/authentication/LoginView.java, src/main/java/nl/fairbydesign/views/authentication/LogoutView.java, src/main/java/nl/fairbydesign/views/authentication/UserView.java, src/main/java/nl/fairbydesign/views/browser/BrowserView.java, src/main/java/nl/fairbydesign/views/config/Config.java, src/main/java/nl/fairbydesign/views/main/MainView.java, src/main/java/nl/fairbydesign/views/template/TemplateView.java, src/main/java/nl/fairbydesign/views/unlock/archive/Archive.java, src/main/java/nl/fairbydesign/views/unlock/dashboard/DashboardView.java, src/main/java/nl/fairbydesign/views/unlock/export/Export.java, src/main/java/nl/fairbydesign/views/unlock/management/managementView.java, src/main/java/nl/fairbydesign/views/unlock/README.md, src/main/java/nl/fairbydesign/views/validation/ValidationView.java, src/main/java/nl/fairbydesign/Application.java, src/main/resources/META-INF/resources/icons/icon.png, src/main/resources/META-INF/resources/images/frontpage.png, src/main/resources/META-INF/resources/images/logo.png, src/main/resources/META-INF/resources/images/unlock_logo.png, src/main/resources/META-INF/resources/images/user.svg, src/main/resources/META-INF/services/com.vaadin.flow.server.VaadinServiceInitListener, src/main/resources/help/assay/ampliconassay.txt, src/main/resources/help/assay/ampliconlibraryassay.txt, src/main/resources/help/assay/assay.txt, src/main/resources/help/assay/dnaseqassay.txt, src/main/resources/help/assay/metabolomicsassay.txt, src/main/resources/help/assay/proteomicsassay.txt, src/main/resources/help/assay/rnaseqassay.txt, src/main/resources/help/investigation.txt, src/main/resources/help/member.txt, src/main/resources/help/metabolomicsAssay.txt, src/main/resources/help/observationUnit.txt, src/main/resources/help/project.txt, src/main/resources/help/proteomicsAssay.txt, src/main/resources/help/sample.txt, src/main/resources/help/study.txt, src/main/resources/queries/asv.sparql, src/main/resources/queries/getAllConnections.txt, src/main/resources/queries/getAllIdentifiers.txt, src/main/resources/queries/getAssay.txt, src/main/resources/queries/getAssayTitles.txt, src/main/resources/queries/getBarcodeValidation.txt, src/main/resources/queries/getInvestigation.txt, src/main/resources/queries/getInvestigations.txt, src/main/resources/queries/getLibraryCount.txt, src/main/resources/queries/getObservationUnit.txt, src/main/resources/queries/getObservationUnits.txt, src/main/resources/queries/getPrimerFragmentInfo.txt, src/main/resources/queries/getPrimerNames.sparql, src/main/resources/queries/getProject.txt, src/main/resources/queries/getProjects.txt, src/main/resources/queries/getSample.txt, src/main/resources/queries/getSampleFromAssay.txt, src/main/resources/queries/getSamples.txt, src/main/resources/queries/getStudies.txt, src/main/resources/queries/getStudy.txt, src/main/resources/queries/header.txt, src/main/resources/queries/library.sparql, src/main/resources/queries/mAssay.sparql, src/main/resources/queries/mInvestigation.sparql, src/main/resources/queries/mObservationUnit.sparql, src/main/resources/queries/mProject.sparql, src/main/resources/queries/mSample.sparql, src/main/resources/queries/mStudy.sparql, src/main/resources/queries/prefixes.txt, src/main/resources/queries/sequence.sparql, src/main/resources/queries/tax.sparql, src/main/resources/views/about/about_default.html, src/main/resources/views/about/about_localhost.html, src/main/resources/views/about/about_unlock.html, src/main/resources/views/UNLOCK-structure_V5-wit.jpg, src/main/resources/views/footer.html, src/main/resources/application.properties, src/main/resources/banner.txt, src/main/resources/config.json, src/main/resources/metadata.xlsx, src/main/resources/~$metadata.xlsx, src/test/java/nl/fairbydesign/munlock/AppTest.java, src/test/java/nl/fairbydesign/munlock/ConfigTest.java, src/test/java/nl/fairbydesign/munlock/ExcelTest.java, src/test/java/nl/fairbydesign/munlock/RegexTest.java, src/test/java/nl/fairbydesign/munlock/StructureTest.java, src/test/java/nl/fairbydesign/munlock/iRODSTest.java, LICENSE, .gitlab-ci.yml, .gitignore, build.gradle, build.sh, gradle.properties, gradlew, gradlew.bat, package-lock.json, package.json, startDevelopment.sh, startProduction.sh, webpack.config.js, webpack.generated.js
parent ba6c35d6
/node_modules/
/build/
/.gradle/
/target/
/unlock/
json
image:
name: docker-registry.wur.nl/unlock/docker:kubernetes
entrypoint: [""] # force an empty entrypoint
#stages to execute
stages:
- test_build
before_script:
- export PATH="/root/.sdkman/candidates/maven/current/bin:/root/.sdkman/candidates/java/current/bin:/root/.sdkman/candidates/gradle/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
- curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh && sh ./nodesource_setup.sh && apt-get update && apt-get install --yes nodejs
#test the gradle build
test_build_dev:
stage: test_build
script:
- ./build.sh
- FILENAME=./build/libs/fairds-1.0.1.jar
- /scripts/upload.sh $FILENAME
only:
- dev
#test the gradle build
test_build_master:
stage: test_build
script:
- ./build.sh
- FILENAME=./build/libs/fairds-1.0.1.jar
- /scripts/upload.sh $FILENAME
only:
- master
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2021 UNLOCK
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
## Interface for the unlock metadata infrastructure
We have moved this repository to a more public location!!!
This interface has been developed to collect and validate metadata. When doing research it is crucial that information about the project, what is being investigated, who is involved, which samples are taken and what data has been collected is recorded in an consistent manner. With this interface users will be able to generate and validate metadatasets regarding research projects.
## Running the application
The application can be obtained from http://download.systemsbiology.nl/unlock/data-interface-1.0.1.jar. After download the program can be started by `java -jar -Dserver.port=8082 data-interface-1.0.1.jar` in which `-Dserver.port=8082` sets the port that will be used by the application.
## Development
To continue development with this package you need several programs.
We currently use Intellij in combination with SDKMAN for Java 11
- IntelliJ: https://www.jetbrains.com/idea/
- SDKMAN: https://sdkman.io
## Java dependencies:
Currently there are two packages that are not available through the maven repository. A function has been implemented in gradle which will download the JAR files. (There is also a `build.sh` script which will be able to download the jar files from our repository and install them in your local maven repository but should not be needed in the long run.)
The two packages are:
- iRODS available via https://github.com/DICE-UNC/jargon/releases/download/4.3.0.2-RELEASE/jargon-core-4.3.0.2-RELEASE-jar-with-dependencies.jar
- UNLOCK Ontology available via http://download.systemsbiology.nl/unlock/UnlockOntology.jar
The iRODS package is required for the authentication to an iRODS instance where data and metadata can be processed.
The UNLOCK ontology package contains the ISA ontology in combination with UNLOCK extensions allowing metadata files to be processed, validated and transformed into RDF statements. The ontology can be found at http://git.wur.nl/unlock/ontology
## Starting the project
In intellij you can open this folder and it should recognise it as a gradle project. It will then start loading, building and indexing all the files that are available. Once it is completed you should be able to see the different gradle options on the right. Make sure that the two jar (iRODS and UNLOCK ontology) are already present in the root of this folder.
## Running the code in development mode
During development you need to open the code base in IntelliJ and load it as a gradle project. Once it is successfully loaded and compiled there should be an elephant / Gradle button available on the right top side of the window. This contains all possible tasks available for the unlock-interface project. Under tasks there should be Application with the bootRun option. By clicking the bootRun option it will start the web interface. Once it is successfully started you can access the application at http://localhost:8081. Further configuration can be done via the *application.properties* file.
## Running the code in production mode
To start the program in production mode you need to compile the code into a jar package. There is a startProduction.sh script available that will pull in the latest version available and build with production mode enabled through `./gradlew build -Dvaadin.productionMode=true`. Once it is completed you can start the program using `java -jar -Dserver.port=8082 web/build/libs/web-1.0.1.jar` in which in this case it will be available under http://localhost:8082.
## Metadata
An important part of the metadata registration form is the metadata.xlsx file that is incorporated into the resource (src/main/resources/metadata.xlsx). This excel file contains the elements that are optional or required for the different levels (Project, Investigation, etc...). Each level contains some obligatory elements such as the identifier or description of an object and can easily be modified as indicated by the `Requirement` column.
Each sheet contains the following columns:
```
# Package: makes a distinction between different metadata packages available (Currently only supported for sample types)
Structured comment name: The identifier of the property (e.g., carb_dioxide)
Item (rdfs:label): A human readable label which is used in the excel headers and in the ontology as rdfs:label for the properties
Requirement: Mandatory, Optional, free (x)
Value syntax: The format used (numeric, data, string, unit) validated through regular expressions (e.g., {float} {unit})
Example: An example of the value and how it is defined (e.g., 410 parts per million)
URL: RDF property URL when defined otherwise will switch to default URL space + /<structured comment name>
Preferred unit: The unit of measurement that is preferred but not obligatory
Definition: The definition of the structured comment name
```
The sheets, Project, Investigation, Study, ObservationUnit, Sample and Assay are obligatory sheets the content of the optional properties can be freely adjusted. New assay types can be created by creating a new excel sheet appending the sheet name with ...Assay. The properties in these sheets are recognised and the interface will be dynamically updated accordingly.
## Ontology
The metadata infrastructure is supported by an ontology that is based on the ISA schema from the JERM Ontology. It has been further expanded with project information, users and observation units. The latest version of the ontology is available at http://git.wur.nl/unlock/ontology and we are looking for collaborators to imporve this further!
\ No newline at end of file
https://gitlab.com/m-unlock/fairds
plugins {
id 'org.springframework.boot' version '2.6.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'com.vaadin' version '0.14.7.3'
}
defaultTasks("clean", "build")
group = 'nl.munlock'
version = '1.0.1'
sourceCompatibility = JavaVersion.VERSION_17
repositories {
mavenCentral()
maven { url "https://maven.vaadin.com/vaadin-addons" }
}
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
// Function to download and include URL jar files
def urlFile = { url, name ->
File file = new File("$buildDir/download/${name}.jar")
file.parentFile.mkdirs()
if (!file.exists()) {
new URL(url).withInputStream { downloadStream ->
file.withOutputStream { fileOut ->
fileOut << downloadStream
}
}
}
files(file.absolutePath)
}
dependencies {
implementation('com.vaadin:vaadin-spring-boot-starter') {
// Webjars are only needed when running in Vaadin 13 compatibility mode
["com.vaadin.webjar", "org.webjars.bowergithub.insites",
"org.webjars.bowergithub.polymer", "org.webjars.bowergithub.polymerelements",
"org.webjars.bowergithub.vaadin", "org.webjars.bowergithub.webcomponents"]
.forEach { group -> exclude(group: group) }
}
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'org.vaadin.olli:file-download-wrapper:3.0.1'
// Use JUnit test framework.
testImplementation 'junit:junit:4.13.2'
// This dependency is used by the application.
implementation 'com.google.guava:guava:31.0.1-jre'
// irods dependency obtained locally
implementation urlFile('https://github.com/DICE-UNC/jargon/releases/download/4.3.0.2-RELEASE/jargon-core-4.3.0.2-RELEASE-jar-with-dependencies.jar', 'jargon-core-4.3.0.2-RELEASE-jar-with-dependencies')
// unlock ontology obtained locally
implementation urlFile('http://download.systemsbiology.nl/unlock/UnlockOntology.jar', 'UnlockOntology')
// kubernetes api
implementation 'io.kubernetes:client-java:14.0.0'
// Excel parsers
implementation 'org.apache.poi:poi:5.0.0'
implementation 'org.apache.poi:poi-ooxml:5.0.0'
// Checker implementation
implementation 'org.checkerframework:checker-qual:3.18.1'
implementation group: 'com.esotericsoftware.yamlbeans', name: 'yamlbeans', version: '1.14'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.4.5'
// Download button functionality
implementation 'org.vaadin.stefan:lazy-download-button:1.0.0'
implementation 'org.json:json:20180130'
}
dependencyManagement {
imports {
mavenBom "com.vaadin:vaadin-bom:$vaadinVersion"
}
}
test {
useJUnitPlatform()
}
vaadin {
pnpmEnable = false
productionMode = true
}
\ No newline at end of file
#!/bin/bash
#============================================================================
#title :Unlock Interface Project
#description :Project web and gui interface combined with a library
#author :Jasper Koehorst
#date :2021
#version :0.0.1
#============================================================================
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
git -C $DIR pull
# Ensure that node is not available and the version provided by vaadin will be used
sudo apt-get remove nodejs
# ////////////////////////////////////////////////////////////////////////////////////
$DIR/gradlew build -Dvaadin.productionMode=true -x test
/******************************************************************************
* This file is auto-generated by Vaadin.
* If you want to customize the entry point, you can copy this file or create
* your own `index.ts` in your frontend directory.
* By default, the `index.ts` file should be in `./frontend/` folder.
*
* NOTE:
* - You need to restart the dev-server after adding the new `index.ts` file.
* After that, all modifications to `index.ts` are recompiled automatically.
* - `index.js` is also supported if you don't want to use TypeScript.
******************************************************************************/
// import Vaadin client-router to handle client-side and server-side navigation
import { Router } from '@vaadin/router';
// import Flow module to enable navigation to Vaadin server-side views
import { Flow } from '@vaadin/flow-frontend/Flow';
const { serverSideRoutes } = new Flow({
imports: () => import('../../build/frontend/generated-flow-imports')
});
const routes = [
// for client-side, place routes below (more info https://vaadin.com/docs/v15/flow/typescript/creating-routes.html)
// for server-side, the next magic line sends all unmatched routes:
...serverSideRoutes // IMPORTANT: this must be the last entry in the array
];
// Vaadin router needs an outlet in the index.html page to display views
const router = new Router(document.querySelector('#outlet'));
router.setRoutes(routes);
import './index';
import '@vaadin/flow-frontend/VaadinDevmodeGizmo.js';
Place your Vaadin Designer or hand written templates in this folder.
Place your optional styles in this folder.
See https://vaadin.com/docs/flow/theme/theming-overview.html for getting started on theming Vaadin applications.
/*
CSS styling examples for the Vaadin app.
Visit https://vaadin.com/docs/flow/theme/theming-overview.html and
https://vaadin.com/themes/lumo for more information.
*/
/* Example: CSS class name to center align the content . */
.centered-content {
margin: 0 auto;
max-width: 250px;
}
// eagerly import theme styles so as we can override them
import '@vaadin/vaadin-lumo-styles/all-imports';
const $_documentContainer = document.createElement('template');
$_documentContainer.innerHTML = `
<custom-style>
<style>
html {
}
</style>
</custom-style>
<custom-style>
<style>
html {
overflow:hidden;
}
</style>
</custom-style>
<dom-module id="app-layout" theme-for="vaadin-app-layout">
<template>
<style>
:host(:not([dir='rtl']):not([overlay])) [part='drawer'] {
border-right: none;
box-shadow: var(--lumo-box-shadow-s);
background-color: var(--lumo-base-color);
z-index: 1;
}
:host([dir='rtl']:not([overlay])) [part='drawer'] {
border-left: none;
box-shadow: var(--lumo-box-shadow-s);
background-color: var(--lumo-base-color);
z-index: 1;
}
[part='navbar'] {
box-shadow: var(--lumo-box-shadow-s);
}
</style>
</template>
</dom-module>`;
document.head.appendChild($_documentContainer.content);
/*
CSS styling examples for the Vaadin app.
Visit https://vaadin.com/docs/flow/theme/theming-overview.html and
https://vaadin.com/themes/lumo for more information.
*/
/* Example: border-only style for all Vaadin textfields . */
[part="input-field"] {
box-shadow: inset 0 0 0 1px var(--lumo-contrast-30pct);
background-color: var(--lumo-base-color);
}
#about-view {
display: block;
padding: var(--lumo-space-m) var(--lumo-space-l);
}
:host {
display: block;
padding: var(--lumo-space-m) var(--lumo-space-l);
}
#empty-view {
display: block;
padding: var(--lumo-space-m) var(--lumo-space-l);
}
:host {
display: block;
padding: var(--lumo-space-m) var(--lumo-space-l);
}
<
#header {
height: var(--lumo-size-xl);
}
#header img {
border-radius: 50%;
height: var(--lumo-size-s);
margin-left: auto;
margin-right: var(--lumo-space-m);
overflow: hidden;
background-color: var(--lumo-contrast);
}
#header h1 {
font-size: var(--lumo-font-size-l);
margin: 0;
}
#logo {
box-sizing: border-box;
box-shadow: inset 0 -1px var(--lumo-contrast-10pct);
padding: var(--lumo-space-s) var(--lumo-space-m);
}
#logo img {
height: calc(var(--lumo-size-l) * 1.5);
}
#logo h1 {
font-size: var(--lumo-font-size-xl);
font-weight: 600;
margin: 0 var(--lumo-space-s);
}
vaadin-tab {
font-size: var(--lumo-font-size-s);
height: var(--lumo-size-l);
font-weight: 600;
color: var(--lumo-body-text-color);
}
vaadin-tab:hover {
background-color: var(--lumo-contrast-5pct);
}
vaadin-tab[selected] {
background-color: var(--lumo-primary-color-10pct);
color: var(--lumo-primary-text-color);
}
.aligncenter {
text-align: center;
}
.footer {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background-color: #263346 ;
color: white;
text-align: center;