Vehicle Location Simulating and Tracking System is a real-time application which can simulate cars' moving path and monitor all the vehicle's real time info including position, direction and speed on the map.
- User can see all vechicle's current positions directly through the Google Map
- User can see vehicle's detailed information such as current direction, speed, vechicle's Id, owner's info and so on through side bar
- User can see the Supply location's (eg. Gas Station) detailed info on the Google Map
-
Netflix Eureka as service registration and discovery
-
Location Service: to supply the original vehicle's info(vehicle's status, owner's info, etc) to the end user and load into Database(initialization)
-
Supply Service: to supply the Gas Stations' info to the end user and store it to the database(initialization)
-
Location Simulator: to simulation the real-time location updates, it provides REST api for user to start and stop simulator
-
Location Distribution: to disbution the location updates to MessageQueue(RabbitMQ)
-
Location Updater: to Consume the locations updates in the MessageQueue, and return the updates to browser through Websocket
-
used Hystrix as circuit breaker
Besides, the system incorporated , used Spring Boot Actuator to monitor application health
- Backend: Java, Spring Boot, Spring Data, Spring Cloud, Netflix OSS, SQL, JPA, Maven, Tomcat, WebSocket, RabbitMQ, REST
- Frontend: HTML/CSS, Javascript, Bootstrap
- Databases: MongoDB, H2
- Tools: Git, Docker, Vagrant, IntelliJ IDEA
-
Service Start Sequence
- docker-compose up
- sh ./start-eureka.sh
- sh ./start-location-simulator.sh
- sh ./start-location-ingest.sh
- sh ./start-location-updater.sh
- sh ./start-fleet-location-service.sh
- go to fleet location service folder and run sh ./upload-fleet.sh
- sh./start-supply-location-service.sh
- sh ./start-dashboard.sh
-
UI
-
Open Dashboard UI on http://localhost:8080
-
Open Simulator UI on http://localhost:9005
-
Click run button to start simulation
-
Click stop button to stop simulation
-
Open Eureka UI on
-