diff --git a/testrail_bot/control/forms.py b/testrail_bot/control/forms.py
index 51d4fb2..2bdffe3 100644
--- a/testrail_bot/control/forms.py
+++ b/testrail_bot/control/forms.py
@@ -13,17 +13,17 @@
         fields = "__all__"
         labels = {
             "project_name": "Name of the project",
-            "plan_name": "Name of the Test Plan without date",
+            "plan_name": "Pattern for name of the Test Plan",
             "run_name": "Name of the run",
-            "test_pattern": "Test run pattern",
-            "run_id": "ID of the run",
-            "created_by_id": "ID of the user that created Test Run",
+            "test_pattern": "Pattern for name of the Test Run",
+            "run_id": "ID of the run/plan",
+            "created_by_id": "ID of the user that created Test Plan",
             "filter_func": "Custom filter function",
             "ip_filter": "Mask all IP with x.x.x.x",
             "uuid_filter": "Mask all UUID with xxxx",
-            "filter_last_traceback": "Use only last traceback to "
+            "filter_last_traceback": "Use only traceback to "
                                      "compare comments",
-            "timestamp": "Date of report to be processed"
+            "timestamp": "Search for test plans created before this date"
         }
         help_texts = {
             "filter_func": "Leave blank if not used",
diff --git a/testrail_bot/control/templates/base.html b/testrail_bot/control/templates/base.html
index 464681a..d2dd9a3 100644
--- a/testrail_bot/control/templates/base.html
+++ b/testrail_bot/control/templates/base.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-{% load bootstrap3 %}
+{% load bootstrap5 %}
 {% bootstrap_css %}
 {% bootstrap_javascript %}
 
@@ -8,25 +8,30 @@
     <meta charset="UTF-8">
     <title>TestRail bot configuration</title>
     <style>
-        body { padding-top: 70px; }
+        body { padding-top: 0px; }
     </style>
     {% block head %}
     {% endblock %}
 </head>
 <body>
-<nav class="navbar navbar-inverse navbar-fixed-top">
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
     <div class="container-fluid">
-    <div class="navbar-header">
-      <a class="navbar-brand" href="{% url 'index' %}">TestRail bot</a>
-    </div>
-    <ul class="nav navbar-nav">
-        <li><a href="{% url 'index' %}">Test Runs</a></li>
-        <li><a href="{% url 'list_reports' %}">Reports</a></li>
-        <li><a href="{% url 'help' %}">Help</a></li>
-        <li><a href="{% url 'jenkins_plot' %}">Jenkins plot</a></li>
+        <div class="navbar-header">
+            <a class="navbar-brand" href="{% url 'index' %}">TestRail bot</a>
+        </div>
+        <ul class="navbar-nav navbar-collapse">
+            <li class="nav-item ">
+                <a class="nav-link" href="{% url 'index' %}">Test Runs</a></li>
+            <li class="nav-item">
+                <a class="nav-link" href="{% url 'list_reports' %}">Reports</a></li>
+            <li class="nav-item">
+                <a class="nav-link" href="{% url 'help' %}">Help</a></li>
+            <li class="nav-item">
+                <a class="nav-link" href="{% url 'jenkins_plot' %}">Jenkins
+                    plot</a></li>
 
-    </ul>
-  </div>
+        </ul>
+    </div>
 </nav>
 {% block section %}{% endblock %}
 </body>
diff --git a/testrail_bot/control/templates/control/create_run.html b/testrail_bot/control/templates/control/create_run.html
deleted file mode 100644
index 136b7c1..0000000
--- a/testrail_bot/control/templates/control/create_run.html
+++ /dev/null
@@ -1,47 +0,0 @@
-{% extends "base.html" %}
-{% load bootstrap3 %}
-{% block section %}
-<div>
-  <input type="button" onclick="location.href={% url 'index' %}" height="8"
-         class="btn btn-primary" value="<- Back"/>
-  <h3>Create new Test Run</h3>
-  <form action="{% url 'create_run' %}" method="post" class="form">
-    {% csrf_token %}
-      {% bootstrap_form_errors form type='non_fields' %}
-      <div class="col-xs-8">{% bootstrap_field form.project_name  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.plan_name size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.run_name  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.test_pattern  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.run_id  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.created_by_id  size='sm' %}</div>
-      <div class="col-xs-8">
-        User to id list: <ul><li>os-qa-bot = <code>109</code></li></ul>
-      </div>
-      <div class="col-xs-8">{% bootstrap_field form.filter_func  size='sm' %}</div>
-      <div class="col-xs-8">
-        {% bootstrap_field form.timestamp size='sm' %}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.ip_filter  size='sm'%}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.uuid_filter size='sm'%}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.filter_last_traceback size='sm'%}
-      </div>
-    {% buttons %}
-    <div class="btn-toolbar col-xs-7">
-      <button type="submit" class="btn btn-primary">
-        <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1em"
-             height="1em" viewBox="0,0,256,256">
-          <g fill="#fffafa" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(10.66667,10.66667)">
-          <path d="M6,2c-0.13812,0 -0.27212,0.01438 -0.40234,0.04102c-0.91157,0.18642 -1.59766,0.99211 -1.59766,1.95898v18l8,-3l8,3v-18c0,-0.1375 -0.01426,-0.27246 -0.04102,-0.40234c-0.15978,-0.78135 -0.77529,-1.39686 -1.55664,-1.55664c-0.13022,-0.02663 -0.26422,-0.04102 -0.40234,-0.04102z"></path></g></g>
-        </svg>
-         Save
-      </button>
-    </div>
-    {% endbuttons %}
-  </form>
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/testrail_bot/control/templates/control/help.html b/testrail_bot/control/templates/control/help.html
index c7124ff..e0f3576 100644
--- a/testrail_bot/control/templates/control/help.html
+++ b/testrail_bot/control/templates/control/help.html
@@ -26,7 +26,7 @@
                 </li>
                 <li>Select <code>change ip to x.x.x.x</code> to replace all ip addresses to x.x.x.x</li>
                 <li>Select <code>change uuid to xxxx</code> to change all uuids to xxxx</li>
-                <li>Select <code>Use only last traceback to compare comments</code> to use data located after last <code>Traceback:</code></li>
+                <li>Select <code>Use only traceback to compare comments</code> to use data located after last <code>Traceback:</code></li>
                 <li>Click save to save record and run it later</li>
             </ol>
         </li>
diff --git a/testrail_bot/control/templates/control/index.html b/testrail_bot/control/templates/control/index.html
index 359e975..64e3e99 100644
--- a/testrail_bot/control/templates/control/index.html
+++ b/testrail_bot/control/templates/control/index.html
@@ -1,7 +1,7 @@
 {% extends "base.html" %}
 {% block section %}
 <input type="button" onclick="location.href={% url 'create_run' %}"
-       class="btn btn-primary" value="Create new Test Run" />
+       class="btn btn-primary m-1" value="Create new Test Run" />
 <p><b>Test Runs</b> (total {{ runs|length }} runs):</p>
 <div class="list-group">
     {% for run in runs %}
diff --git a/testrail_bot/control/templates/control/report.html b/testrail_bot/control/templates/control/report.html
index 2adc34b..b4766cd 100644
--- a/testrail_bot/control/templates/control/report.html
+++ b/testrail_bot/control/templates/control/report.html
@@ -1,7 +1,8 @@
 {% extends "base.html" %}
 {% block section %}
-{% load bootstrap3 %}
-{% bootstrap_javascript jquery=True %}
+{% load bootstrap5 %}
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
 <script>
 function getCookie(name) {
     let cookieValue = null;
@@ -19,18 +20,16 @@
     return cookieValue;
 };
 const csrftoken = getCookie('csrftoken');
-
 function send(){
     $.ajax({
         type: "post",
         url: "{% url 'single_report' report_id %}",
         dataType: "json",
         headers: {'X-CSRFToken': csrftoken},
-        success:function(data)
-        {
+        success: function(data) {
             tag = document.getElementById("data");
             tag.innerHTML = data["data"];
-            //Send another request in 10 seconds.
+            //Send another request in 3 seconds.
             if (data["finished"] != true){
                 setTimeout(function(){
                     send();
@@ -38,7 +37,8 @@
             }
         }
     });
-}
-send();</script>
-<pre id="data">{{report}}</pre>
+};
+window.onload = function() {send()};</script>
+
+<pre id="data" class="p-4 border">{{ report | safe }}</pre>
 {% endblock %}
\ No newline at end of file
diff --git a/testrail_bot/control/templates/control/update_run.html b/testrail_bot/control/templates/control/update_run.html
index 5ca7033..31c634a 100644
--- a/testrail_bot/control/templates/control/update_run.html
+++ b/testrail_bot/control/templates/control/update_run.html
@@ -1,38 +1,20 @@
 {% extends "base.html" %}
-{% load bootstrap3 %}
+{% load bootstrap5 %}
 {% block section %}
-<div>
+<div class="p-2">
   <input type="button" onclick="location.href={% url 'index' %}" height="8"
-       class="btn btn-primary" value="<- Back"/>
+       class="btn btn-primary m-1" value="<- Back"/>
+  {% if run_id  %}
   <h3>Edit Test Run #{{ run_id }}</h3>
   <form action="{% url 'single_run' run_id %}" method="post" class="form">
-    {% csrf_token %}
-      {% bootstrap_form_errors form type='non_fields' %}
-      <div class="col-xs-8">{% bootstrap_field form.project_name  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.plan_name size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.run_name  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.test_pattern  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.run_id  size='sm' %}</div>
-      <div class="col-xs-8">{% bootstrap_field form.created_by_id  size='sm' %}</div>
-      <div class="col-xs-8">
-        User to id list: <ul><li>os-qa-bot = <code>109</code></li></ul>
-      </div>
-      <div class="col-xs-8">{% bootstrap_field form.filter_func  size='sm' %}</div>
-      <div class="col-xs-8">
-        {% bootstrap_field form.timestamp size='sm' %}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.ip_filter  size='sm'%}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.uuid_filter size='sm'%}
-      </div>
-      <div class="col-md-5">
-        {% bootstrap_field form.filter_last_traceback size='sm'%}
-      </div>
+  {% else %}
+  <h3>Create Test Run</h3>
+  <form action="{% url 'create_run' %}" method="post" class="form">
+  {% endif %}
+
     {% buttons %}
     <div class="btn-toolbar col-xs-7">
-      <button type="submit" class="btn btn-primary">
+      <button type="submit" class="btn btn-primary m-1">
         <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1em"
              height="1em" viewBox="0,0,256,256">
           <g fill="#fffafa" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(10.66667,10.66667)">
@@ -40,7 +22,9 @@
         </svg>
          Save
       </button>
-      <button type="submit" formaction="{% url 'submit_run' run_id %}" class="btn btn-primary">
+      {% if run_id  %}
+      <button type="submit" formaction="{% url 'submit_run' run_id %}"
+              class="btn btn-primary m-1">
         <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-chevron-double-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
           <path fill-rule="evenodd" d="M3.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L9.293 8 3.646 2.354a.5.5 0 0 1 0-.708z"/>
           <path fill-rule="evenodd" d="M7.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L13.293 8 7.646 2.354a.5.5 0 0 1 0-.708z"/>
@@ -48,7 +32,7 @@
          Submit
       </button>
       <button type="submit" formaction="{% url 'delete_run' run_id %}"
-              class="btn btn-danger">
+              class="btn btn-danger m-1">
         <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1em"
              height="1em" viewBox="0,0,256,256">
           <g fill="#ffffff" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(10.66667,10.66667)">
@@ -56,6 +40,77 @@
         </svg>
          Delete
       </button>
+      {% endif %}
+    </div>
+    {% endbuttons %}
+    {% csrf_token %}
+      {% bootstrap_form_errors form type='non_fields' %}
+      <div class="col-xs-8">
+        {% bootstrap_field form.project_name  size='sm' %}</div>
+      <div class="col-xs-8">
+        {% bootstrap_field form.run_id  size='sm' %}</div>
+      <div class="col-xs-8">
+        {% bootstrap_field form.run_name  size='sm' %}</div>
+      <div class=" p-3 mt-5 bg-light bg-gradient">
+        <h5>TestRail filters</h5>
+        <div class="col-xs-8">
+          {% bootstrap_field form.plan_name size='sm' %}</div>
+
+        <div class="col-xs-8">
+          {% bootstrap_field form.test_pattern  size='sm' %}</div>
+
+        <div class="col-xs-8">
+          {% bootstrap_field form.created_by_id  size='sm' %}</div>
+        <div class="col-xs-8 small">
+          User to id list: <ul><li>os-qa-bot = <code>109</code></li></ul>
+        </div>
+        <div class="col-xs-8">
+          {% bootstrap_field form.timestamp size='sm' %}
+        </div>
+      </div>
+      <div class=" p-3 mt-5 bg-light bg-gradient">
+        <h5>Text filters</h5>
+        <div class="col-md-5">
+          {% bootstrap_field form.ip_filter  size='sm'%}
+        </div>
+        <div class="col-md-5">
+          {% bootstrap_field form.uuid_filter size='sm'%}
+        </div>
+        <div class="col-md-5">
+          {% bootstrap_field form.filter_last_traceback size='sm'%}
+        </div>
+        <div class="col-xs-8">
+          {% bootstrap_field form.filter_func  size='sm' %}</div>
+      </div>
+    {% buttons %}
+    <div class="btn-toolbar col-xs-7">
+      <button type="submit" class="btn btn-primary m-1">
+        <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1em"
+             height="1em" viewBox="0,0,256,256">
+          <g fill="#fffafa" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(10.66667,10.66667)">
+          <path d="M6,2c-0.13812,0 -0.27212,0.01438 -0.40234,0.04102c-0.91157,0.18642 -1.59766,0.99211 -1.59766,1.95898v18l8,-3l8,3v-18c0,-0.1375 -0.01426,-0.27246 -0.04102,-0.40234c-0.15978,-0.78135 -0.77529,-1.39686 -1.55664,-1.55664c-0.13022,-0.02663 -0.26422,-0.04102 -0.40234,-0.04102z"></path></g></g>
+        </svg>
+         Save
+      </button>
+      {% if run_id %}
+      <button type="submit" formaction="{% url 'submit_run' run_id %}"
+              class="btn btn-primary m-1">
+        <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-chevron-double-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
+          <path fill-rule="evenodd" d="M3.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L9.293 8 3.646 2.354a.5.5 0 0 1 0-.708z"/>
+          <path fill-rule="evenodd" d="M7.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L13.293 8 7.646 2.354a.5.5 0 0 1 0-.708z"/>
+        </svg>
+         Submit
+      </button>
+      <button type="submit" formaction="{% url 'delete_run' run_id %}"
+              class="btn btn-danger m-1">
+        <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1em"
+             height="1em" viewBox="0,0,256,256">
+          <g fill="#ffffff" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(10.66667,10.66667)">
+          <path d="M10,2l-1,1h-4c-0.6,0 -1,0.4 -1,1c0,0.6 0.4,1 1,1h2h10h2c0.6,0 1,-0.4 1,-1c0,-0.6 -0.4,-1 -1,-1h-4l-1,-1zM5,7v13c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2v-13zM9,9c0.6,0 1,0.4 1,1v9c0,0.6 -0.4,1 -1,1c-0.6,0 -1,-0.4 -1,-1v-9c0,-0.6 0.4,-1 1,-1zM15,9c0.6,0 1,0.4 1,1v9c0,0.6 -0.4,1 -1,1c-0.6,0 -1,-0.4 -1,-1v-9c0,-0.6 0.4,-1 1,-1z"></path></g></g>
+        </svg>
+         Delete
+      </button>
+      {% endif %}
     </div>
     {% endbuttons %}
   </form>
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 847bc3c..c9fe8f3 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -44,7 +44,7 @@
         form = forms.TestRunForm()
 
     form.fields["timestamp"].initial = datetime.date.today()
-    return render(request, "control/create_run.html", {"form": form})
+    return render(request, "control/update_run.html", {"form": form})
 
 
 def list_reports(request):
@@ -59,8 +59,11 @@
         return HttpResponse(
             json.dumps({"data": data, "finished": report.finished}),
             content_type="application/json")
+
     return render(request, "control/report.html",
-                  {"report_id": report.id, "report": data})
+                  {"report_id": report.id,
+                   "report": data,
+                   "finished": report.finished})
 
 
 def submit_run(request, run_id):
diff --git a/testrail_bot/requirements.txt b/testrail_bot/requirements.txt
index 865ce30..41fe5c8 100644
--- a/testrail_bot/requirements.txt
+++ b/testrail_bot/requirements.txt
@@ -1,6 +1,6 @@
 celery==4.4.6
 Django==3.0.7
-django-bootstrap3==14.0.0
+django-bootstrap-v5==1.0.11
 psycopg2-binary==2.8.5
 redis==3.5.3
 testrail-api==1.8.0
@@ -8,3 +8,4 @@
 python-jenkins==1.7.0
 matplotlib==3.3.2
 retry==0.9.2
+
diff --git a/testrail_bot/testrail_bot/settings.py b/testrail_bot/testrail_bot/settings.py
index 74464f2..a40279d 100644
--- a/testrail_bot/testrail_bot/settings.py
+++ b/testrail_bot/testrail_bot/settings.py
@@ -32,7 +32,7 @@
 
 INSTALLED_APPS = [
     'control.apps.ControlConfig',
-    'bootstrap3',
+    'bootstrap5',
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
