TriMamba is a collection of tools aimed to gather event information from different sources into a database.
This project was part of the Trivago Tech Camp 2019.
TriMamba was a short project in the scope of the 2019th TechCamp by Trivago. It was a two weeks project where students tried to build a small product prototype that could be used in an global application.
- Dzheko Akperov
- bundesliga-mamba crawler written in Kotlin
Crawls event data from the official Bundesliga website - Chrome extension for trivago.com written in JavaSript
- bundesliga-mamba crawler written in Kotlin
- Fabian Fritzsche
- eventbrite-mamba written in NodeJS
Fetches data from the official Eventbrite API - Backend setup (Docker, Elastic stack, Nginx)
- eventbrite-mamba written in NodeJS
TriMamba uses the Elastick Stack to store and visualize data. Both elasticsearch and Kibana need to be setup in advance. For our purposes we dockerized both and ran them linked besides the crawlers.
Before pushing data to the database, make sure to create an index first using the mapping in common/mappings.json
. Note the chosen index name for later usage.
NOTE: Unfortunately on December 12th 2019 the Eventbrite search API has been discontinued, making eventbrite-mamba not functional anymore :( To learn more, check the Eventbrite API changelog. Code and Readme will be kept for archival purposes.
- Install using
npm install
- Create a .env file in the node application's root directory and set the environment variables for
ELASTIC_URI
: elasticsearch database url + index name (https://example.com/events
)TOKEN_EVENTBRITE
: Eventbrite API secret
- local
- run using
npm start
- run using
- docker
- Build the
Dockerfile
withdocker build --tag eventbrite-mamba .
- Run the image with
docker run --env-file .env eventbrite-mamba
- Build the
- Create a .env file in the node application's root directory and set the environment variables for
The extension was running on a pivate development environment. In order to use it, setup elasticsearch as described above and add event data with one of the crawlers or manually. Also be sure to replace the server URL in contentScript.js
.
The current extension is a very early prototype. To avoid Chrome's cross-origin blocking you need to start Chrome/Chromium with these command line arguments: --disable-web-security --user-data-dir
To add the chrome extension, go to chrome://extensions/
and click Load unpacked in the top-left corner. Choose the manifest.json
file of the extension and confirm. Now navigate to https://trivago.com and search for a city. For now, geocoding is not supported. The extension simply uses the city name from the webpages title.
The results will be shown above the search results of trivago.