diff --git a/src/components/pages/ModuleOverview/index.tsx b/src/components/pages/ModuleOverview/index.tsx
index d8283b20b584f8804df321e6dc65465a26fed41b..5864e95da39db874f446d87cb05c387fe44a48bb 100644
--- a/src/components/pages/ModuleOverview/index.tsx
+++ b/src/components/pages/ModuleOverview/index.tsx
@@ -7,6 +7,7 @@ import { api, methods } from "../../../constants/routes";
 import Accordion from "react-bootstrap/Accordion";
 import Card from "react-bootstrap/Card";
 import MyBreadcrumbs from "components/atoms/MyBreadcrumbs";
+import queryString from "query-string";
 import FileListItem from "components/atoms/FileListItem";
 import {
   resourceTypeToIcon,
@@ -53,9 +54,24 @@ class ModuleOverview extends React.Component<
       data.json().then((json) => {
         for (const key in json) {
           let resource = json[key];
+
+          let resourceURL = queryString.parseUrl(resource.path);
+          let extension = resource.path.substr(
+            resource.path.lastIndexOf(".") + 1
+          );
+          let altType = undefined;
+          if (
+            resourceURL.url ===
+            "https://imperial.cloud.panopto.eu/Panopto/Pages/Viewer.aspx"
+          ) {
+            altType = "video";
+          } else if (extension === "pdf") {
+            altType = "pdf";
+          }
+
           resourceArr.push({
             title: resource.title,
-            type: resource.type,
+            type: altType || resource.type,
             tags: resource.tags,
             folder: resource.category,
             id: resource.id,
diff --git a/src/components/pages/ModuleResources/index.tsx b/src/components/pages/ModuleResources/index.tsx
index 6bf5b8dc86c9ea88a6a1f9221f2e55a6dcec4687..882d1c5e436995446a6a8b1cb331dae1ee05b73e 100644
--- a/src/components/pages/ModuleResources/index.tsx
+++ b/src/components/pages/ModuleResources/index.tsx
@@ -42,7 +42,6 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> {
       isLoaded: false,
       resources: [],
       searchText: "",
-      // change this value to switch between staff and student for testing
       isStaff: false,
     };
   }
@@ -57,6 +56,9 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> {
           let resource = json[key];
 
           let resourceURL = queryString.parseUrl(resource.path);
+          let extension = resource.path.substr(
+            resource.path.lastIndexOf(".") + 1
+          );
           let thumbnail = undefined;
           let altType = undefined;
           if (
@@ -65,6 +67,8 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> {
           ) {
             altType = "video";
             thumbnail = `https://imperial.cloud.panopto.eu/Panopto/Services/FrameGrabber.svc/FrameRedirect?objectId=${resourceURL.query.id}&mode=Delivery`;
+          } else if (extension === "pdf") {
+            altType = "pdf";
           }
           resourceArr.push({
             title: resource.title,
@@ -138,7 +142,7 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> {
   }
 
   includeInSearchResult(item: Resource, searchText: string) {
-    let rx = /([a-z]+)\(([^)]+)\)/gi;
+    const rx = /([a-z]+)\(([^)]+)\)/gi;
     let match: RegExpExecArray | null;
     let title = item.title.toLowerCase();
     let tags = item.tags.map((tag) => tag.toLowerCase());