diff --git a/server/src/app.ts b/server/src/app.ts
index 366a65553d7703169d63f10d608cff484411bc2a..1c62ec174ee53bc64eb39cc3412a932f0b7f59c6 100644
--- a/server/src/app.ts
+++ b/server/src/app.ts
@@ -2,7 +2,6 @@ import express, { Application } from 'express';
 import routes from "./routes/routes";
 import bodyParser from 'body-parser';
 import cors from 'cors';
-import mysql from 'mysql2';
 // Boot express
 const app: Application = express();
 
diff --git a/server/src/controllers/categoryController/index.ts b/server/src/controllers/categoryController/index.ts
index 6d9d91a1d812ac99c00af092a9ed2928a80d678f..04d2f97730303afe3925758ab137e6e0f6f6df4f 100644
--- a/server/src/controllers/categoryController/index.ts
+++ b/server/src/controllers/categoryController/index.ts
@@ -20,7 +20,7 @@ const category = new Category();
 router.route('/').post(async (request: Request, response: Response) => {
 	const {category} = request.body;
 	try {
-		const input = (` INSERT INTO category(navn) VALUES (?);`)
+		const input = (` INSERT INTO category(name) VALUES (?);`)
 		return response.status(200).json(
             await query(input,[category])
         );
diff --git a/server/src/controllers/categoryController/tests/categoryController.test.ts b/server/src/controllers/categoryController/tests/categoryController.test.ts
index a0283e72cfa8e64a2d2820393b0f34a249143e72..22c7fc8035211209871148db40179f80b62a802f 100644
--- a/server/src/controllers/categoryController/tests/categoryController.test.ts
+++ b/server/src/controllers/categoryController/tests/categoryController.test.ts
@@ -11,7 +11,9 @@ describe('Test categoryController', () => {
     });
 
     it('Request /api/category should return request of 200!', async () => {
-        const result = await request(app).get('/api/category').send();
+        const result = await request(app)
+        .get('/api/category')
+        .send()
 
         expect(result.status).toBe(200);
     });
@@ -20,6 +22,6 @@ describe('Test categoryController', () => {
         const result = await request(app).get('/api/category/1').send();
 
         expect(result.status).toBe(200);
-        expect(result.body.data[0]?.navn).toBe('Antikviteter og Kunst');
+        expect(result.body.data[0]?.name).toBe('Antikviteter og Kunst');
     });
-});
\ No newline at end of file
+});
diff --git a/server/src/controllers/postcontroller/index.ts b/server/src/controllers/postcontroller/index.ts
index c437f2c608dd9d3087ecc1099a3544a4585f5a7b..a296498fdf50da35a230cc7d198b9cf76a0d2dd4 100644
--- a/server/src/controllers/postcontroller/index.ts
+++ b/server/src/controllers/postcontroller/index.ts
@@ -36,7 +36,7 @@ router.route('/').post(async (request: Request, response: Response) => {
 router.route('/').get(async (_: Request, response: Response) => {
 	try {
 		//response.status(200).json(await query("SELECT * FROM post;",""));
-		const input = `SELECT p.id, p.title, p.description, p.timestamp, p.owner, category.navn, p.imageUrl 
+		const input = `SELECT p.id, p.title, p.description, p.timestamp, p.owner, category.name, p.imageUrl 
 		FROM post as p
 		INNER JOIN category ON category.categoryid = p.categoryid;`
 		response.status(200).json(await query(input,""));
@@ -50,7 +50,7 @@ router.route('/:id').get(async (request: Request, response: Response) => {
 	const postId = request.params.id;
 	try {
 		//response.status(200).json(await query("SELECT * FROM post WHERE id=?;",[postId]));
-		const input = `SELECT p.id, p.title, p.description, p.timestamp, p.owner, category.navn, p.imageUrl 
+		const input = `SELECT p.id, p.title, p.description, p.timestamp, p.owner, category.name, p.imageUrl 
 		FROM post as p
 		INNER JOIN category ON category.categoryid = p.categoryid WHERE p.id=?;`
 		response.status(200).json(await query(input,[postId]));
diff --git a/server/src/controllers/postcontroller/tests/postController.test.ts b/server/src/controllers/postcontroller/tests/postController.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..536b27c0d6db6ebb4f51b2f7ae6b6422befce6ea
--- /dev/null
+++ b/server/src/controllers/postcontroller/tests/postController.test.ts
@@ -0,0 +1,28 @@
+import request from 'supertest';
+import app from '../../../app';
+
+describe('Test postController', () => {
+    beforeAll(async () => { // kjører før testing
+        console.log("Post controller test starting...");
+    });
+
+    afterAll(async () => { // kjører når all testing er gått gjennom
+        console.log("...Test ending");
+    });
+
+    it('Request /api/post should return request of 200!', async () => {
+        const result = await request(app)
+        .get('/api/post')
+        .send()
+
+        expect(result.status).toBe(200);
+    });
+
+    it('Request /api/post/1 should return data with name "test"!', async () => {
+        const result = await request(app).get('/api/post/1').send();
+
+        expect(result.status).toBe(200);
+        expect(result.body.data[0]?.title).toBe('test');
+    });
+
+});
\ No newline at end of file
diff --git a/server/src/controllers/userController/index.ts b/server/src/controllers/userController/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8bc393a47ed75a0864a3ffda17be3450aba44f67
--- /dev/null
+++ b/server/src/controllers/userController/index.ts
@@ -0,0 +1,74 @@
+import { Response, Request } from "express";
+import query from '../../services/db_query';
+import express from 'express';
+import IUser from '../../models/user';
+
+const router = express.Router();
+/* ============================= CREATE ============================= */
+// Get all users `/api/user/`
+router.route('/').post(async (request: Request, response: Response) => {
+	const {username, email, password, create_time} = request.body;
+	try {
+		const user: IUser = {
+			"username": username,
+			"email": email,
+            "password": password,
+		};
+		if (Object.values(user).filter(p => p == undefined).length > 0) return response.status(500).send("Error");
+		const input = (`INSERT INTO user(username, email, password) VALUES (?,?,?)`)
+		return response.status(200).json(
+			await query(input,Object.values(user))
+		);
+	} catch (error) {
+		return response.status(400).send("Bad Request");
+	}
+});
+/* ============================= READ ============================= */
+// Get all users `/api/user/`
+router.route('/').get(async (_: Request, response: Response) => {
+	try {
+		const input = "SELECT * FROM user;"
+		response.status(200).json(await query(input,""));
+	} catch (error) {
+		response.status(400).send("Bad Request");
+	}
+});
+
+// Get post with id `/api/user/:id`
+router.route('/:userId').get(async (request: Request, response: Response) => {
+	const userId = request.params.userId;
+	try {
+		const input = `SELECT * FROM user WHERE userId=?;`
+		response.status(200).json(await query(input,[userId]));
+	} catch (error) {
+		response.status(400).send("Bad Request");
+	}
+});
+
+/* ============================= UPDATE ============================= */
+// Update user from id `/api/user/:id`
+router.route('/:userId').put(async (request: Request, response: Response) => {
+	const userId = request.params.userId;
+	const {username, email, password} = request.body;
+	try {
+		const input = `UPDATE user SET username=?, email=?, password=? WHERE userId=?);`;
+		response.status(200).json(await query(input,[username, email, password, userId]));
+	} catch (error) {
+		response.status(400).send("Bad Request");
+	}
+});
+
+/* ============================= DELETE ============================= */
+// Delete user from id `/api/user/:id`
+router.route('/:userId').delete(async (request: Request, response: Response) => {
+	const userId = request.params.userId;
+	try {
+		const input = `DELETE FROM user WHERE (userId=?);`;
+		response.status(200).json(await query(input,[userId]));
+	} catch (error) {
+		response.status(400).send("Bad Request");
+	}
+});
+
+export default router;
+
diff --git a/server/src/controllers/userController/tests/userController.test.ts b/server/src/controllers/userController/tests/userController.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..000014a281dbff84224cd11690b15b7dd88ca865
--- /dev/null
+++ b/server/src/controllers/userController/tests/userController.test.ts
@@ -0,0 +1,27 @@
+import request from 'supertest';
+import app from '../../../app';
+
+describe('Test userController', () => {
+    beforeAll(async () => { // kjører før testing
+        console.log("User controller test starting...");
+    });
+
+    afterAll(async () => { // kjører når all testing er gått gjennom
+        console.log("...Test ending");
+    });
+
+    it('Request /api/category should return request of 200!', async () => {
+        const result = await request(app)
+        .get('/api/user')
+        .send()
+
+        expect(result.status).toBe(200);
+    });
+
+    it('Request /api/category/1 should return data with name "zorg"!', async () => {
+        const result = await request(app).get('/api/user/1').send();
+
+        expect(result.status).toBe(200);
+        expect(result.body.data[0]?.username).toBe('zorg');
+    });
+});
\ No newline at end of file
diff --git a/server/src/models/post.ts b/server/src/models/post.ts
index 146bf71067332d191d975514b24837200d3d3706..1a5a4cc8f8d6a513ba2e37b2c85bacd4fca3a257 100644
--- a/server/src/models/post.ts
+++ b/server/src/models/post.ts
@@ -9,4 +9,4 @@ interface IPost {
 }
 
 // Eksporterer IPost til bruk i andre filer.
-export default IPost;
\ No newline at end of file
+export default IPost;
diff --git a/server/src/models/user.ts b/server/src/models/user.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1833069dcc78a1462b0d38214fcd633247a4acdc
--- /dev/null
+++ b/server/src/models/user.ts
@@ -0,0 +1,21 @@
+// Interface for the User object, taken from the database
+interface IUser{
+    userId?: number;
+    username: string;
+    email: string;
+    password: string;
+    create_time?: Date;
+}
+
+export default IUser;
+
+
+
+
+
+
+
+
+
+
+
diff --git a/server/src/routes/routes.ts b/server/src/routes/routes.ts
index aec88f548f1ea10d2c42f362a6d057ba586f0fdd..fa6b3f5bf0ec6d8a743bc94cddf87a2ed2a0b1f1 100644
--- a/server/src/routes/routes.ts
+++ b/server/src/routes/routes.ts
@@ -1,5 +1,6 @@
-import postController from '../controllers/postcontroller';
+import postController from '../controllers/postController';
 import categoryController from '../controllers/categoryController';
+import userController from '../controllers/userController';
 import express from 'express';
 
 const router = express.Router();
@@ -7,6 +8,6 @@ const router = express.Router();
 // Endpoints
 router.use("/post", postController);
 router.use("/category", categoryController);
+router.use("/user", userController);
 
-
-export default router;
+export default router;
\ No newline at end of file
diff --git a/server/src/services/db.ts b/server/src/services/db.ts
index 9aef9c64fe2da88562219d58228ace85c6d9c903..22a62cfd99f84676a59e6ec3d0d5d0c5912083a6 100644
--- a/server/src/services/db.ts
+++ b/server/src/services/db.ts
@@ -9,5 +9,5 @@ async function query(sql:any, params:any) {
 }
 
 export default {
-	query
+	query,
 }