Developer training - Environment setup
Workstation set-up
Please follow these instructions very carefully to ensure your environment is ready for a productive training. It's not necessary to have admin rights on your workstation to develop with the Genesis low-code platform, but you might have to check with your System Administrator how to install the required third-party software listed here.
Recommended hardware and software packages
Hardware
- RAM : 32GB minimum
- CPU : 8 Core
- SSD : 250GB
Software packages
Package | Recommended Version |
---|---|
IntelliJ | 2024.1.1 or above |
Java SDK or JDK (Choose the x64 installer download) | 17 |
NodeJS | 20 LTS |
Genesis Intellij plugin (Depending on your runtime environment) | 1.1.1 |
WSL (Depending on your runtime environment) | 0.1.2 |
Postman (optional) | 8 |
npm | 8 |
Gradle | 8.3 |
Chrome | 88.0 |
Kotlin | 1.9.0 |
You can use a range of IDEs (for example, Eclipse) with the Genesis low-code platform, but only IntelliJ enables you to make full use of the Genesis Platform Abstraction Language (GPAL) prompts and error checks in Intellisense - a major accelerator of development speed and accuracy. Genesis strongly recommends using IntelliJ.
Accessing the Genesis repository and configuring the Genesis packages
To verify this package, type npm info @genesislcap/foundation-ui
. If everything is ok, you should see a response like this:
@genesislcap/foundation-ui@0.0.26 | UNLICENSED | deps: 23 | versions: 111
Genesis Foundation UI
Please make sure:
- You have the correct versions of the software packages, especially node and npm, as explained in the workstation setup. If you have an older version of npm (run 'npm -v'), make sure you uninstall it first.
- If you're behind a corporate network, you may need to setup a proxy:
npm config set proxy http://proxy_host:port
npm config set https-proxy https://proxy_host:port
Install GenX CLI; this is a Genesis tool that enables you to seed projects.
npx @genesislcap/genx@latest
These may be caused by running GenX CLI in a proxy network that uses self-signed or missing certificates.
--insecure
flag can be used to skip SSL certificate verification:
npx @genesislcap/genx@latest --insecure
Gradle set-up
Make sure you have a gradle.properties file inside a .gradle folder in your user directory; this file must contain your clear text password:
genesisArtifactoryUser=<your-artifactory-user>
genesisArtifactoryPassword=<your-artifactory-password>
If you are behind a corporate proxy, make sure you add your proxy settings to the gradle.properties file as well. For example:
systemProp.https.proxyHost=proxy_hostname_here
systemProp.https.proxyPort=proxy_port_here
systemProp.https.proxyUser=your_proxy_user_here
systemProp.https.proxyPassword=your_proxy_password_here
#if behind an NTLM authenticated proxy, add the next line:
#systemProp.https.auth.ntlm.domain=your_network_domain_here
If you are unsure on what settings to use, please contact your IT support.
More information here.
Your own database
To run genesis applications, you need an individual database to create and test the back-end changes we are proposing. Check the Database Technology supported by Genesis.
To do this training, we have set an H2 database so you don't need to worry about setting up a new database. This database will be created automatically during this training.
Training requirements set-up
Start the project baseline
Clone the Developer Training starting repo from here, and open it using IntelliJ.
Running the back and front end
We are going to change the back-end and front-end code, so ideally we should have the server running to make our application work. In this training, we are going to use the IntelliJ plugin provided by Genesis. So, the first step is installing the plugin following the instructions here. Then, have a look at the Tools window installed to understand it and do the configurations asked.
As soon as everything is done and you are ok about the Intellij plugin, double-check if you can see the processes running properly as explained. You must see all processes up and running or in standby mode.