Website URL: https://github.com/YCPRadioTelescope/RT-Contracts
Clone command (https): git clone https://github.com/YCPRadioTelescope/RT-Contracts
Clone command (git): git@github.com:YCPRadioTelescope/RT-Contracts
Name: YCPRadioTelescope
GitHub Account: https://github.com/YCPRadioTelescope
Email Address: jhorne@ycp.edu
Name: Joel Horne
Email Address: jhorne@ycp.edu
The following technologies are used in the development of the back-end application:
You can clone the repository using either the https or the git commands supplied above, but in order to contribute to the repository, you must be added as a contributor. To achieve this, contact the repository owner (mentioned above), and they will handle this.
IntelliJ IDEA Ultimate Edition is free for anyone with a student license, which thankfully, applies to anyone with an ".edu" email address. All you need to do is create an account on their website, and from there, you can access all software that applies to you via the student license. It is important to note that the student license can only be used for student projects, which this project falls under.
The process on windows is rather straightforward, and is primarily handled through an installer/setup wizard.
The steps needed to install via Linux are as follows:
For Windows users, you should be able to follow the steps here to install Gradle.
If you are using Mac or Linux, it is highly recommended to install SDKMAN, which allows you to then easily install Gradle using SDKMAN. The list of steps to install Gradle on Mac and Linux are:
For Windows users, you should be able to follow the steps/setup wizard here
If you are using linux, do the following:
IntelliJ has a built-in database tab that allows you to manage the contents of your database from within the IDE. In order to add your localhost database to IntelliJ, do the following:
View -> Tool Windows -> Database
.radio_telescope
schema to MySQL using create database radio_telescope
def profile = (project.hasProperty('profile') ? project.profile : 'prod').toLowerCase()
to
def profile = (project.hasProperty('profile') ? project.profile : 'local').toLowerCase()
to setup the database on your local machine.The application depends on certain application properties files that unfortunately cannot be added to GitHub. These files must be obtained from the repository owner. The properties files must be placed in
/RT-Contracts/src/main/resources/properties.
As well, to run the database locally you must add your local MySQL password to the spring.datasource.password field of the application_local.properties file.
In order to install the gradle wrapper (needed to boot up the application locally), issue the following
command in the terminal inside of IntelliJ:
gradle wrapper
Then, boot the application with gradlew bootRun
(./gradlew bootRun
on Linux). This will populate the local database.
The API endpoints and their respective form templates are hosted on SwaggerHub here. They will be updated as new endpoints are added.
The Radio Telescope Contracts/Back-End application uses javadocs to publish documentation. This process can be done manually via the following process:
Alternatively, if you cloned the repository via git/ssh, you can simply run the following command, which will automate the above process for you (recommended):
./publish-api-docs.sh
scriptThe docs can be viewed here. As a general rule of thumb, the docs should be published whenever code is merged into master and deployed to the production server.
The management console for the web application (along with the services used for this project) can be accessed here.
In order to access the management console, you need an IAM User account. If you do not have one, contact the console root user (mentioned above) and they will create an IAM user for you and send you the credentials.
For the backend, we use:
There is a lot going on with these files, and if something isn't working the problem most likely resides here. Important Things to check:
The backend will not run on any other Java JDK version than 1.8. If the build fails during the compile step, verify the java version it is looking for is correct
The backend may run into another issue with the bean creation:
"2022-10-12 11:29:00.140 ERROR 9340 --- [ost-startStop-1] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'servletEndpointRegistrar' [...] "
- Suggested fix is to restart the computer since Tomcat is very moody