diff --git a/atdb/docs/ATDB-LDV Data Model.png b/atdb/docs/ATDB-LDV Data Model.png
index 18e42bf6464246f4eb8d9083883b45c463a2b7b3..fde7427e424f1d069c053cd2d5349c81ed0210be 100644
Binary files a/atdb/docs/ATDB-LDV Data Model.png and b/atdb/docs/ATDB-LDV Data Model.png differ
diff --git a/atdb/taskdatabase/admin.py b/atdb/taskdatabase/admin.py
index 17096d1348a090dbf97859593f48e1d103e99939..95916de8dbeb25a9f6a51ae6ce8644f1c040ec98 100644
--- a/atdb/taskdatabase/admin.py
+++ b/atdb/taskdatabase/admin.py
@@ -1,5 +1,5 @@
 from django.contrib import admin
-from .models import Status, Task, Workflow, LogEntry, Configuration, Job, PostProcessingRule
+from .models import Status, Task, Workflow, LogEntry, Configuration, Job, PostProcessingRule, Monitor
 
 admin.site.register(Status)
 admin.site.register(Task)
@@ -7,4 +7,5 @@ admin.site.register(Workflow)
 admin.site.register(LogEntry)
 admin.site.register(Configuration)
 admin.site.register(Job)
-admin.site.register(PostProcessingRule)
\ No newline at end of file
+admin.site.register(PostProcessingRule)
+admin.site.register(Monitor)
\ No newline at end of file
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index e326280322f73daa0ef93dc3ab94bb1218594969..e97856d8bb96b319e00b3c4b013199c6c8849912 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -126,13 +126,22 @@ class PostProcessingRule(models.Model):
     workflow_to_process = models.ForeignKey(Workflow, related_name='to_process', on_delete=models.SET_NULL, null=True, blank=True)
     workflow_to_apply = models.ForeignKey(Workflow, related_name='to_apply',on_delete=models.SET_NULL, null=True, blank=True)
 
+    # the representation of the value in the REST API
+    def __str__(self):
+        return str(self.aggregation_key)+' - '+str(self.trigger_status)
+
+
 
 class Monitor(models.Model):
     name = models.CharField(max_length=50, default="unknown")
     type = models.CharField(max_length=20, default="ldv-service", null=True, blank=True)
     timestamp = models.DateTimeField(default=datetime.utcnow, blank=True)
     hostname = models.CharField(max_length=50, default="unknown")
-    process_id = models.IntegerField(null=True)
+    process_id = models.IntegerField(null=True, blank=True)
     description = models.CharField(max_length=255, blank=True, null=True)
-    status = models.CharField(max_length=50, default="defining", null=True)
-    metadata = models.JSONField(null=True, blank=True)
\ No newline at end of file
+    status = models.CharField(max_length=50, default="ok", null=True)
+    metadata = models.JSONField(null=True, blank=True)
+
+    # the representation of the value in the REST API
+    def __str__(self):
+        return str(self.name)+' - '+str(self.timestamp) + ' - ' + self.status
diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py
index d1f5dc250c95db46bef0c6424055c41f68f3868c..daba1643e6aa1064045dec0ab4b8f5250a0a80d5 100644
--- a/atdb/taskdatabase/services/algorithms.py
+++ b/atdb/taskdatabase/services/algorithms.py
@@ -201,6 +201,30 @@ def convert_config_to_html(querylist):
     return results
 
 
+def convert_monitor_to_html(monitor_data):
+    results = ""
+    try:
+        for record in monitor_data:
+            # iterate through the dict of key/values
+            key = record.name
+            value = record.status
+            filter = record.description
+            line = '<tr class="' + record.status + '" >'
+            line += "<td><b>" + str(record.name) + "</b></td>"
+            line += "<td>" + str(record.hostname) + "</td>"
+            line += "<td>" + str(record.status) + "</td>"
+            line += "<td>" + str(record.timestamp) + "</td>"
+            line += "<td>" + str(record.process_id) + "</td>"
+            line += "<td>" + str(record.description) + "</td>"
+            line += "</tr>"
+
+            results = results + line
+    except:
+        results = "<tr><td>no data</td></tr>"
+
+    return results
+
+
 # aggregate information from the tasks table per workflow per status
 def aggregate_resources_tasks(selection):
     workflow_results = []
diff --git a/atdb/taskdatabase/static/taskdatabase/style.css b/atdb/taskdatabase/static/taskdatabase/style.css
index 4ab2414d0961470c36178438b9ff0adeeae20353..3b9a2cdd8e3d0050a07888175f669b9b195415c1 100644
--- a/atdb/taskdatabase/static/taskdatabase/style.css
+++ b/atdb/taskdatabase/static/taskdatabase/style.css
@@ -33,9 +33,6 @@ TD {
   background-color: lightgreen;
 }
 
-.modal-content {
-    overflow: scroll !important;
-}
 
 .error,.failed,.staging_failed,.processed_failed,.scrubbed_failed,.stored_failed,.archived_failed {
   color: red;
@@ -52,8 +49,6 @@ TD {
   font-style: italic;
 }
 
-
-
 .processing,.processing_copying {
  font-weight: bold;
  background-color: lightyellow;
@@ -118,5 +113,9 @@ p.title {
 }
 
 .modal-dialog .modal-lg {
-         max-width: 75% !important;
+    max-width: 75% !important;
+}
+
+.modal-content {
+    overflow: scroll !important;
 }
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index dfee958b2257e0a191aff2a60a406283dc8c7b2f..60a3fc269d5c27ed015917d77834a487e53f12cf 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -80,7 +80,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 1.0.0 (27 jan 2021 - 15:00)
+    <p class="footer"> Version 1.0.0 (28 jan 2021 - 14:00)
 
 </div>
 
diff --git a/atdb/taskdatabase/templates/taskdatabase/monitoring.html b/atdb/taskdatabase/templates/taskdatabase/monitoring.html
index c2593e289a58c14747330a6b479632cb66be5b3e..cbe5c5d519cb79189e378f1f064917ae31651f77 100644
--- a/atdb/taskdatabase/templates/taskdatabase/monitoring.html
+++ b/atdb/taskdatabase/templates/taskdatabase/monitoring.html
@@ -5,20 +5,30 @@
 
 <div class="hiking-container container-fluid">
     <div class="col-sm-6 col-md-8 col-lg-12">
-
+          &nbsp;
           <div class="thumbnail">
-              &nbsp;
-              <h5>These monitoring services live at SURF-SARA and will open a new browser window.</h5>
+               <h5>Health and Status of the LDV services.</h5>
 
-<a href="https://jobsview.grid.surfsara.nl/grafana/d/i289WluZz/spider?orgId=1&from=now-6h&to=now-5m"
-   class="btn btn-info btn-lg" role="button" target="_blank"><img src="{% static 'taskdatabase/grafana_logo.jpg' %}"  height="40" alt=""> Spider (Grafana)</a>&nbsp;
+               <table class="table table-striped">
+                   <th>LDV-Service</th><th>Host</th><th>Status</th><th>Timestamp</th><th>Working on</th><th>Description</th>
+                   <tbody>
+                      {{ monitor_results | safe }}
+                    </tbody>
+               </table>
+          </div>
+        <hr>
+          <div class="thumbnail">
+              <h5>External monitoring services live at SURF-SARA.</h5>
+              <a href="https://jobsview.grid.surfsara.nl/grafana/d/i289WluZz/spider?orgId=1&from=now-6h&to=now-5m"
+               class="btn btn-info btn-lg" role="button" target="_blank"><img src="{% static 'taskdatabase/grafana_logo.jpg' %}"  height="40" alt=""> Spider (Grafana)</a>&nbsp;
+              <a href="https://ganglia.grid.surfsara.nl/dcache.php?vo=Lofar&r=day"
+               class="btn btn-info btn-lg" role="button" target="_blank"><img src="{% static 'taskdatabase/surfsara.jpg' %}"  height="40" alt=""> dCache (Ganglia)</a>&nbsp;
 
-<a href="https://ganglia.grid.surfsara.nl/dcache.php?vo=Lofar&r=day"
-   class="btn btn-info btn-lg" role="button" target="_blank"><img src="{% static 'taskdatabase/surfsara.jpg' %}"  height="40" alt=""> dCache (Ganglia)</a>&nbsp;
           </div>
             &nbsp;
         </div>
 
 </div>
+{% include 'taskdatabase/localstorage_scripts.html' %}
 {% endblock %}
 
diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py
index df6c25f048cace4621a808efa6e70adec0b989d5..90ab5ae8e43cb03ba0351040d6016767627116fa 100644
--- a/atdb/taskdatabase/urls.py
+++ b/atdb/taskdatabase/urls.py
@@ -26,7 +26,8 @@ urlpatterns = [
     path('query/', views.QueryView.as_view(), name='query'),
     # path('dashboard/', views.DashboardView.as_view(), name='dashboard'),
 
-    path('monitoring/', views.MonitoringView.as_view(), name='monitoring'),
+    # path('monitoring/', views.MonitoringView.as_view(), name='monitoring'),
+    path('monitoring/', views.ShowMonitoring, name='monitoring'),
     path('diagram/', views.DiagramView.as_view(), name='diagram'),
     path('config/', views.ShowConfig, name='config'),
 
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index a3542fd6662d4a10495f919d8e2f5fa99c711be1..06961b43cb542096403ebd9642524076a4b34cbc 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -328,9 +328,14 @@ def WorkflowDetails(request, id):
 
 
 class MonitoringView(ListView):
-    model = Task
+    model = Monitor
     template_name = "taskdatabase/monitoring.html"
 
+def ShowMonitoring(request):
+    monitor_data = Monitor.objects.all()
+
+    monitor_results = algorithms.convert_monitor_to_html(monitor_data)
+    return render(request, "taskdatabase/monitoring.html", {'monitor_results': monitor_results})
 
 class DiagramView(ListView):
     model = Task