From 9e6af372cc846452b483faef8f827bb5fc724ff0 Mon Sep 17 00:00:00 2001 From: Michael Winsauer Date: Thu, 17 Jan 2019 20:22:57 +0100 Subject: [PATCH 01/16] Fix camunda port mapping There is no service running on 8085, so we need to map 8080 to 8085. --- g6t4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g6t4 b/g6t4 index ccd58bd..73fe4e8 100644 --- a/g6t4 +++ b/g6t4 @@ -4,7 +4,7 @@ services: build: ./camunda-overlay container_name: camunda ports: - - "8085:8085" + - "8085:8080" restart: always depends_on: - service-analysis -- 2.43.0 From c852fdb802d9f37aac67eb075439da18a592591b Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:40:53 +0100 Subject: [PATCH 02/16] #57 #54 and refactoring --- service-analysis/README.md | 23 +++++++++++---- service-analysis/analysis.py | 32 +++++++++++++++++++++ service-analysis/health_check.py | 6 ++++ service-analysis/indico_api_key.txt | 1 + service-analysis/sentiment_analysis.py | 39 ++++++-------------------- 5 files changed, 65 insertions(+), 36 deletions(-) create mode 100644 service-analysis/analysis.py create mode 100644 service-analysis/health_check.py create mode 100644 service-analysis/indico_api_key.txt diff --git a/service-analysis/README.md b/service-analysis/README.md index aa0e4c0..802b4eb 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -13,22 +13,27 @@ example body of request: ```json [ { - 'text': 'text 1', + 'text': 'sample text 1', }, { - 'text': 'text 2', + 'text': 'sample text 2', }, { - 'text': 'text 3', + 'text': 'sample text 3', } ] ``` JSON string may contain more value-key pairs than 'text', but 'text' is needed for the sentiment analysis. Everything else will be ignored. +For more examples see curl commands in local -> commands. ## API errors - `409`: input string does not meet specifications - `503`: indico sentiment analysis not available +## external services +This sentiment analysis service uses and relies on the online sentiment analysis indico ([https://www.indico.io]). +The api key can be set in the file indico_api_key.txt. The current key does work, however excessive use of this service will require you to provide your own key, since the amount of requests for this key is limited. + ## run with docker - `docker build -t sentiment_analysis .` - `docker container run -d -p YOUR_PORT:8081 sentiment_analysis` @@ -40,8 +45,14 @@ JSON string may contain more value-key pairs than 'text', but 'text' is needed f -> indicoio -> flask -> flask_restful - ### commands - `python3.7 sentiment_analysis.py` -- positive sentiment test example: `curl -vs -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` -- negative sentiment test example: `curl -vs -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` +- positive sentiment test example: + -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` +- negative sentiment test example: + -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` + +## health check +Under http://localhost:8081/health the service returns HTTP Status 200 if it is running OK. +### commans +curl -v -X GET http://localhost:8081/health diff --git a/service-analysis/analysis.py b/service-analysis/analysis.py new file mode 100644 index 0000000..291b8e0 --- /dev/null +++ b/service-analysis/analysis.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +import json +import indicoio + +from flask import request +from flask_restful import Resource, abort + +input_error_409 = 'Input must be a list of JSON objects. JSON objects must contain contain key text.' +service_error_503 = 'The sentiment analysis service is currently unavailable.' + +class Analysis(Resource): + def get(self): + return "POST a list of JSON objects as content-type: application/json. JSON objects must contain key 'text'.", 405, {'Allow': 'GET'} + + def post(self): + if not request.json or not isinstance(request.json, (list,)): + return abort(409, message=input_error_409) + texts = request.json + text_array = [] + value = 0 + for text in texts: + if 'text' not in text: + return abort(409, message=input_error_409) + text_array.append(text['text']) + try: + for sentiment_value in indicoio.sentiment(text_array): + value += sentiment_value + except: + return abort(503, message=service_error_503) + sentiment = value/len(text_array) + data = {'sentiment': sentiment} + return data diff --git a/service-analysis/health_check.py b/service-analysis/health_check.py new file mode 100644 index 0000000..500b923 --- /dev/null +++ b/service-analysis/health_check.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from flask_restful import Resource + +class Health_Check(Resource): + def get(self): + return "System up and running :)", 200 diff --git a/service-analysis/indico_api_key.txt b/service-analysis/indico_api_key.txt new file mode 100644 index 0000000..339d02b --- /dev/null +++ b/service-analysis/indico_api_key.txt @@ -0,0 +1 @@ +525f16078717a430f9dac17cdc9dbaa3 diff --git a/service-analysis/sentiment_analysis.py b/service-analysis/sentiment_analysis.py index 2a013e9..e27b0af 100644 --- a/service-analysis/sentiment_analysis.py +++ b/service-analysis/sentiment_analysis.py @@ -2,41 +2,20 @@ import json import indicoio -from flask import Flask, request, jsonify, Response -from flask_restful import Resource, Api, output_json, abort +from analysis import Analysis +from health_check import Health_Check + +from flask import Flask +from flask_restful import Api app = Flask(__name__) api = Api(app) -indicoio.config.api_key = '525f16078717a430f9dac17cdc9dbaa3' - -input_error_409 = 'Input must be a list of JSON objects. JSON objects must contain contain key text.' -service_error_503 = 'The sentiment analysis service is currently unavailable.' +with open('indico_api_key.txt', 'r') as key: + indicoio.config.api_key = key.read().replace('\n','') -class Sentiment_Analysis(Resource): - def get(self): - return "POST a list of JSON objects as content-type: application/json. JSON objects must contain key 'text'.", 405, {'Allow': 'GET'} - - def post(self): - if not request.json or not isinstance(request.json, (list,)): - return abort(409, message=input_error_409) - texts = request.json - text_array = [] - value = 0 - for text in texts: - if 'text' not in text: - return abort(409, message=input_error_409) - text_array.append(text['text']) - try: - for sentiment_value in indicoio.sentiment(text_array): - value += sentiment_value - except: - return make_error(503, message=service_error_503) - sentiment = value/len(text_array) - data = {'sentiment': sentiment} - return data - -api.add_resource(Sentiment_Analysis, '/') +api.add_resource(Analysis, '/') +api.add_resource(Health_Check, '/health') if __name__ == '__main__': app.run(host="0.0.0.0", port=8081, debug=False) -- 2.43.0 From 8247e261f3a2fb33e01570c701ae37116b96571f Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:43:11 +0100 Subject: [PATCH 03/16] small changes in readme --- service-analysis/README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/service-analysis/README.md b/service-analysis/README.md index 802b4eb..f2fefbc 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -41,16 +41,14 @@ The api key can be set in the file indico_api_key.txt. The current key does work ## run local ### requirements - python 3.7 -- pip - -> indicoio - -> flask - -> flask_restful +pip: +- indicoio +- flask +- flask_restful ### commands - `python3.7 sentiment_analysis.py` -- positive sentiment test example: - -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` -- negative sentiment test example: - -> `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` +- positive sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` +- negative sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` ## health check Under http://localhost:8081/health the service returns HTTP Status 200 if it is running OK. -- 2.43.0 From d26918b8b0d3ba8ce4516f2e5ee83f2edb19c707 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:44:00 +0100 Subject: [PATCH 04/16] small changes in readme --- service-analysis/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/service-analysis/README.md b/service-analysis/README.md index f2fefbc..2cdcbbc 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -41,10 +41,9 @@ The api key can be set in the file indico_api_key.txt. The current key does work ## run local ### requirements - python 3.7 -pip: -- indicoio -- flask -- flask_restful +- pip: indicoio +- pip: flask +- pip: flask_restful ### commands - `python3.7 sentiment_analysis.py` - positive sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` @@ -52,5 +51,5 @@ pip: ## health check Under http://localhost:8081/health the service returns HTTP Status 200 if it is running OK. -### commans +### commands curl -v -X GET http://localhost:8081/health -- 2.43.0 From 3f6989771352930af79fe1080a4c039c910dee99 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:45:23 +0100 Subject: [PATCH 05/16] small changes in readme --- service-analysis/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/service-analysis/README.md b/service-analysis/README.md index 2cdcbbc..3cf2f20 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -7,6 +7,8 @@ The service uses the the sentiment analysis service indico. `GET`: `/` Displays the expected input for a POST +`GET`: `/health` Returns HTTP Status 200 if service is running + `POST`: `/` Calculates the average sentiment for a given list of texts - param: Term[] as Content-Tye: `application/json` example body of request: -- 2.43.0 From dd861491d827049ec6d02d9c4a7effa30bdf2992 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:46:13 +0100 Subject: [PATCH 06/16] small changes in readme --- service-analysis/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service-analysis/README.md b/service-analysis/README.md index 3cf2f20..717af39 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -10,7 +10,7 @@ The service uses the the sentiment analysis service indico. `GET`: `/health` Returns HTTP Status 200 if service is running `POST`: `/` Calculates the average sentiment for a given list of texts -- param: Term[] as Content-Tye: `application/json` +- param: Term[ ] as Content-Tye: `application/json` example body of request: ```json [ @@ -33,7 +33,7 @@ For more examples see curl commands in local -> commands. - `503`: indico sentiment analysis not available ## external services -This sentiment analysis service uses and relies on the online sentiment analysis indico ([https://www.indico.io]). +This sentiment analysis service uses and relies on the online sentiment analysis indico (https://www.indico.io). The api key can be set in the file indico_api_key.txt. The current key does work, however excessive use of this service will require you to provide your own key, since the amount of requests for this key is limited. ## run with docker -- 2.43.0 From 8d0572de579aac1f4847afebad09f244fafa9ba5 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 15:47:13 +0100 Subject: [PATCH 07/16] small changes in readme --- service-analysis/README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/service-analysis/README.md b/service-analysis/README.md index 717af39..1572beb 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -50,8 +50,4 @@ The api key can be set in the file indico_api_key.txt. The current key does work - `python3.7 sentiment_analysis.py` - positive sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` - negative sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` - -## health check -Under http://localhost:8081/health the service returns HTTP Status 200 if it is running OK. -### commands -curl -v -X GET http://localhost:8081/health +- health check test example: `curl -v -X GET http://localhost:8081/health` -- 2.43.0 From b4ea4046fa0fb8b437a9363b5d16501011de5347 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Fri, 18 Jan 2019 16:29:56 +0100 Subject: [PATCH 08/16] issue #62 implemented --- service-analysis/Dockerfile | 2 ++ service-analysis/README.md | 32 +++++++++++++++++++++----- service-analysis/analysis.py | 2 +- service-analysis/offline_analysis.py | 26 +++++++++++++++++++++ service-analysis/requirements.txt | 1 + service-analysis/sentiment_analysis.py | 2 ++ 6 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 service-analysis/offline_analysis.py diff --git a/service-analysis/Dockerfile b/service-analysis/Dockerfile index ad239ec..be70c7c 100644 --- a/service-analysis/Dockerfile +++ b/service-analysis/Dockerfile @@ -6,6 +6,8 @@ COPY . /app/ RUN pip install -r requirements.txt +RUN python -m textblob.download_corpora + RUN chmod a+x *.py CMD ["python3.7", "./sentiment_analysis.py"] diff --git a/service-analysis/README.md b/service-analysis/README.md index 1572beb..57c6b0c 100644 --- a/service-analysis/README.md +++ b/service-analysis/README.md @@ -9,7 +9,7 @@ The service uses the the sentiment analysis service indico. `GET`: `/health` Returns HTTP Status 200 if service is running -`POST`: `/` Calculates the average sentiment for a given list of texts +`POST`: `/` Calculates the average sentiment for a given list of texts using the online sentiment analysis tool indico (https://www.indico.io). - param: Term[ ] as Content-Tye: `application/json` example body of request: ```json @@ -25,6 +25,22 @@ example body of request: } ] ``` +`POST`: `/offline_analysis` Calculates the average sentiment for a given list of texts using TextBlob (https://textblob.readthedocs.io) +- param: Term[ ] as Content-Tye: `application/json` +example body of request: +```json +[ + { + 'text': 'sample text 1', + }, + { + 'text': 'sample text 2', + }, + { + 'text': 'sample text 3', + } +] +``` JSON string may contain more value-key pairs than 'text', but 'text' is needed for the sentiment analysis. Everything else will be ignored. For more examples see curl commands in local -> commands. @@ -33,8 +49,9 @@ For more examples see curl commands in local -> commands. - `503`: indico sentiment analysis not available ## external services -This sentiment analysis service uses and relies on the online sentiment analysis indico (https://www.indico.io). -The api key can be set in the file indico_api_key.txt. The current key does work, however excessive use of this service will require you to provide your own key, since the amount of requests for this key is limited. +This sentiment analysis service uses the online sentiment analysis indico (https://www.indico.io). +The indico api key can be set in the file indico_api_key.txt. The current key does work, however excessive use of this service will require you to provide your own key, since the amount of requests for this key is limited. +In case of an 503 error, you can use the `/offline_analysis`. ## run with docker - `docker build -t sentiment_analysis .` @@ -46,8 +63,11 @@ The api key can be set in the file indico_api_key.txt. The current key does work - pip: indicoio - pip: flask - pip: flask_restful +- pip: textblob ### commands -- `python3.7 sentiment_analysis.py` -- positive sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` -- negative sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` +- `python3.7 sentiment_analysis.py` to start the service +- positive online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"happy birthday, i love you"}]'` +- negative online sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081 -d '[{"text":"i hate you, please die"}]'` +- positive offline sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081/offline_analysis -d '[{"text":"happy birthday, i love you"}]'` +- negative offline sentiment test example: `curl -v -H 'content-type: application/json' -X POST http://localhost:8081/offline_analysis -d '[{"text":"i hate you, please die"}]'` - health check test example: `curl -v -X GET http://localhost:8081/health` diff --git a/service-analysis/analysis.py b/service-analysis/analysis.py index 291b8e0..b0c43b2 100644 --- a/service-analysis/analysis.py +++ b/service-analysis/analysis.py @@ -10,7 +10,7 @@ service_error_503 = 'The sentiment analysis service is currently unavailable.' class Analysis(Resource): def get(self): - return "POST a list of JSON objects as content-type: application/json. JSON objects must contain key 'text'.", 405, {'Allow': 'GET'} + return "POST a list of JSON objects as content-type: application/json. JSON objects must contain key 'text'.", 405 def post(self): if not request.json or not isinstance(request.json, (list,)): diff --git a/service-analysis/offline_analysis.py b/service-analysis/offline_analysis.py new file mode 100644 index 0000000..9c9da3a --- /dev/null +++ b/service-analysis/offline_analysis.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +import json + +from flask import request +from flask_restful import Resource, abort +from textblob import TextBlob + +input_error_409 = 'Input must be a list of JSON objects. JSON objects must contain contain key text.' + +class Offline_Analysis(Resource): + def get(self): + return "POST a list of JSON objects as content-type: application/json. JSON objects must contain key 'text'.", 405 + + def post(self): + if not request.json or not isinstance(request.json, (list,)): + return abort(409, message=input_error_409) + texts = request.json + value = 0 + for text in texts: + if 'text' not in text: + return abort(409, message=input_error_409) + analysis = TextBlob(text['text']) + value += (analysis.sentiment.polarity/2) + 0.5 + sentiment = value/len(texts) + data = {'sentiment': sentiment} + return data diff --git a/service-analysis/requirements.txt b/service-analysis/requirements.txt index 206be2f..65e5420 100644 --- a/service-analysis/requirements.txt +++ b/service-analysis/requirements.txt @@ -1,3 +1,4 @@ flask flask_restful indicoio +textblob diff --git a/service-analysis/sentiment_analysis.py b/service-analysis/sentiment_analysis.py index e27b0af..055a48d 100644 --- a/service-analysis/sentiment_analysis.py +++ b/service-analysis/sentiment_analysis.py @@ -3,6 +3,7 @@ import json import indicoio from analysis import Analysis +from offline_analysis import Offline_Analysis from health_check import Health_Check from flask import Flask @@ -15,6 +16,7 @@ with open('indico_api_key.txt', 'r') as key: indicoio.config.api_key = key.read().replace('\n','') api.add_resource(Analysis, '/') +api.add_resource(Offline_Analysis, '/offline_analysis') api.add_resource(Health_Check, '/health') if __name__ == '__main__': -- 2.43.0 From eaea379e0d0dfc071cbaddf3ff7f84a78c3b60f7 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 14:40:35 +0100 Subject: [PATCH 09/16] main readme with contributions --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 13e31a4..ed2adf4 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,15 @@ We now support multiple hypervisors! :) + [fallback](service-fallback/README.md) + [reporting](service-reporting/README.md) + [twitter](service-twitter/README.md) + +## Contribution +### camunda +Main Contributor: David Kaufmann +### analysis +Main Contributor: Sebastian Steiner +### fallback +Main Contributor: Jan Vales +### reporting +Main Contributor: Fabian Eichhorner +### twitter +Main Contributor: Michael Winsauer -- 2.43.0 From c526f410615708209050678a9475fac72b039346 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 14:42:05 +0100 Subject: [PATCH 10/16] docker compose file name reverted --- g6t4 => g6t4.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename g6t4 => g6t4.yml (100%) diff --git a/g6t4 b/g6t4.yml similarity index 100% rename from g6t4 rename to g6t4.yml -- 2.43.0 From 2c69a3544bd2e4f35d8cd56dbf4925c856943167 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:21:31 +0100 Subject: [PATCH 11/16] docker compose filename in provision.sh edited --- provision.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provision.sh b/provision.sh index 93af858..d351082 100755 --- a/provision.sh +++ b/provision.sh @@ -29,7 +29,7 @@ docker rm -f $(docker ps -aq) 2>/dev/null ################### # (re)compose all # ################### -docker-compose -f g6t4 up --build -d +docker-compose -f g6t4.yml up --build -d ########### # cleanup # -- 2.43.0 From 55a5737dceaec340f758baaa63edc041aebcf709 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:28:40 +0100 Subject: [PATCH 12/16] more information for base README --- README.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ed2adf4..853861e 100644 --- a/README.md +++ b/README.md @@ -26,20 +26,29 @@ We now support multiple hypervisors! :) ## Our services -+ [camunda](camunda-overlay/README.md) -+ [analysis](service-analysis/README.md) -+ [fallback](service-fallback/README.md) -+ [reporting](service-reporting/README.md) -+ [twitter](service-twitter/README.md) - -## Contribution ### camunda +Full readme: [camunda](camunda-overlay/README.md) Main Contributor: David Kaufmann ### analysis +Full readme: [analysis](service-analysis/README.md) Main Contributor: Sebastian Steiner +#### external services +https://www.indico.io +API KEY: G6T4/service-analysis/indico_api_key.txt ### fallback +Full readme: [fallback](service-fallback/README.md) Main Contributor: Jan Vales -### reporting +### reporting +Full readme: [reporting](service-reporting/README.md) Main Contributor: Fabian Eichhorner +#### external services +https://www.twitter.com +API KEY: G6T4/service-twitter/src/main/resources/application.yml ### twitter +Full readme: [twitter](service-twitter/README.md) Main Contributor: Michael Winsauer +### Web UI +Main Contributors: +Michael Winsauer (UI) +Fabian Eichhorner (CSS) +David Kaufmann (camunda API) -- 2.43.0 From ab5d6a3c10b0b829dacd6f8d601566a6df445900 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:31:06 +0100 Subject: [PATCH 13/16] base README edited becasue of syntax --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 853861e..81534e6 100644 --- a/README.md +++ b/README.md @@ -27,28 +27,28 @@ We now support multiple hypervisors! :) ## Our services ### camunda -Full readme: [camunda](camunda-overlay/README.md) -Main Contributor: David Kaufmann ++ Full readme: [camunda](camunda-overlay/README.md) ++ Main Contributor: David Kaufmann ### analysis -Full readme: [analysis](service-analysis/README.md) -Main Contributor: Sebastian Steiner -#### external services -https://www.indico.io -API KEY: G6T4/service-analysis/indico_api_key.txt ++ Full readme: [analysis](service-analysis/README.md) ++ Main Contributor: Sebastian Steiner ++ external services + + https://www.indico.io + + API KEY: G6T4/service-analysis/indico_api_key.txt ### fallback -Full readme: [fallback](service-fallback/README.md) -Main Contributor: Jan Vales ++ Full readme: [fallback](service-fallback/README.md) ++ Main Contributor: Jan Vales ### reporting -Full readme: [reporting](service-reporting/README.md) -Main Contributor: Fabian Eichhorner -#### external services -https://www.twitter.com -API KEY: G6T4/service-twitter/src/main/resources/application.yml ++ Full readme: [reporting](service-reporting/README.md) ++ Main Contributor: Fabian Eichhorner ++ external services + + https://www.twitter.com + + API KEY: G6T4/service-twitter/src/main/resources/application.yml ### twitter -Full readme: [twitter](service-twitter/README.md) -Main Contributor: Michael Winsauer ++ Full readme: [twitter](service-twitter/README.md) ++ Main Contributor: Michael Winsauer ### Web UI -Main Contributors: -Michael Winsauer (UI) -Fabian Eichhorner (CSS) -David Kaufmann (camunda API) ++ Main Contributors: + + Michael Winsauer (UI) + + Fabian Eichhorner (CSS) + + David Kaufmann (camunda API) -- 2.43.0 From 8497292d0d410ed29649c278e6fa5595283e0f8c Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:35:29 +0100 Subject: [PATCH 14/16] base README edited --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 81534e6..bfaa151 100644 --- a/README.md +++ b/README.md @@ -51,4 +51,3 @@ We now support multiple hypervisors! :) + Main Contributors: + Michael Winsauer (UI) + Fabian Eichhorner (CSS) - + David Kaufmann (camunda API) -- 2.43.0 From 871a7d8df5503ba4c88e70b0654b435520a622b4 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:37:58 +0100 Subject: [PATCH 15/16] base README edited --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bfaa151..dce6e94 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ We now support multiple hypervisors! :) + Main Contributor: Sebastian Steiner + external services + https://www.indico.io - + API KEY: G6T4/service-analysis/indico_api_key.txt + + `API KEY: G6T4/service-analysis/indico_api_key.txt` ### fallback + Full readme: [fallback](service-fallback/README.md) + Main Contributor: Jan Vales @@ -43,7 +43,7 @@ We now support multiple hypervisors! :) + Main Contributor: Fabian Eichhorner + external services + https://www.twitter.com - + API KEY: G6T4/service-twitter/src/main/resources/application.yml + + `API KEY: G6T4/service-twitter/src/main/resources/application.yml` ### twitter + Full readme: [twitter](service-twitter/README.md) + Main Contributor: Michael Winsauer -- 2.43.0 From 2c2c356c6edd43a1d5909a856e4f5aa9368874c3 Mon Sep 17 00:00:00 2001 From: Sebastian Steiner Date: Sat, 19 Jan 2019 15:38:30 +0100 Subject: [PATCH 16/16] base README edited, correction of api key for twitter --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dce6e94..8b34e9c 100644 --- a/README.md +++ b/README.md @@ -41,12 +41,12 @@ We now support multiple hypervisors! :) ### reporting + Full readme: [reporting](service-reporting/README.md) + Main Contributor: Fabian Eichhorner -+ external services - + https://www.twitter.com - + `API KEY: G6T4/service-twitter/src/main/resources/application.yml` ### twitter + Full readme: [twitter](service-twitter/README.md) + Main Contributor: Michael Winsauer ++ external services + + https://www.twitter.com + + `API KEY: G6T4/service-twitter/src/main/resources/application.yml` ### Web UI + Main Contributors: + Michael Winsauer (UI) -- 2.43.0