MARVIN is a simple, non-trivial yet complete nanoservices example on DC/OS. He got his name from another famous Marvin. MARVIN provides recommendations for close-by public transport facilities such as bus stops for the events in a calendar provided. You can think of it as a sort of very specialized spatio-temporal personal assistant.
MARVIN comprises:
- a calendar proxy nanoservice nS1
- an OpenStreetMap lookup nanoservice nS2
- an public transport facilities (PTF) recommender nanoservice nS3
- a frontend, a NGINX-based Web app frontend
- go2 as a service discovery mechanism
Data sources used in MARVIN:
- a default Google calendar
- OpenStreetMap, to be precise the Overpass API
In order to use MARVIN you'll have to have a DC/OS 1.7 cluster set up.
Deploy manually:
$ cd specs/
$ dcos marathon app add go2.json
$ dcos marathon app add marvin-events.json
$ dcos marathon app add marvin-osmlookup.json
$ dcos marathon app add marvin-rec.json
$ dcos marathon app add marvin-frontend.json
Deploy using dploy: TBD
Once MARVIN is deployed you can go to the front-end and get recommendations for public transport facilities that are close-by your today's events:
Note that is you want to extend MARVIN, have a look at the development and testing document.