Skip to content

selvaradjousk/TourGuide

Repository files navigation

*** *** ***

TourGuide

TourGuide is a game changer Spring Boot web application with MSA (MicroService Architecure) technologies developed by TripMaster. The strong highlight features of the application's Architecture is that it resonates through its rich functionality for its flexible scalability & high availability .

TOURGUIDE IMAGE

It is available as a web interface both on PC & mobile platforms for all touristic users.

Key features

  • Helps explore and discover attractions available near user's travel location;
  • Provides reliable and up-to-date real-time information on the discounts for Travel, Hotel reservation, Touristic Attractions Ticket offers, etc.;
  • Personalised serach information based on the user's favorite preferences related to touristic attractions and travel offers.

To meet the explosive growth on the touristic user's client base, architecture redesigned is being implemented in this project to optimize performance for high volume user demands.

Technological Spec & Run Prerequisites

  • Java 1.8 JDK
  • Gradle 7.3
  • Docker

Architectural Spec:

TourGuide application is composed of 4 microservices:

  • TourGuide
  • gps-ms (microservice)
  • rewards-ms (microservice)
  • tripDeals-ms (microservice)

TOURGUIDE IMAGE


TOURGUIDE IMAGE


TOURGUIDE IMAGE


TOURGUIDE IMAGE


TOURGUIDE IMAGE


TOURGUIDE IMAGE


Application Run configuration

Gradle

gradle bootRun or ./gradle bootRun
gradle bootWar or ./gradle bootWar or ./gradle bootJar

Docker

Building Docker images

Use the Dockerfile on the package roots containing individual 4 services to build docker images

SYNTAX:

docker build . -f Dockerfile -t imageNameToBeCreated

Running a Docker image

Use the DockerImage created above & run a Docker image using the command below

SYNTAX:

docker run -d -p HostPort:InternalAppPort --name dockerContainerNameToBeCreated -d DockerImageName

Docker Compose

In case, if want to use an automated multi-container workflow with docker-compose, follow details below:

To deploy all TourGuide microservices in a single go, use the docker-compose.yml on the package root containing all 4 services that will orchestrate multiple containers that work together based on the defined configuration in it.

SYNTAX:

docker-compose up -d

Testing

Gradle, Junit (Unit & Integration Tests).

SYNTAX:

gradlew test or ./gradlew test or gradlew clean test

Reporting

Test Results


TOURGUIDE IMAGE



TOURGUIDE IMAGE



TOURGUIDE IMAGE



Metrics

Test Performance on highVolume User Tracking & User Rewards Computations are performed & available.

HighVolume User Tracking Report - Graph

Performance report on User Location

HighVolume Rewards Calculation Report - Graph

Performance report on user rewards


API (Endpoints) documentation

All endpoints are documented with POSTMAN and can be accessed launched with the below link to POSTMAN:

POSTMAN - TOURGUIDE APIs


Authors

Mentee: 🡆 @Senthil
Mentor: 🡆 Clément SEZETTRE

versions

Version: 🡆 1.0

License

@OpenClassrooms & @TourGuide

Reference Documentation

For further reference, consider the following sections:

Reference Guides

The following guides illustrate how to use some features concretely:

About

TourGuide - An application for better availability, scalability and performance

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages