This a simple application to maintain tasks.
It uses a JavaScript frontend with React and a Java backend with Spring Boot.
In the frontend it uses React, Normalize CSS, Material UI framework library, Materialize CSS, Bootstrap and Bootstrap Material Design.
In the backend it uses Spring Boot, MySQL database and Apache Commons helpers.
It also uses Ruby Foreman gem to run the client and server tasks in parallel.
For now Spring Boot is configured to discard persisted data when the application starts.
- Clone the repository:
- Run the MySQL migration, located at:
supero-ti-challenge/server/java/spring_boot/spring_boot_01/src/main/resources/migrations/001 - Creating the database and the application database user.sql
- Install client packages:
- cd supero-ti-challenge/client/javascript/react/react_01
- yarn install
- Start client and server:
- cd ../../../../
- Parallel using foreman:
- foreman start
- Manually
- First terminal (client):
- cd client/javascript/react/react_01
- npm start
- Second terminal (server):
- cd server/java/spring_boot/spring_boot_01
- ./gradlew bootRun
- First terminal (client):
- Test the application:
- Clone the repository:
- Run the MySQL migration, located at:
supero-ti-challenge/server/java/spring_boot/spring_boot_01/src/main/resources/migrations/001 - Creating the database and the application database user.sql
- Install global npm package to serve the client (on production mode):
- yarn global add serve
- Install client packages:
- cd supero-ti-challenge/client/javascript/react/react_01
- yarn install
- Build client application optimized for production:
- yarn run build
- Start client and server
- First terminal (client):
- cd client/javascript/react/react_01
- serve -p 10002 -s build
- Second terminal (server):
- cd server/java/spring_boot/spring_boot_01
- ./gradlew bootRun
- First terminal (client):
- Test the application:
If you don't have yarn, npm should do the job too.
Follow the official instructions here.
If you can use in your OS WebUpd8 ppas do the following:
- sudo add-apt-repository ppa:webupd8team/java
- sudo apt-get update
- sudo apt-get install oracle-java8-installer
Follow the official instructions here.
If you don't have NodeJS and NPM installed yet you can follow these instructions in the official documentation.
If you already have npm installed and you would like update it to the latest version you can do it as follows:
- npm install npm@latest -g
If you already have npm installed and you would like to update the NodeJS to the latest version you can do it as follows:
- sudo npm cache clean -f
- sudo npm install -g n
- sudo n stable
Important! The option -f
is used to force clean the npm cache. Take care about it.
Anyway, I usually do this when I would like to install the latest NodeJS.
If you don't have yarn installed yet you can follow these instructions in the official documentation.
These instructions is used to install the local npm dependencies. The dependencies
will be placed in the node_modules
folder (already ignored by .gititnore
).
- yarn install
If you don't have the latest ruby yet you can install it using rvm. The official documentation is here.
- Add rvm keys:
- gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
- Install rvm:
- \curl -sSL https://get.rvm.io | bash
- Install the latest ruby:
- rvm install ruby --latest
If would like to update all your gems first you can do it as follows:
- gem update
With the following you can install the foreman gem.
- gem install foreman