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/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..a47eab9f6e83d0f91a17059de6635d26aae974e5 100644
--- a/server/src/routes/routes.ts
+++ b/server/src/routes/routes.ts
@@ -1,5 +1,6 @@
 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