diff --git a/client/.eslintrc b/client/.eslintrc
index 9f14e433b46b516e8adc6b26ece87084adb3e3bb..3e2dbeb0fc5a04a61ba058eb0b1015fcc43e9a50 100644
--- a/client/.eslintrc
+++ b/client/.eslintrc
@@ -21,7 +21,9 @@
         "plugin:prettier/recommended"
     ],
     "rules": {
-      "prettier/prettier": ["warn"]
+      "prettier/prettier": ["warn", {
+       "endOfLine":"auto"
+     }]
     }
   }
   
diff --git a/client/package.json b/client/package.json
index 29f94e91c0462a1951e4fc38be708c901f5c111b..ccfa1134525936e1555231281e828ad02a1b127d 100644
--- a/client/package.json
+++ b/client/package.json
@@ -53,7 +53,7 @@
     "build": "react-scripts build",
     "test": "react-scripts test",
     "eject": "react-scripts eject",
-    "lint": "eslint \"./src/**/*.{js,ts,tsx}\"",
+    "lint": "eslint \"./src/**/*.{ts,tsx}\"",
     "test:coverage": "react-scripts test --coverage --coverageDirectory=output/coverage/jest",
     "test:coverage:html": "npm test -- --coverage --watchAll=false --coverageDirectory=output/coverage/jest"
   },
diff --git a/client/src/Main.tsx b/client/src/Main.tsx
index 568d101035f8b71b088af01616c4e8ea8101140a..0d85c12a9d357ceed5c4051a0803cecd8f194b3d 100644
--- a/client/src/Main.tsx
+++ b/client/src/Main.tsx
@@ -8,7 +8,7 @@ import JudgeViewPage from './pages/views/JudgeViewPage'
 import ParticipantViewPage from './pages/views/ParticipantViewPage'
 import ViewSelectPage from './pages/views/ViewSelectPage'
 
-const Main = () => {
+const Main: React.FC = () => {
   return (
     <BrowserRouter>
       <Switch>
diff --git a/client/src/index.tsx b/client/src/index.tsx
index e60483219a7187cad22aaac7fa4fcd30b1db727a..6d8b17f95fd464385374041f0d23ecaa07c1e1de 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -23,10 +23,7 @@ declare global {
 // const store = createStore(allReducers, composeEnhancers(applyMiddleware()))
 
 // simple store with plugin
-const store = createStore(
-  allReducers,
-  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
-)
+const store = createStore(allReducers, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())
 
 // Provider wraps the app component so that it can access store
 ReactDOM.render(
diff --git a/client/src/pages/admin/AdminPage.tsx b/client/src/pages/admin/AdminPage.tsx
index a95bf04ee0c8c50e298c859e345a153d93ce6d8a..196595c9d59f13ddebe99dc8d60cb493b0965388 100644
--- a/client/src/pages/admin/AdminPage.tsx
+++ b/client/src/pages/admin/AdminPage.tsx
@@ -50,7 +50,7 @@ const useStyles = makeStyles((theme: Theme) =>
   })
 )
 
-const AdminView: React.FC = (props) => {
+const AdminView: React.FC = () => {
   const classes = useStyles()
   const [openIndex, setOpenIndex] = React.useState(0)
   const { path, url } = useRouteMatch()
diff --git a/client/src/pages/admin/components/CompetitionManager.tsx b/client/src/pages/admin/components/CompetitionManager.tsx
index a85378ab083930051dd595db5c74b411f49d6bb3..8a4b9afb0129edb92d9136244bd74ccf467cd7ae 100644
--- a/client/src/pages/admin/components/CompetitionManager.tsx
+++ b/client/src/pages/admin/components/CompetitionManager.tsx
@@ -80,7 +80,7 @@ const useStyles = makeStyles((theme: Theme) =>
   })
 )
 
-const CompetitionManager: React.FC = (props) => {
+const CompetitionManager: React.FC = () => {
   const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null)
   const classes = useStyles()
   const yearInitialValue = 0
@@ -124,7 +124,7 @@ const CompetitionManager: React.FC = (props) => {
               <MenuItem value={noFilterText} onClick={() => setRegion(regionInitialValue)}>
                 {noFilterText}
               </MenuItem>
-              {regions.map((text, index) => (
+              {regions.map((text) => (
                 <MenuItem key={text} value={text} onClick={() => setRegion(text)}>
                   {text}
                 </MenuItem>
@@ -143,7 +143,7 @@ const CompetitionManager: React.FC = (props) => {
               <MenuItem value={noFilterText} onClick={() => setYear(yearInitialValue)}>
                 {noFilterText}
               </MenuItem>
-              {years.map((year, index) => (
+              {years.map((year) => (
                 <MenuItem key={year} value={year} onClick={() => setYear(year)}>
                   {year}
                 </MenuItem>
diff --git a/client/src/pages/admin/components/Regions.tsx b/client/src/pages/admin/components/Regions.tsx
index f40c834414113e7e4e4cd8f832ed37642f1c6996..d58802d06e8c53261a10e183c31984ca767e2f99 100644
--- a/client/src/pages/admin/components/Regions.tsx
+++ b/client/src/pages/admin/components/Regions.tsx
@@ -1,7 +1,7 @@
 import Typography from '@material-ui/core/Typography'
 import React from 'react'
 
-const Regions: React.FC = (props) => {
+const Regions: React.FC = () => {
   return (
     <Typography variant="h1" noWrap>
       Regions
diff --git a/client/src/pages/login/LoginPage.tsx b/client/src/pages/login/LoginPage.tsx
index 776e64b1b9582ddbd000470d63089994144d8777..582154a28586ee32909364575035c220e68ea872 100644
--- a/client/src/pages/login/LoginPage.tsx
+++ b/client/src/pages/login/LoginPage.tsx
@@ -23,7 +23,7 @@ const useStyles = makeStyles((theme: Theme) => ({
   },
 }))
 
-const LoginPage: React.FC = (props) => {
+const LoginPage: React.FC = () => {
   const classes = useStyles()
   const [loginTab, setLoginTab] = React.useState(0)
   return (
diff --git a/client/src/pages/login/components/AdminLogin.tsx b/client/src/pages/login/components/AdminLogin.tsx
index 77dc2a4ccd1d500221cb4c5a3ce0f3a2972dbb7d..f26240043a48e5fb07bcc51a86163db9ea2edf03 100644
--- a/client/src/pages/login/components/AdminLogin.tsx
+++ b/client/src/pages/login/components/AdminLogin.tsx
@@ -29,7 +29,7 @@ const accountSchema: Yup.SchemaOf<AccountLoginFormModel> = Yup.object({
 const handleAccountSubmit = async (values: AccountLoginFormModel, actions: FormikHelpers<AccountLoginFormModel>) => {
   await axios
     .post<ServerResponse>(`users/login`, values.model)
-    .then((res) => {
+    .then(() => {
       actions.resetForm()
     })
     .catch(({ response }) => {
@@ -41,7 +41,7 @@ const handleAccountSubmit = async (values: AccountLoginFormModel, actions: Formi
     })
 }
 
-const AdminLogin: React.FC = (props) => {
+const AdminLogin: React.FC = () => {
   const accountInitialValues: AccountLoginFormModel = {
     model: { email: '', password: '' },
   }
diff --git a/client/src/pages/login/components/CompetitionLogin.tsx b/client/src/pages/login/components/CompetitionLogin.tsx
index 2450196d0cf5166a4d295417c69ef3654196552f..7ac9e6dbe684f87b3939b92d2446ec8a08a55cdd 100644
--- a/client/src/pages/login/components/CompetitionLogin.tsx
+++ b/client/src/pages/login/components/CompetitionLogin.tsx
@@ -32,7 +32,7 @@ const handleCompetitionSubmit = async (
   console.log(values.model)
   await axios
     .post<ServerResponse>(`users/login`, { code: values.model.code })
-    .then((res) => {
+    .then(() => {
       actions.resetForm()
     })
     .catch(({ response }) => {
@@ -44,7 +44,7 @@ const handleCompetitionSubmit = async (
     })
 }
 
-const CompetitionLogin: React.FC = (props) => {
+const CompetitionLogin: React.FC = () => {
   const competitionInitialValues: CompetitionLoginFormModel = {
     model: { code: '' },
   }
diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
index c48e89582f00bb5906e09bf16fe557d7be54282d..97da7889ee1d912a8ca58f57180f3047057ffec3 100644
--- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx
+++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx
@@ -68,7 +68,7 @@ interface CompetitionParams {
   id: string
 }
 
-const PresentationEditorPage: React.FC = (props) => {
+const PresentationEditorPage: React.FC = () => {
   const classes = useStyles()
   const params: CompetitionParams = useParams()
   return (
@@ -103,7 +103,7 @@ const PresentationEditorPage: React.FC = (props) => {
         <div className={classes.toolbar} />
         <Divider />
         <List>
-          {slides.map((slide, index) => (
+          {slides.map((slide) => (
             <ListItem className="slide-list-item" divider button key={slide.name}>
               <ListItemText primary={slide.name} />
             </ListItem>
diff --git a/client/src/pages/presentationEditor/components/CompetitionSettings.tsx b/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
index 724786349bf514c3bee7c2f48ec3ca64adec0b96..6b555abc5a08e628f95bbf337b6425e009b96d1b 100644
--- a/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
+++ b/client/src/pages/presentationEditor/components/CompetitionSettings.tsx
@@ -24,11 +24,8 @@ const useStyles = makeStyles((theme: Theme) =>
     },
   })
 )
-interface TeamListItemProps {
-  name: string
-}
 
-const CompetitionSettings: React.FC = (props) => {
+const CompetitionSettings: React.FC = () => {
   const classes = useStyles()
   const initialList = [
     { id: '1', name: 'Lag1' },
diff --git a/client/src/pages/presentationEditor/components/SettingsPanel.tsx b/client/src/pages/presentationEditor/components/SettingsPanel.tsx
index 946befe71e75a33d80eafe0067a4238f641059f1..00fc1962e2c31dd57cdd3eb52dd7375142b70517 100644
--- a/client/src/pages/presentationEditor/components/SettingsPanel.tsx
+++ b/client/src/pages/presentationEditor/components/SettingsPanel.tsx
@@ -17,7 +17,7 @@ function TabContent(props: TabPanelProps) {
   return <div>3</div>
 }
 
-const SettingsPanel: React.FC = (props) => {
+const SettingsPanel: React.FC = () => {
   const [activeTab, setActiveTab] = React.useState(0)
   return (
     <div>
diff --git a/client/src/pages/views/AudienceViewPage.tsx b/client/src/pages/views/AudienceViewPage.tsx
index f0cd70bc18d1132c0054ff3242ef04e4a35e4fb0..45ec132d162b1099bc9e77e6b68c87dc35ea65b6 100644
--- a/client/src/pages/views/AudienceViewPage.tsx
+++ b/client/src/pages/views/AudienceViewPage.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-const AudienceViewPage: React.FC = (props) => {
+const AudienceViewPage: React.FC = () => {
   return <div>Publik</div>
 }
 
diff --git a/client/src/pages/views/JudgeViewPage.tsx b/client/src/pages/views/JudgeViewPage.tsx
index 0051152b6327bd9df8257733b4e8628be21bd0c0..457ebe088c03a470f44fb693b7efbdea7f2d24f5 100644
--- a/client/src/pages/views/JudgeViewPage.tsx
+++ b/client/src/pages/views/JudgeViewPage.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-const JudgeViewPage: React.FC = (props) => {
+const JudgeViewPage: React.FC = () => {
   return <div>Judge</div>
 }
 
diff --git a/client/src/pages/views/ParticipantViewPage.tsx b/client/src/pages/views/ParticipantViewPage.tsx
index 6a22cd4477e91a9a3d7f8d82bb36363c8c38a990..a5ff1f4f53c3dac87a06fb78cb325ea8a93e2a3d 100644
--- a/client/src/pages/views/ParticipantViewPage.tsx
+++ b/client/src/pages/views/ParticipantViewPage.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 
-const ParticipantViewPage: React.FC = (props) => {
+const ParticipantViewPage: React.FC = () => {
   return <div>Deltagare</div>
 }
 
diff --git a/client/src/pages/views/ViewSelectPage.tsx b/client/src/pages/views/ViewSelectPage.tsx
index 81decf7cdfb52b9d586edd2e92922eba7f3f58a9..b7b753faa6217e37ff3f2463757fd11d7a342f64 100644
--- a/client/src/pages/views/ViewSelectPage.tsx
+++ b/client/src/pages/views/ViewSelectPage.tsx
@@ -3,8 +3,8 @@ import React from 'react'
 import { Link, useRouteMatch } from 'react-router-dom'
 import './ViewSelectPage.css'
 
-const ViewSelectPage: React.FC = (props) => {
-  const { path, url } = useRouteMatch()
+const ViewSelectPage: React.FC = () => {
+  const url = useRouteMatch().url
   return (
     <div className="root">
       <div className="button-group">
diff --git a/client/src/reportWebVitals.ts b/client/src/reportWebVitals.ts
index 57a24a21eae1de4e00842390a8e04a76e7c68bad..a832dfa7c24162e95463f27f3687de39a3c311bb 100644
--- a/client/src/reportWebVitals.ts
+++ b/client/src/reportWebVitals.ts
@@ -1,6 +1,6 @@
 import { ReportHandler } from 'web-vitals'
 
-const reportWebVitals = (onPerfEntry?: ReportHandler) => {
+const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => {
   if (onPerfEntry && onPerfEntry instanceof Function) {
     import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
       getCLS(onPerfEntry)