This application provides easy and intuitive real time visualisation of different data indicators in dublin city like dublin bikes, dublin bus , Pedestrian Data, Dublin AQI levels. It further uses complex predictive models to generate real time trends from this real time data. The trends within different data points are then combined together to generate real time recommendations based on the co-relation analysis within these data points. These recommendation will help the city managers/planners to efficeintly plan out city resources. In addition this application will also provvide the simulated data in case of failure or absesne/failure of any of the external data sources
This repository contains the backend services of this application. This application is divided into a set of individual microservice projects representing a unique service. Following are the set of microservices representing different services:
Gateway - (gateway) Gateway service acts as an entry point for the application. All the external requests are routed to the individual microservices through the gateway. It's also used to perform security checks and filter out requests that fail to satisfy the security requirements. authorization. It routes requests to individual services using a service address registry.
Eureka - (eurekaserver) Acts as a service registry.
User - (user-service) handles user registration and login.
Util - (util) A simple library project having utility functions like generating tokens etc.
Real Time Data - (real-time-data-processor) service is responsible for fetching the real time data from external data providers. It also provides simulated data in case of failure of external data source.
Trends And Recommendations - (data-trends-predictions) python service is used to provide real time trend analysis and recommendations. IT also implements simulation models to generate simulated data.
Java 8/8+
Docker https://docs.docker.com/get-docker/
To run the application locally run the following commands in sequence (N.B. TCD Wifi interferes with this so please be on another network)
-
Eureka (Discovery Service)
From the main project directory:cd eurekaserver
mvn clean package
-
Run utility/library project -
Run from main project directory -cd utils
mvn clean install
-
Run gateway service -
Run from main project directory -cd gateway
mvn clean package
-
Run user service -
Run from main project directory -cd user-service
mvn clean package
-
Run real-time-data-processor -
Run from main project directory -cd gateway
mvn clean package
-
After running the above commands, Docker can be used to run the application on the local setup. Run the following commands get application up and running (N.B. TCD Wifi interferes with this so please be on another network)
docker-compose build
docker-compose up -d
docker-compose up -d --no-deps --build <service_name>
docker-compose stop
docker-compose logs <service_name>/<container_name>