diff --git a/Public API/Client/Pages/LatestData.razor b/Public API/Client/Pages/LatestData.razor
index 7cf171fa8d29ee65f164357f4da2f232692032fa..f83e3777c86cb689a3368bfe923f09275b398649 100644
--- a/Public API/Client/Pages/LatestData.razor	
+++ b/Public API/Client/Pages/LatestData.razor	
@@ -55,6 +55,6 @@
 
     protected override async Task OnInitializedAsync()
     {
-        sensorData = await http.GetFromJsonAsync<vw_SensorData[]>("frontend/LatestData");
+        sensorData = await http.GetFromJsonAsync<vw_SensorData[]>("api/LatestData");
     }
 }
diff --git a/Public API/Client/Program.cs b/Public API/Client/Program.cs
index 2feb57ac1f78026724d12857aa94fa757234c5c8..68d5c4fb178fa5cd5e37c9a8ea482af29e08d48a 100644
--- a/Public API/Client/Program.cs	
+++ b/Public API/Client/Program.cs	
@@ -31,7 +31,7 @@ namespace Public_API.Client
                 BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
             });
 
-            builder.RootComponents.Add<App>("app");
+            builder.RootComponents.Add<App>("#app");
 
             builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
 
diff --git a/Public API/Client/Public_API.Client.csproj b/Public API/Client/Public_API.Client.csproj
index ce818e3193b7fec134c3b93f2fddac698a65f952..75a5246998222e8562fd748f270b117c9671af0d 100644
--- a/Public API/Client/Public_API.Client.csproj	
+++ b/Public API/Client/Public_API.Client.csproj	
@@ -1,16 +1,17 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
+<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
 
   <PropertyGroup>
-    <TargetFramework>netstandard2.1</TargetFramework>
-    <RazorLangVersion>3.0</RazorLangVersion>
+    <TargetFramework>net5.0</TargetFramework>
     <AssemblyName>$(AssemblyName.Replace(' ', '_'))</AssemblyName>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
-    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
-    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
-    <PackageReference Include="System.Net.Http.Json" Version="3.2.0" />
+    <PackageReference Include="Blazorise" Version="0.9.5.4" />
+    <PackageReference Include="Blazorise.Bootstrap" Version="0.9.5.4" />
+    <PackageReference Include="Blazorise.Icons.FontAwesome" Version="0.9.5.4" />
+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.13" />
+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.13" PrivateAssets="all" />
+    <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/Public API/Client/Shared/MainLayout.razor b/Public API/Client/Shared/MainLayout.razor
index 0f4e22a9434dbe4756c127c1c619982c6f0d1b17..688e25f05da95352fb0ae7e0fecef9bcd10b551f 100644
--- a/Public API/Client/Shared/MainLayout.razor	
+++ b/Public API/Client/Shared/MainLayout.razor	
@@ -1,15 +1,16 @@
 @inherits LayoutComponentBase
-
-<div class="sidebar">
-    <NavMenu />
-</div>
-
-<div class="main">
-    <div class="top-row px-4">
-        <a href="http://blazor.net" target="_blank" class="ml-md-auto">About</a>
+<div class="page">
+    <div class="sidebar">
+        <NavMenu />
     </div>
 
-    <div class="content px-4">
-        @Body
+    <div class="main">
+        <div class="top-row px-4">
+            <a href="http://blazor.net" target="_blank" class="ml-md-auto">About</a>
+        </div>
+
+        <div class="content px-4">
+            @Body
+        </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/Public API/Client/Shared/MainLayout.razor.css b/Public API/Client/Shared/MainLayout.razor.css
new file mode 100644
index 0000000000000000000000000000000000000000..599238d7c68858da1b462f5c5de7372c019f23f8
--- /dev/null
+++ b/Public API/Client/Shared/MainLayout.razor.css	
@@ -0,0 +1,70 @@
+.page {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+}
+
+.main {
+    flex: 1;
+}
+
+.sidebar {
+    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
+}
+
+.top-row {
+    background-color: #f7f7f7;
+    border-bottom: 1px solid #d6d5d5;
+    justify-content: flex-end;
+    height: 3.5rem;
+    display: flex;
+    align-items: center;
+}
+
+    .top-row ::deep a, .top-row .btn-link {
+        white-space: nowrap;
+        margin-left: 1.5rem;
+    }
+
+    .top-row a:first-child {
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+
+@media (max-width: 767.98px) {
+    .top-row:not(.auth) {
+        display: none;
+    }
+
+    .top-row.auth {
+        justify-content: space-between;
+    }
+
+    .top-row a, .top-row .btn-link {
+        margin-left: 0;
+    }
+}
+
+@media (min-width: 768px) {
+    .page {
+        flex-direction: row;
+    }
+
+    .sidebar {
+        width: 250px;
+        height: 100vh;
+        position: sticky;
+        top: 0;
+    }
+
+    .top-row {
+        position: sticky;
+        top: 0;
+        z-index: 1;
+    }
+
+    .main > div {
+        padding-left: 2rem !important;
+        padding-right: 1.5rem !important;
+    }
+}
diff --git a/Public API/Client/Shared/NavMenu.razor.css b/Public API/Client/Shared/NavMenu.razor.css
new file mode 100644
index 0000000000000000000000000000000000000000..c0fa2897f44618fd1688b7b0b4d78417203aa46b
--- /dev/null
+++ b/Public API/Client/Shared/NavMenu.razor.css	
@@ -0,0 +1,62 @@
+.navbar-toggler {
+    background-color: rgba(255, 255, 255, 0.1);
+}
+
+.top-row {
+    height: 3.5rem;
+    background-color: rgba(0,0,0,0.4);
+}
+
+.navbar-brand {
+    font-size: 1.1rem;
+}
+
+.oi {
+    width: 2rem;
+    font-size: 1.1rem;
+    vertical-align: text-top;
+    top: -2px;
+}
+
+.nav-item {
+    font-size: 0.9rem;
+    padding-bottom: 0.5rem;
+}
+
+    .nav-item:first-of-type {
+        padding-top: 1rem;
+    }
+
+    .nav-item:last-of-type {
+        padding-bottom: 1rem;
+    }
+
+    .nav-item ::deep a {
+        color: #d7d7d7;
+        border-radius: 4px;
+        height: 3rem;
+        display: flex;
+        align-items: center;
+        line-height: 3rem;
+    }
+
+        .nav-item ::deep a.active {
+            background-color: rgba(255,255,255,0.25);
+            color: white;
+        }
+
+        .nav-item ::deep a:hover {
+            background-color: rgba(255,255,255,0.1);
+            color: white;
+        }
+
+@media (min-width: 768px) {
+    .navbar-toggler {
+        display: none;
+    }
+
+    .collapse {
+        /* Never collapse the sidebar for wide screens */
+        display: block;
+    }
+}
diff --git a/Public API/Client/_Imports.razor b/Public API/Client/_Imports.razor
index 4248b66a8f14db41de6f61987c31beb587ef94d0..d5ddf21c91eb40863ec8ea0ee4cd2404e42ed3e9 100644
--- a/Public API/Client/_Imports.razor	
+++ b/Public API/Client/_Imports.razor	
@@ -3,7 +3,9 @@
 @using Microsoft.AspNetCore.Components.Forms
 @using Microsoft.AspNetCore.Components.Routing
 @using Microsoft.AspNetCore.Components.Web
+@using Microsoft.AspNetCore.Components.Web.Virtualization
 @using Microsoft.AspNetCore.Components.WebAssembly.Http
 @using Microsoft.JSInterop
 @using Public_API.Client
-@using Public_API.Client.Shared
\ No newline at end of file
+@using Public_API.Client.Shared
+@using Blazorise
\ No newline at end of file
diff --git a/Public API/Client/wwwroot/css/app.css b/Public API/Client/wwwroot/css/app.css
index 4e4425c9b3d00daccc727839ac0cb2b59d9a90f7..82fc22a39385eba2a095081c6138f5422ffdb3f8 100644
--- a/Public API/Client/wwwroot/css/app.css	
+++ b/Public API/Client/wwwroot/css/app.css	
@@ -14,97 +14,10 @@ a, .btn-link {
     border-color: #1861ac;
 }
 
-app {
-    position: relative;
-    display: flex;
-    flex-direction: column;
-}
-
-.top-row {
-    height: 3.5rem;
-    display: flex;
-    align-items: center;
-}
-
-.main {
-    flex: 1;
-}
-
-    .main .top-row {
-        background-color: #f7f7f7;
-        border-bottom: 1px solid #d6d5d5;
-        justify-content: flex-end;
-    }
-
-        .main .top-row > a, .main .top-row .btn-link {
-            white-space: nowrap;
-            margin-left: 1.5rem;
-        }
-
-.main .top-row a:first-child {
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-
-.sidebar {
-    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
-}
-
-    .sidebar .top-row {
-        background-color: rgba(0,0,0,0.4);
-    }
-
-    .sidebar .navbar-brand {
-        font-size: 1.1rem;
-    }
-
-    .sidebar .oi {
-        width: 2rem;
-        font-size: 1.1rem;
-        vertical-align: text-top;
-        top: -2px;
-    }
-
-    .sidebar .nav-item {
-        font-size: 0.9rem;
-        padding-bottom: 0.5rem;
-    }
-
-        .sidebar .nav-item:first-of-type {
-            padding-top: 1rem;
-        }
-
-        .sidebar .nav-item:last-of-type {
-            padding-bottom: 1rem;
-        }
-
-        .sidebar .nav-item a {
-            color: #d7d7d7;
-            border-radius: 4px;
-            height: 3rem;
-            display: flex;
-            align-items: center;
-            line-height: 3rem;
-        }
-
-            .sidebar .nav-item a.active {
-                background-color: rgba(255,255,255,0.25);
-                color: white;
-            }
-
-            .sidebar .nav-item a:hover {
-                background-color: rgba(255,255,255,0.1);
-                color: white;
-            }
-
 .content {
     padding-top: 1.1rem;
 }
 
-.navbar-toggler {
-    background-color: rgba(255, 255, 255, 0.1);
-}
-
 .valid.modified:not([type=checkbox]) {
     outline: 1px solid #26b050;
 }
@@ -129,55 +42,9 @@ app {
     z-index: 1000;
 }
 
-#blazor-error-ui .dismiss {
-    cursor: pointer;
-    position: absolute;
-    right: 0.75rem;
-    top: 0.5rem;
-}
-
-@media (max-width: 767.98px) {
-    .main .top-row:not(.auth) {
-        display: none;
-    }
-
-    .main .top-row.auth {
-        justify-content: space-between;
-    }
-
-    .main .top-row a, .main .top-row .btn-link {
-        margin-left: 0;
-    }
-}
-
-@media (min-width: 768px) {
-    app {
-        flex-direction: row;
-    }
-
-    .sidebar {
-        width: 250px;
-        height: 100vh;
-        position: sticky;
-        top: 0;
-    }
-
-    .main .top-row {
-        position: sticky;
-        top: 0;
-    }
-
-    .main > div {
-        padding-left: 2rem !important;
-        padding-right: 1.5rem !important;
-    }
-
-    .navbar-toggler {
-        display: none;
+    #blazor-error-ui .dismiss {
+        cursor: pointer;
+        position: absolute;
+        right: 0.75rem;
+        top: 0.5rem;
     }
-
-    .sidebar .collapse {
-        /* Never collapse the sidebar for wide screens */
-        display: block;
-    }
-}
diff --git a/Public API/Client/wwwroot/index.html b/Public API/Client/wwwroot/index.html
index 8188970755603f7c89f931c1902cb89a32fa2c3c..623e6783ad1228028d7503a45df8f2b8cbc81f24 100644
--- a/Public API/Client/wwwroot/index.html	
+++ b/Public API/Client/wwwroot/index.html	
@@ -12,10 +12,12 @@
 
     <link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
     <link href="css/app.css" rel="stylesheet" />
+
+    <link href="Public_API.Client.styles.css" rel="stylesheet" />
 </head>
 
 <body>
-    <app>Loading...</app>
+    <div id="app">Loading...</div>
 
     <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
diff --git a/Public API/Server/Controllers/APIController.cs b/Public API/Server/Controllers/APIController.cs
index b74137aad0ffd09c02b9a69fd5fae028d463f097..c30293769293b09e870db76056266bf7097bd5f5 100644
--- a/Public API/Server/Controllers/APIController.cs	
+++ b/Public API/Server/Controllers/APIController.cs	
@@ -2,6 +2,7 @@
 using Public_API.Server.DAL;
 using Public_API.Shared.Models;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 using System.Net;
diff --git a/Public API/Server/Public_API.Server.csproj b/Public API/Server/Public_API.Server.csproj
index 2f5b2c877493b84f080a70ced2e72f3767570635..ae2db77e85df5e47672d840ad0e5f7c9463aefd8 100644
--- a/Public API/Server/Public_API.Server.csproj	
+++ b/Public API/Server/Public_API.Server.csproj	
@@ -1,17 +1,19 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net5.0</TargetFramework>
     <RootNamespace>Public API.Server</RootNamespace>
     <AssemblyName>$(AssemblyName.Replace(' ', '_'))</AssemblyName>
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="Blazorise" Version="0.9.5.4" />
     <PackageReference Include="Blazorise.Bootstrap" Version="0.9.5.4" />
-    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="3.2.1" />
+    <PackageReference Include="Blazorise.Icons.FontAwesome" Version="0.9.5.4" />
+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="5.0.13" />
     <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.20" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.20" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.13" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.13" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.20">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
diff --git a/Public API/Shared/Public_API.Shared.csproj b/Public API/Shared/Public_API.Shared.csproj
index fce8eefd57191f4237b3a7d4c83ea1b752f85f3a..ae53c33ab0e54b55b32076b36939eac07272419a 100644
--- a/Public API/Shared/Public_API.Shared.csproj	
+++ b/Public API/Shared/Public_API.Shared.csproj	
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>netstandard2.1</TargetFramework>
+    <TargetFramework>net5.0</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>