Openclassrooms project number 8
Application TourGuide for the startup TripMaster. This is a Gradle multi-project Spring Boot + Docker application for project number 8 of Openclassrooms java back-end formation.
Project goals:
- Improve gpsUtil execution time in TourGuideService.trackUserLocation.
- Improve RewardsCentral execution time in RewardsService.getRewardPoints.
- Add an entrypoint for user preferencies modifications, this will allow tripPricer to calculate with correct inputs.
- Split TourGuide in a Gradle multi-project and deploy in docker containers.
- Modify the method TourGuideController.getNearbyAttractions to return closest five tourist attractions to the user.
- Correct unit tests bugs due to "java.util.ConcurrentModificationException"
- Modify performance load tests to use multithreaded solution developped for gpsUtil/RewardsCentral execution time.
- Modify the method TourGuideController.getAllCurrentLocations according to the TODO, and create unit test.
This is how to set up the project locally. To get a local copy up and running follow these simple example steps:
Check that you have :
-
Java 8 installed
java -version
-
For Windows Home Edition, use WSL2 (Windows subsystem Linux)
How to install and run Docker natively on Windows 10 Home -
Docker Desktop
Install Docker Desktop on Windows
- Choose a directory
cd /path/to/directory/project - Clone the repo
git clone https://github.com/jerome13250/JavaPathENProject8.git
- Select the JavaPathENProject8 directory
cd JavaPathENProject8 - Assemble executable jar archives using gradle wrapper provided in the folder, it downloads automatically the correct Gradle version if necessary.
gradlew clean bootJar
- On Windows system, use WSL2 (Windows subsystem Linux)
wsl
- Launch the docker-compose to launch the 4 components:
docker-compose up
- To access the application endpoints, open your browser, go to :
webapp Swagger
gps-api Swagger
reward-api Swagger
trippricer-api Swagger
