diff --git a/app/api/routes.py b/app/api/routes.py
index 5fe5e7b5b58333e89e15d55b20ad83aab3b842b7..503853e56491a02df325c73afb31916631fe5157 100644
--- a/app/api/routes.py
+++ b/app/api/routes.py
@@ -26,7 +26,7 @@ def get_user_by_id(id):
 def create_user():
     try:
         #Hardcoded for now as when running upgrade on new db no users exist yet, will change at some point
-        result = User.create_user('ethan_root', 'ethan2.clay@live.uwe.ac.uk', 'password1234', 1)
+        result = User.create_user('ethan_root', 'ethan2.clay@live.uwe.ac.uk', 'password1234', 2) # Role ID 2 is for admins
 
         if result is None:
             return jsonify({'error': 'User not found'}), 404
diff --git a/app/auth/routes.py b/app/auth/routes.py
index fa6a1b6fe6d153458d2e8f2c0f8ebf8b77ca2b53..e841d6e899da7ad7796af0ddb8a7a624593b0854 100644
--- a/app/auth/routes.py
+++ b/app/auth/routes.py
@@ -1,5 +1,5 @@
 #https://www.digitalocean.com/community/tutorials/how-to-add-authentication-to-your-app-with-flask-login#step-1-installing-packages
-from flask import Blueprint, render_template, redirect, url_for, request
+from flask import Blueprint, render_template, redirect, url_for, request, flash
 from app.auth import bp
 from werkzeug.security import generate_password_hash, check_password_hash
 from app.models import User
@@ -21,7 +21,7 @@ def signup_post():
     if user:
         return redirect(url_for('profile.signup'))
 
-    new_user = User(username=username, email=email, password=generate_password_hash(password, method='pbkdf2:sha256'), role_id=2)  # Assuming role_id is required and you have a default value or retrieve it from elsewhere
+    new_user = User.create_user(username=username, email=email, password=password)
 
     db.session.add(new_user)
     db.session.commit()
@@ -41,4 +41,4 @@ def login_post():
         return redirect(url_for('profile.login'))
 
     login_user(user, remember=remember)
-    return redirect(url_for('main.profile'))
\ No newline at end of file
+    return redirect(url_for('profile.index'))
\ No newline at end of file
diff --git a/app/models/user.py b/app/models/user.py
index 8431368b820cd886881aa2a4a8afd53fbe7b18e6..dcc99b3c7ee8e9a4e1a30e9708f35af1ee4d6b66 100644
--- a/app/models/user.py
+++ b/app/models/user.py
@@ -1,5 +1,6 @@
 from flask import request, jsonify
 from flask_login import UserMixin
+from werkzeug.security import generate_password_hash, check_password_hash
 from app import db
 
 class User(UserMixin, db.Model):
@@ -14,8 +15,9 @@ class User(UserMixin, db.Model):
     token_expiry = db.Column(db.DateTime(), nullable=True)
 
     @classmethod
-    def create_user(cls, username, email, password, role_id):
-        new_user = cls(username=username, email=email, password=password, role_id=role_id)
+    def create_user(cls, username, email, password, role_id = 1): # Role ID 1 is default for standard users
+        hashed_password = generate_password_hash(password, method='pbkdf2:sha256') 
+        new_user = cls(username=username, email=email, password=hashed_password, role_id=role_id)
         db.session.add(new_user)
         db.session.commit()
         
diff --git a/app/profile/routes.py b/app/profile/routes.py
index f827e4e877ca8635dca73d3f2c1cdd3aba47426f..ebfcbf45402ca733299d133f30730eb38344de00 100644
--- a/app/profile/routes.py
+++ b/app/profile/routes.py
@@ -13,7 +13,7 @@ def index():
 
 @bp.route('/login')
 def login():
-    return 'Login'
+    return render_template('profile/login.html')
 
 @bp.route('/signup', methods=['POST'])
 def signup_post():
@@ -37,4 +37,4 @@ def signup():
 
 @bp.route('/logout')
 def logout():
-    return 'Logout'
\ No newline at end of file
+    return 'Logout'