diff --git a/CorpusAnalysisClient.js.md b/CorpusAnalysisClient.js.md
deleted file mode 100644
index 6f19fc6ecf8ecf9929243df973bf64d515645438..0000000000000000000000000000000000000000
--- a/CorpusAnalysisClient.js.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Corpus Analysis
-
-## Start einer Session
-
-```javascript
-nopaque.socket.emit("corpus_analysis_init", <corpusId>);
-  <corpusId> ~ number
-// Show init loading modal
-
-nopaque.socket.on("corpus_analysis_init", <response>);
-  <response> ~ {"code": <code>, "msg": <message>}
-  <code> ~ number // HTTP status code
-  <msg> ~ string
-// Hide init loading modal
-```
-
-## Ausführen einer Suchanfrage
-
-Ergebnisse werden Stückchenweise als "chunks" übertragen.
-
-```javascript
-nopaque.socket.emit("corpus_analysis_query", <query>);
-  <query> ~ string
-// Clear result data store and list
-result = {"query": <query>};
-// Hide query result card
-// Show query loading card
-nopaque.socket.on("corpus_analysis_query", <response>);
-  <response>: {"code": <code>, "result": <result>}
-  <code> ~ number // Error, Success
-  <result> ~ {"matches": [<cpos>, ...],
-              "num_matches": <num_matches>,
-              "cpos_lookup": {<cpos>: <token>, ...},
-              "text_lookup": {<textId>: <text>, ...}}
-  <cpos> ~ number
-  <num_matches> ~ number
-  <token> ~ {"word": <word>, "lemma": <lemma>, "simple_pos": <simple_pos>, "pos": <pos>, "ner": <ner>, "text": <textId>, "s": <sId>}
-  <word> ~ string
-  <lemma> ~ string
-  <simple_pos> ~ string
-  <pos> ~ string
-  <ner> ~ string
-  <textId> ~ number
-  <sId> ~ number
-  <text> ~ {"author": <author>, "title": <text>, ...}
-  <s> ~ string
-// Process response
-// Hide query result card
-// Show query loading card
-```
diff --git a/app/admin/__init__.py b/app/admin/__init__.py
index 9bb011f8906e2477d31e9604d6966a3aeb054e6e..40fd29a4240af4ae18bc5dd2afe7d7cb50b4bc68 100644
--- a/app/admin/__init__.py
+++ b/app/admin/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 admin = Blueprint('admin', __name__)
-from . import views
+from . import views  # noqa
diff --git a/app/admin/forms.py b/app/admin/forms.py
index 0eea3b9498e4e0726412bd637ed0b332e5c28563..fd41d01646e4904b556e610ea54dcb1dc4e03c16 100644
--- a/app/admin/forms.py
+++ b/app/admin/forms.py
@@ -1,8 +1,8 @@
-from app.models import Role, User
 from flask_wtf import FlaskForm
 from wtforms import (BooleanField, SelectField, StringField, SubmitField,
                      ValidationError)
 from wtforms.validators import DataRequired, Email, Length, Regexp
+from ..models import Role, User
 
 
 class EditUserForm(FlaskForm):
diff --git a/app/admin/views.py b/app/admin/views.py
index 1ab406209e1e15ebbbd8403f397e911157b32ee1..5ca0b74b93ad3b6575d109b3efb7edc0fb5f8be6 100644
--- a/app/admin/views.py
+++ b/app/admin/views.py
@@ -1,13 +1,13 @@
-from app import db
-from app.decorators import admin_required
-from app.models import Role, User
-from app.profile.background_functions import delete_user_
 from flask import current_app, flash, redirect, render_template, url_for
 from flask_login import login_required
 from threading import Thread
 from . import admin
 from .forms import EditUserForm
 from .tables import AdminUserItem, AdminUserTable
+from .. import db
+from ..decorators import admin_required
+from ..models import Role, User
+from ..profile.background_functions import delete_user_
 
 
 @admin.route('/')
diff --git a/app/auth/__init__.py b/app/auth/__init__.py
index a45dc3f349c631dc7f7a93c23ab499c6f091f176..893d7071a820c1574c464201063e6072773ec889 100644
--- a/app/auth/__init__.py
+++ b/app/auth/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 auth = Blueprint('auth', __name__)
-from . import views
+from . import views  # noqa
diff --git a/app/auth/forms.py b/app/auth/forms.py
index d361ee07cdaa719e18da49f38526566d55818c8d..e3f5c2766915db5f302aa634f8046d0fa29a1b4a 100644
--- a/app/auth/forms.py
+++ b/app/auth/forms.py
@@ -1,4 +1,4 @@
-from app.models import User
+from ..models import User
 from flask_wtf import FlaskForm
 from wtforms import (BooleanField, PasswordField, StringField, SubmitField,
                      ValidationError)
diff --git a/app/auth/views.py b/app/auth/views.py
index e95370ada377abefb934eecfe50464588e808a28..7353ebf95f9bef6ea664f53b3a88282fc00e8c97 100644
--- a/app/auth/views.py
+++ b/app/auth/views.py
@@ -1,12 +1,12 @@
-from app import db, logger
-from app.email import send_email
-from app.models import User
 from flask import (current_app, flash, redirect, render_template, request,
                    url_for)
 from flask_login import current_user, login_user, login_required, logout_user
 from . import auth
 from .forms import (LoginForm, ResetPasswordForm, ResetPasswordRequestForm,
                     RegistrationForm)
+from .. import db
+from ..email import send_email
+from ..models import User
 import os
 import shutil
 
diff --git a/app/corpora/__init__.py b/app/corpora/__init__.py
index 73084f4688e284412fee617c1c4d346d46070672..cec49443f317e15a6c4a31e5037c779e93172457 100644
--- a/app/corpora/__init__.py
+++ b/app/corpora/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 corpora = Blueprint('corpora', __name__)
-from . import events, views
+from . import events, views  # noqa
diff --git a/app/corpora/background_functions.py b/app/corpora/background_functions.py
index 442b94244d3826cd8edbc192807bcf01c2588c24..1b8f7fc09cbd7d7430089d00335ed1f2852be19c 100644
--- a/app/corpora/background_functions.py
+++ b/app/corpora/background_functions.py
@@ -1,4 +1,4 @@
-from app.models import Corpus, CorpusFile
+from ..models import Corpus, CorpusFile
 
 
 def delete_corpus_(app, corpus_id):
diff --git a/app/corpora/events.py b/app/corpora/events.py
index 88af8fb77307bf172106284e6f811471faf4865b..ee7093c00c2146129b2204220a6ad5e99e9b3d94 100644
--- a/app/corpora/events.py
+++ b/app/corpora/events.py
@@ -1,10 +1,10 @@
-from app import db, logger, socketio
-from app.decorators import socketio_login_required
-from app.events import connected_sessions
-from app.models import Corpus, User
-from .cqi import CQiClient
 from flask import current_app, request
 from flask_login import current_user
+from .cqi import CQiClient
+from .. import db, logger, socketio
+from ..decorators import socketio_login_required
+from ..events import connected_sessions
+from ..models import Corpus, User
 import math
 
 
diff --git a/app/corpora/views.py b/app/corpora/views.py
index 6f4e1ed2a8992e4af3c722a812c441383f65289f..9907cf2373d66149e9329db4a37fc98de5742ca7 100644
--- a/app/corpora/views.py
+++ b/app/corpora/views.py
@@ -1,5 +1,3 @@
-from app import db, logger
-from app.models import Corpus, CorpusFile
 from flask import (abort, current_app, flash, redirect, request,
                    render_template, url_for, send_from_directory)
 from flask_login import current_user, login_required
@@ -10,6 +8,8 @@ from .background_functions import (delete_corpus_, delete_corpus_file_,
                                    edit_corpus_file_)
 from .forms import (AddCorpusFileForm, AddCorpusForm, EditCorpusFileForm,
                     QueryDownloadForm, QueryForm)
+from .. import db
+from ..models import Corpus, CorpusFile
 import os
 
 
diff --git a/app/decorators.py b/app/decorators.py
index c45f6d29a74efbe7922d3712d21151020f0e9904..c218e31458958b98c6986756fe1b21d4b53ba810 100644
--- a/app/decorators.py
+++ b/app/decorators.py
@@ -1,7 +1,7 @@
-from functools import wraps
 from flask import abort
 from flask_login import current_user
 from flask_socketio import disconnect
+from functools import wraps
 from .models import Permission
 
 
diff --git a/app/email.py b/app/email.py
index a8bde7db455633badc129e1a500efeefeea957b8..670167aedf7bafbd37bd4e8c523adfff84d987f7 100644
--- a/app/email.py
+++ b/app/email.py
@@ -1,6 +1,6 @@
-from threading import Thread
 from flask import current_app, render_template
 from flask_mail import Message
+from threading import Thread
 from . import mail
 
 
diff --git a/app/jobs/__init__.py b/app/jobs/__init__.py
index 07e0e1bb1e3adf5017c263094af528ea88bf92a3..43e346141de0010b0a74582448a84caa3272f400 100644
--- a/app/jobs/__init__.py
+++ b/app/jobs/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 jobs = Blueprint('jobs', __name__)
-from . import views
+from . import views  # noqa
diff --git a/app/jobs/background_functions.py b/app/jobs/background_functions.py
index f90c2daaa39961c029d636966c8407a845014c5a..6808be497ac05b0e8ed4eb37730b751577512d0d 100644
--- a/app/jobs/background_functions.py
+++ b/app/jobs/background_functions.py
@@ -1,4 +1,4 @@
-from app.models import Job
+from ..models import Job
 
 
 def delete_job_(app, job_id):
diff --git a/app/jobs/views.py b/app/jobs/views.py
index a5bbe7231d7383aea9d9d5805383fcaf3b8855be..4afd2cb3694edb933646de8e806b11a5d6bc824e 100644
--- a/app/jobs/views.py
+++ b/app/jobs/views.py
@@ -1,10 +1,10 @@
-from app.models import Job, JobInput, JobResult
 from flask import (abort, current_app, flash, redirect, render_template,
                    send_from_directory, url_for)
 from flask_login import current_user, login_required
 from threading import Thread
 from . import jobs
 from .background_functions import delete_job_
+from ..models import Job, JobInput, JobResult
 import os
 
 
diff --git a/app/main/__init__.py b/app/main/__init__.py
index ed1e65e98f91469a999e040402e734bb93e34746..e58f63b5ef1d2709a2672b8451e726951e054ff3 100644
--- a/app/main/__init__.py
+++ b/app/main/__init__.py
@@ -2,10 +2,4 @@ from flask import Blueprint
 
 
 main = Blueprint('main', __name__)
-from . import errors, views
-from app.models import Permission
-
-
-@main.app_context_processor
-def inject_permissions():
-    return dict(Permission=Permission)
+from . import errors, views  # noqa
diff --git a/app/main/views.py b/app/main/views.py
index 1552b99b2499b4d3c163bda0254fcc5cff3ea523..d93a51fbf91018dab48fbde5176c1af15c66bf9f 100644
--- a/app/main/views.py
+++ b/app/main/views.py
@@ -1,11 +1,10 @@
-from app import logger
-from app.auth.forms import LoginForm
-from app.models import User
 from flask import flash, redirect, render_template, url_for
 from flask_login import login_required, login_user
 from . import main
 from .forms import FeedbackForm
-
+from .. import logger
+from ..auth.forms import LoginForm
+from ..models import User
 
 @main.route('/', methods=['GET', 'POST'])
 def index():
diff --git a/app/profile/__init__.py b/app/profile/__init__.py
index 8283a75f728c6af88d344a77de2252d43610d987..85b9f61cdd705ef41af827f47c015aa5bd817917 100644
--- a/app/profile/__init__.py
+++ b/app/profile/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 profile = Blueprint('profile', __name__)
-from . import views
+from . import views  # noqa
diff --git a/app/profile/background_functions.py b/app/profile/background_functions.py
index 62be9b6f5172e777480e6805285f0c0c05dadbdf..e8e7f2af49ab8be5b89778680f3ffd7036eb6aa8 100644
--- a/app/profile/background_functions.py
+++ b/app/profile/background_functions.py
@@ -1,4 +1,4 @@
-from app.models import User
+from ..models import User
 
 
 def delete_user_(app, user_id):
diff --git a/app/profile/views.py b/app/profile/views.py
index be02cc5b00e383ff32489e92d2bf769729ee050a..96f588f0d671242310adf6b75addfc768e84ec50 100644
--- a/app/profile/views.py
+++ b/app/profile/views.py
@@ -1,10 +1,10 @@
-from app import db
 from flask import current_app, flash, redirect, render_template, url_for
 from flask_login import current_user, login_required, logout_user
 from threading import Thread
 from . import profile
 from .background_functions import delete_user_
 from .forms import EditEmailForm, EditGeneralSettingsForm, EditPasswordForm
+from .. import db
 
 
 @profile.route('/settings', methods=['GET', 'POST'])
diff --git a/app/services/__init__.py b/app/services/__init__.py
index ea9a403fd809f4b9b382f83843e2fb6c635ae313..0bc0cfb249ef483ee97bd35ea930ce2037c2e4c8 100644
--- a/app/services/__init__.py
+++ b/app/services/__init__.py
@@ -2,4 +2,4 @@ from flask import Blueprint
 
 
 services = Blueprint('services', __name__)
-from . import views
+from . import views  # noqa
diff --git a/app/services/views.py b/app/services/views.py
index d8492544fe4b510d9eec2e390c722a96069e7b59..2339260bb3fac74060f2de4612f7a8fb17546dce 100644
--- a/app/services/views.py
+++ b/app/services/views.py
@@ -1,14 +1,13 @@
-from app import db
-from app.jobs.forms import AddNLPJobForm, AddOCRJobForm, AddSetupFilesJobForm
-from app.models import Job, JobInput
 from flask import (abort, current_app, flash, make_response, render_template,
                    url_for)
 from flask_login import current_user, login_required
 from werkzeug.utils import secure_filename
 from . import services
+from .. import db
+from ..jobs.forms import AddNLPJobForm, AddOCRJobForm, AddSetupFilesJobForm
+from ..models import Job, JobInput
 import json
 import os
-from app import logger
 
 
 SERVICES = {'corpus_analysis': {'name': 'Corpus analysis'},
diff --git a/app/test/__init__.py b/app/test/__init__.py
deleted file mode 100644
index e01f868c5e4021a894996e6bad6923eb252e89c0..0000000000000000000000000000000000000000
--- a/app/test/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from flask import Blueprint
-
-
-test = Blueprint('test', __name__)
-from . import events, views
diff --git a/app/test/events.py b/app/test/events.py
deleted file mode 100644
index c57b57b27f500cf79bbceb55a6fedb26ef7d24cd..0000000000000000000000000000000000000000
--- a/app/test/events.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from app import logger, socketio
-from flask_login import login_required
-from werkzeug.datastructures import FileStorage
-from werkzeug.utils import secure_filename
-from .forms import TestForm
-import io
-
-
-@socketio.on('submit-test-form')
-@login_required
-def recv_test_form(data):
-    logger.warning("data_received")
-    filename = secure_filename(data['file-wrapper']['name'])
-    stream = io.BytesIO(data['file-wrapper']['bytes'])
-    file = FileStorage(filename=filename, stream=stream)
-    data['file'] = file
-    test_form = TestForm(data=data)
-    if test_form.validate():
-        socketio.emit('submit-test-form', {'msg': {},
-                                           'status': 201})
-    else:
-        socketio.emit('submit-test-form', {'msg': test_form.errors,
-                                           'status': 400})
diff --git a/app/test/forms.py b/app/test/forms.py
deleted file mode 100644
index b7dd19d81bed90c6e0a9ef05efabf9d87ca78181..0000000000000000000000000000000000000000
--- a/app/test/forms.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from flask_wtf import FlaskForm
-from flask_wtf.file import FileAllowed, FileField, FileRequired
-from wtforms import StringField, SubmitField
-from wtforms.validators import DataRequired, Length
-
-
-class TestForm(FlaskForm):
-    description = StringField('Description',
-                              validators=[DataRequired(), Length(1, 255)])
-    file = FileField('File', validators=[FileAllowed(['txt'], 'Plain text only!'), FileRequired()])
-    submit = SubmitField()
-    title = StringField('Title', validators=[DataRequired(), Length(1, 32)])
diff --git a/app/test/views.py b/app/test/views.py
deleted file mode 100644
index a0e76fc2e00143e004d2302bfb1f2f869830094c..0000000000000000000000000000000000000000
--- a/app/test/views.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from flask import render_template
-from flask_login import login_required
-from . import test
-from .forms import TestForm
-
-
-@test.route('/')
-@login_required
-def index():
-    test_form = TestForm()
-    return render_template('test/index.html.j2', title='Test',
-                           test_form=test_form)
diff --git a/nopaque.py b/nopaque.py
index ce66e01fac545573f1052857269c390d9d98372e..66c39520720240d5594a70ccc4314ae74ba80f48 100644
--- a/nopaque.py
+++ b/nopaque.py
@@ -1,5 +1,5 @@
 import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch()  # noqa: E261
 from app import create_app, db, socketio
 from app.models import Corpus, Job, Role, User
 from flask_migrate import Migrate
diff --git a/tests/test_client.py b/tests/test_client.py
index 584d96915609faaaf0dec393928e0c1d53ce2621..e4c0738c4f80e5c558bb62bf78a9ebd501cd4088 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -1,7 +1,5 @@
-import re
 import unittest
 from app import create_app, db
-from app.models import User, Role
 
 
 class FlaskClientTestCase(unittest.TestCase):