This project will assist you in building the critical skills necessary to complete tasks concerning both the Front-End (React) and Back-End (Java) of a web application.
-
Fork this repository. In the top right of this page you’ll see a fork option. Click that and accept all the default options.
-
Now you should be in your users forked repo. To verify this you should see
your.username/fullstack-starter
in the top left/url. -
Clone your forked repository to your environment via git+ssh:
git clone [email protected]:<your_username_here>/fullstack-starter.git
As this project is a "fullstack" application, you’ll need software to run both the backend (server side) and frontend (client side) frameworks.
One of the easiest tools to use to install java tooling is to use sdkman. It can be installed on your machine by executing the following from a command line:
curl -s "https://get.sdkman.io" | bash
You will then either need to run the source
command provided at the end of the installer (one time only) or close and open a new terminal window.
Once you have sdkman installed you can use it to install Java. One of the advantages of installing this way is that because sdk relies on symlinks, you can have multiple versions of Java installed at the same time and easily switch which one is the active version.
Running sdk list java
will have sdkman list out the available versions. This application supports up to java 11 so you can select a distribution that is based on Java 11.
For example:
sdk install java 11.0.12-open
will install version 11.0.12 provided by java.net. Alternatively you could select
sdk install java 11.0.16.1-ms
to install 11.0.16.1 from Microsoft.
In addition to Java, sdkman also offers easy installs of other Java tooling, namely gradle
and maven
. In this case we are going to install gradle
.
Running sdk list gradle
will show us all the available versions of gradle and we can choose on tht works for our project. In our case we can go with whatever is the latest version, 7.5.1
at the time of writing. Following the same vein as java it can be installed as follows:
sdk install gradle 7.5.1
Node.js is a javascript runtime that can be used to run both server side javascript and build bundles for executing in a browser. In our case we are going to be taking advantage of this bundling feature to build all of our browser code. Fortunately, nodejs is available as system managed package, ie: dnf, yum, apt, pacman.
On fedora and other redhat based distros: sudo dnf install nodejs
On ubuntu or other debian based distros: sudo apt install nodejs
The backend java code can be found in the starter
folder.
-
In order to run the web application, we need to compile, or "build", the data objects and classes from the back-end. Enter the following command:
./gradlew build
-
Next, we are ready to run the back-end of the application. Enter the following command:
./gradlew bootRun
The front end part of the project can be found in the ui
folder.
-
In order to run the front-end, we must first resolve any dependencies that the project relies on. Enter the following command:
npm install
-
After the dependencies have been resolved, we are ready to run the front-end of the application. In the same directory, enter the following command:
npm start
-
Lastly, to view the operating front-end, navigate to localhost:3000 in your preferred browser.