Skip to content

DiegoKrupitza/FastV2I

Repository files navigation

FastV2I

Project completed in the course Distributed Systems Engineering Lecture 2022 - Vienna University of Technology, Dr. Johannes Weidl-Rektenwald

Picture of a running simulation

FastV2I is a visual simulation software that allows you to simulate vehicles and traffic lights in a given configuration. The cars aim to minimize the amount of standing time in front of red traffic lights. To do so a sophisticated flow control algorithm tells the car what speed it should drive.

Quick Architecture Overview

The project is developed using a microservice architecture. The service consists out of 6 Microservices:

  1. Gateway Service: used to hide internal services from the outside world
  2. Tracking Service: storing dynamic information about the actors of the simulation (e.g. Remaining seconds in state green or current location of the car).
  3. Entity Service: holds static information about the actors of the simulation (e.g vehicle information, location of the traffic light)
  4. Flowcontrol Service: responsible for calculating the perfect speed of the cars
  5. Simulator Service: simulates the behaviour of the actors in the simulation.
  6. Cockpit: the UI of the simulation.

Below you can see an overview of the architecture and their communication channels. Orange arrows denote asynchronous communication over the MoM (Message Oriented Middleware). Blue Arrows denote Restful communication from Service A to Service B.

FastV2I Architecture Communication Channels

Swagger

Swagger UI for Entity Service

Under https://[gateway-service-ip]:8080/swagger-ui.html you can access the interactive swagger ui for all the publicly exposed services. Below you can see a screenshot of the UI when the Entity Service is selected. In the top right corner you can switch between the services.

Team members

The team of developers consists of:

  • Diego Krupitza
  • Jan Müller
  • Kian Pouresmaeil

Development

Installation

yarn install && yarn install:all

Docker

Start

yarn dev

Stop

yarn down

Credits