Skip to content

Latest commit

 

History

History
101 lines (72 loc) · 2.91 KB

README.md

File metadata and controls

101 lines (72 loc) · 2.91 KB

TourGuide

build codecov.io

TourGuide is a mobile and PC application that will change the way you travel!

Poster

Documentation

Enhanced performance (730x faster!)

Since the legacy version, tracking performance was improved by parallelizing tasks and replicating overloaded services (to remove the bottlenecks).

Here is a benchmark for 100 000 users (AMD Ryzen 9 3900XT - 24 x 4.0GHz • 64GB RAM):

  • Before (2 hours, 5 minutes and 48 seconds):

    Begin Tracker. Tracking 100000 users.
    [...]
    Tracker Time Elapsed: 7548.387s.
    
  • After (10 seconds):

    Begin Tracker. Tracking 100000 users.
    Tracking progression:   7984/100000 Δ  7984 | 1.000s
    Tracking progression:  17514/100000 Δ  9530 | 2.000s
    Tracking progression:  27282/100000 Δ  9768 | 3.000s
    Tracking progression:  37610/100000 Δ 10328 | 4.000s
    Tracking progression:  47746/100000 Δ 10136 | 5.000s
    Tracking progression:  57736/100000 Δ  9990 | 6.000s
    Tracking progression:  67714/100000 Δ  9978 | 7.000s
    Tracking progression:  77620/100000 Δ  9906 | 8.000s
    Tracking progression:  87556/100000 Δ  9936 | 9.000s
    Tracking progression:  97174/100000 Δ  9618 | 10.000s
    Tracking progression: 100000/100000 Δ  2826 | 10.327s
    Tracker Time Elapsed: 10.327s.
    

Getting started

These instructions will get you a copy of the project up and running on your local machine for development.

Prerequisites

Running services

Compile the application using gradle:

./gradlew build

Then start all services (each in a different terminal):

java -jar gps/service/build/libs/tour-guide-gps.jar
java -jar rewards/service/build/libs/tour-guide-rewards.jar
java -jar users/service/build/libs/tour-guide-users.jar

Testing

./gradlew test

Updating documentation

./docs.sh generate
./docs.sh publish

Deployment

Take a look at docker-compose.yml for an example of deployment. You can test it by running:

docker-compose -p tourguide up --remove-orphans --build

Deployment Overview

Notes

This is a school project (for OpenClassrooms).

The goal is to resolve performance issues, split a monolithic application into multiple services and deploy them with Docker.