pjullrich/uber-for-bikes
Uber for Bikes
I developed this project during one of my University courses called "Web and Cloud Computing". It includes a front-end that shows bikes on a Google Map, which can be "rented" and "unrented". The front-end communicates with a Java back-end via Websockets. The back-end manages a MongoDB database, which holds information about the location and avaliability of the bikes, and does some simple user managenment.
Architecture

The whole point of the course was to develop a distributed system using Vagrant and Docker. The front-end and back-end are included in a single Docker container and are integrated using Glassfish. The MongoDB nodes are individual Docker container, which can be connected with each other into a network that uses sharding to replicate data. We used Consul to keep track of the container instances and to load balance "incoming traffic" over the front-end nodes. Newly created containers automatically connected to Consul.
Contribution
This project was developed largely by me in cooperation with Yannik and Nadia.