My second individual project with QA as an academy trainee.
This application is for tree enthusiasts who want to track which trees that they've spotted. It was built to demonstrate my understanding of Sprign and connecting to a working back-end along with front-end through API calls.
The minimum viable product: A working front end (with working API calls) which connect to a Java back-end with a relational database.
See project documents for more information.
The project Kanban board can be found here
Current release: v.0.2.0 - in development
Test coverage:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and where to find them.
To Run
Java SE 8 (or later) to run the jar file.
Maven to create the jar-file and run.
If my GCP instance is no longer live then you will need;
A relational database to configure the application to.
(a GCP instance is recommended as it doesn't require much application configuration. MySQL and h2 can also work however.)
For the front end any modern browser can be used.
Command line or git bash to run the jar file.
To Develop
Most IDEs will suggest dependencies/libraries based on the pom.xml file.
I used IntelliJ was my main IDE for this project.
API calls were tested using Postman and then written in JavaScript
The CI pipeline for this project was Jenkins
Links for Dependencies
This project is hosted on GitHub. You can clone this project directly using this command:
git clone https://github.com/Femarleycode/Tree_Kingdom.git
A java runtime environment is required on your PC to run this along with a version of Maven to build the project. Having Eclipse would also be useful if you wish to edit or test the code, though other Java IDE's will work fine.
Fork this repository to your own GitHub and then clone it to your PC. From there, the .jar file can be created using the command line. Open your command line in the main directory of the project and run the following commands to get the program working, using Maven and Java. Run each command one line at a time! ''' mvn clean package cd target java -jar FelixMarley-SoftwareMarch16-HobbyProject.jar '''
Running the tests can be done by opening the source code in an IDE and running the test codes as a JUnit application. Alternatively, opening your command line in the main directory and running the tests via maven will also work, with the command given below. ''' mvn clean test '''
Building this application and pushing it forward to a computer or virtual machine hosting Sonarqube will allow the user to anylise the code for coding style issues, bugs and security issues.
The project has been deployed via multiple stages of a CI pipeline. It is first pushed to GitHub, before being retrieved by Jenkins. Jenkins utilises maven to run the unit tests and build the project before pushing it further ahead to both Sonarqube (for more testing) and Nexus, for artifact repositing and hosting the fully built application.
- Maven - Dependency Management
- Jenkins - CI Pipeline scripter
- Eclipse - IDE
- SonarQube - static analysis
- Nexus - artifact repository
- Trello - planning, kanban
- MySQL - database language
- GCP - database host
- JUnit - Testing (see pom.xml)
- Mockito - Testing (see pom.xml)
Felix Marley - Author - Femarleycode
This project is licensed under the MIT license - see the LICENSE.md file for details
For help in Choosing a license
Tadas Vaidotas - Spring and Solenium trainer, Provided a basis for the project - tvaidotas, the basis can be found here
Jordan Harrison - Java trainer, support and also provided a basis for the project - JHarry444, the basis can be found here
Nicholas Johnson - Software trainer and project management support - nickstewarttds
Christian Redfern - Support with Java, JS, HTML and APIs - Chrisctr
Caroline Strasenburgh - Java support, guidance and planning support - CarolineS-QA
David Williams - Java and Spring support - DavidWilliamsQA
Embedded Artistry - Documentation templates - embeddedartistry, the template can be found here