From 52273af1d2327afce0ed6fcaa7ceb8e8274c0bc6 Mon Sep 17 00:00:00 2001
From: MCAyd <ma04274@surrey.ac.uk>
Date: Wed, 19 Apr 2023 00:40:01 +0100
Subject: [PATCH] new updates, dbs are recreated, user pp and post image can be
 uploaded

---
 frontend/.env                                 |   2 +-
 frontend/application/__init__.py              |   2 +
 .../application/frontend/api/PostClient.py    |   2 +-
 .../application/frontend/api/UserClient.py    |  30 ++-
 frontend/application/frontend/forms.py        |  28 ++-
 frontend/application/frontend/views.py        | 186 +++++++++++++++---
 .../static/images/722d7684936cf20d.jpeg       | Bin 0 -> 5885 bytes
 .../static/images/users/4a52b61da594027f.jpg  | Bin 0 -> 5385 bytes
 .../static/images/users/a7674577287ec3b2.jpg  | Bin 0 -> 5385 bytes
 .../static/images/users/defaultpp.png         | Bin 0 -> 1414 bytes
 .../static/images/users/e1f20076328bbebd.jpeg | Bin 0 -> 9514 bytes
 .../static/images/users/eda01672470e1477.png  | Bin 0 -> 39669 bytes
 .../application/templates/auth/signup.html    |   4 +-
 .../templates/forum/create_post.html          |   9 +-
 .../application/templates/forum/index.html    |  32 +--
 .../application/templates/forum/post.html     |  55 +++---
 .../application/templates/forum/profile.html  |  66 +++++++
 .../application/templates/forum/user.html     |  28 +++
 frontend/application/templates/sidebar.html   |   7 +-
 post-service/application/models.py            |   4 +-
 post-service/application/post_api/routes.py   |   2 +
 post-service/instance/posts-service.db        | Bin 16384 -> 16384 bytes
 user-service/application/models.py            |   6 +-
 user-service/application/user_api/routes.py   |  49 +++++
 user-service/instance/users-service.db        | Bin 36864 -> 16384 bytes
 25 files changed, 415 insertions(+), 97 deletions(-)
 create mode 100644 frontend/application/static/images/722d7684936cf20d.jpeg
 create mode 100644 frontend/application/static/images/users/4a52b61da594027f.jpg
 create mode 100644 frontend/application/static/images/users/a7674577287ec3b2.jpg
 create mode 100644 frontend/application/static/images/users/defaultpp.png
 create mode 100644 frontend/application/static/images/users/e1f20076328bbebd.jpeg
 create mode 100644 frontend/application/static/images/users/eda01672470e1477.png
 create mode 100644 frontend/application/templates/forum/profile.html
 create mode 100644 frontend/application/templates/forum/user.html

diff --git a/frontend/.env b/frontend/.env
index f752464..10e8a83 100644
--- a/frontend/.env
+++ b/frontend/.env
@@ -1 +1 @@
-CONFIGURATION_SETUP="config.ProductionConfig"
\ No newline at end of file
+CONFIGURATION_SETUP="config.DevelopmentConfig"
diff --git a/frontend/application/__init__.py b/frontend/application/__init__.py
index a84f862..6285350 100644
--- a/frontend/application/__init__.py
+++ b/frontend/application/__init__.py
@@ -6,6 +6,7 @@ from flask_login import LoginManager
 from flask_ckeditor import CKEditor
 
 login_manager = LoginManager()
+UPLOAD_FOLDER = os.path.join('static', 'images')
 app = None
 
 def create_app():
@@ -16,6 +17,7 @@ def create_app():
         return app
     
     app = Flask(__name__)
+    app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
 
     # Load environment variables 
     load_dotenv()
diff --git a/frontend/application/frontend/api/PostClient.py b/frontend/application/frontend/api/PostClient.py
index 6d95e67..1a7ec0d 100644
--- a/frontend/application/frontend/api/PostClient.py
+++ b/frontend/application/frontend/api/PostClient.py
@@ -44,7 +44,7 @@ class PostClient:
     def create_post(form):
 
         payload = {'title':form.title.data, 'category':form.category.data,
-                        'content':form.content.data, 'user_api':session['user_api_key']}
+                        'content':form.content.data, 'image':form.image_url, 'user_api':session['user_api_key']}
 
         url = 'http://' + PostClient.post_service + '/api/new-post'
         response = requests.request(method="POST", url=url, data=payload)
diff --git a/frontend/application/frontend/api/UserClient.py b/frontend/application/frontend/api/UserClient.py
index 09bfd18..b0cf86c 100644
--- a/frontend/application/frontend/api/UserClient.py
+++ b/frontend/application/frontend/api/UserClient.py
@@ -18,6 +18,15 @@ class UserClient:
 			return False
 		user = response.json()
 		return user
+
+	@staticmethod
+	def get_otheruser(user_id):
+		url = 'http://' + UserClient.user_service + '/api/user/' + str(user_id)
+		response = requests.request("GET", url=url)
+		if response.status_code == 404:
+			return None
+		user = response.json()
+		return user
 		
 	@staticmethod
 	def does_exist(email):
@@ -35,7 +44,8 @@ class UserClient:
 	        'last_name': form.last_name.data,
 	        'phone_number': form.phone_number.data,
 	        'uni_number': form.uni_number.data,
-	        'user_role': form.user_role.data
+	        'user_role': form.user_role.data,
+	        'image_url': form.image_url
 	    }
 		url = 'http://' + UserClient.user_service +'/api/user/create'
 		response = requests.request("POST", url=url, data=payload)
@@ -44,6 +54,24 @@ class UserClient:
 			user = response.json()
 		return user
 
+	@staticmethod
+	def post_user_update(form):
+		user = False
+		payload = {
+			'user_id':session['user']['id'],
+			'image_url': form.image_url,
+	        'first_name': form.first_name.data,
+	        'last_name': form.last_name.data,
+	        'phone_number': form.phone_number.data,
+	        'user_role': form.user_role.data,   
+	    }	
+		url = 'http://' + UserClient.user_service +'/api/user/update'
+		response = requests.request("POST", url=url, data=payload)
+
+		if response:
+			user = response.json()
+		return user
+
 	@staticmethod
 	def post_login(form):
 		user = False
diff --git a/frontend/application/frontend/forms.py b/frontend/application/frontend/forms.py
index b59b5b7..83f6f4e 100644
--- a/frontend/application/frontend/forms.py
+++ b/frontend/application/frontend/forms.py
@@ -1,11 +1,12 @@
 # application/frontend/forms.py
 from flask_wtf import FlaskForm
-from flask_wtf.file import FileField, FileAllowed
+from flask_wtf.file import FileField, FileAllowed, FileRequired
 from flask_login import current_user
 from wtforms import (StringField, PasswordField,
                      SubmitField, SelectField)
+from flask_wtf.file import FileField, FileAllowed
 from wtforms.validators import (InputRequired, Email, EqualTo,
-                                ValidationError, Length)
+                                ValidationError, Length, Optional)
 from flask_ckeditor import CKEditorField
 
 class CreatePostForm(FlaskForm):
@@ -24,18 +25,24 @@ class CreatePostForm(FlaskForm):
                             ])
     content = CKEditorField('Content', validators=[
                             InputRequired(), Length(min=20)])
-    submit = SubmitField('CREATE POST')
+    image = FileField('Upload an image')
+    submit = SubmitField('CREATE POST', validators=[
+                         FileAllowed(['jpg', 'jpeg', 'png'])])
 
 class CommentForm(FlaskForm):
     '''Comment post form'''
     content = CKEditorField('Comment', validators=[InputRequired()])
     submit = SubmitField('SUBMIT')
 
+class SearchForm(FlaskForm):
+    keywords = StringField('Type keywords', validators=[InputRequired()])
+    submit = SubmitField('Search')
+
 class RegistrationForm(FlaskForm):
     first_name = StringField('First name', validators=[InputRequired()])
     last_name = StringField('Last name', validators=[InputRequired()])
     email = StringField('Email address', validators=[InputRequired(), Email()])
-    phone_number = StringField('Phone Number', validators=[InputRequired()])
+    phone_number = StringField('Phone Number')
     uni_number = StringField('University Number')
     user_role = SelectField('Role', choices=[
                             ('staff', 'Staff'),
@@ -52,4 +59,15 @@ class LoginForm(FlaskForm):
     '''Login form for registered users'''
     email = StringField('Email', validators=[InputRequired(), Email()])
     password = PasswordField('Password', validators=[InputRequired()])
-    submit = SubmitField('LOGIN')
\ No newline at end of file
+    submit = SubmitField('LOGIN')
+
+class AccountUpdateForm(FlaskForm):
+    image = FileField('Upload an image')
+    first_name = StringField('First name')
+    last_name = StringField('Last name')
+    phone_number = StringField('Phone Number')
+    user_role = SelectField('Role', choices=[
+                            ('graduate', 'Graduate')
+                            ],validators = [Optional()])
+    submit = SubmitField('Update',validators=[
+                         FileAllowed(['jpg', 'jpeg', 'png'])])
\ No newline at end of file
diff --git a/frontend/application/frontend/views.py b/frontend/application/frontend/views.py
index e2da31f..b7466bd 100644
--- a/frontend/application/frontend/views.py
+++ b/frontend/application/frontend/views.py
@@ -8,19 +8,25 @@ from .api.UserClient import UserClient
 from .api.PostClient import PostClient
 from password_strength import PasswordPolicy
 from password_strength import PasswordStats
-from flask import render_template, session, redirect, url_for, flash, request, abort
+from flask import render_template, session, redirect, url_for, flash, request, abort, current_app
 from flask_login import login_user, logout_user, login_required, current_user
+import secrets
+from PIL import Image
+from flask import send_file
+from os import environ, path
 
 @login_manager.user_loader
 def load_user(user_id):
     return None
 
+
 policy = PasswordPolicy.from_names(
     length=8,
     uppercase=1, 
     numbers=1, 
     strength=0.4)
 
+
 @frontend_blueprint.route('/signup', methods=['GET', 'POST'])
 def sign_up():
     if len(session)>=4:
@@ -53,16 +59,20 @@ def sign_up():
             # if phone_number, uni_number
             else:
                 # Attempt to create new user
+                form.image_url = 'defaultpp.png'
                 user = UserClient.post_user_create(form)
                 if user:
                     flash('Thanks for registering, login to access home page', 'success')
                     return redirect(url_for('frontend.login_route'))
-
+                else:
+                    flash('Error found', 'error')
+                    return render_template('auth/signup.html', form=form)
         else:
             flash('Errors found', 'error')
 
     return render_template('auth/signup.html', form=form)
 
+
 @frontend_blueprint.route('/login', methods=['GET', 'POST'])
 def login_route():
     if len(session)>=4:
@@ -85,23 +95,28 @@ def login_route():
 
     return render_template('auth/login.html', form=form)
 
+
 @frontend_blueprint.route('/', methods=['GET'])
 def get_posts():
     if len(session)<4:
         return redirect(url_for('frontend.login_route'))
 
     categories = []
+    image_urls = []
     posts = PostClient.get_posts()
-    user = UserClient.get_user()
-    for post in posts:
-        categories.append(post['category'])
-    categories = sorted(set(categories))
 
     if posts == 404:
-        return render_template('forum/index.html')    
+        return render_template('forum/index.html') 
+
+    for post in posts:
+        categories.append(post['category'])
+        user = UserClient.get_otheruser(post['user_id'])
+        image_urls.append(user['image_url'])
+    categories = sorted(set(categories))   
 
     return render_template('forum/index.html',
-                           posts=posts, user=user, categories=categories)
+                           data=zip(posts,image_urls), categories=categories)
+
 
 @frontend_blueprint.route('/category/<category>', methods=['GET'])
 def categories(category = None):
@@ -109,26 +124,81 @@ def categories(category = None):
         return redirect(url_for('frontend.login_route'))
 
     category_posts = []
-    posts = PostClient.get_posts()
-    user = UserClient.get_user()
+    image_urls = []
+    posts = PostClient.get_posts()  
+
     for post in posts:
         if post['category'] == category:
             category_posts.append(post)
+            user = UserClient.get_otheruser(post['user_id'])
+            image_urls.append(user['image_url'])
 
     if category_posts == []:
         return redirect(url_for('frontend.get_posts'))  
 
     return render_template('forum/index.html',
-                           posts=category_posts, user=user, category=category)      
+                           data=zip(category_posts,image_urls), category=category) 
+
+
+def save_post_image(image_file):
+    random_hex = secrets.token_hex(8)
+    _, file_ext = path.splitext(image_file.filename)
+    picture_filename = random_hex + file_ext
+    picture_path = path.join(current_app.root_path,
+                             'static/images', picture_filename)
+    output_size = (200, 200)
+    pic = Image.open(image_file)
+    pic.thumbnail(output_size)
+    pic.save(picture_path)
+
+    return picture_filename 
+
+
+def save_user_image(image_file):
+    random_hex = secrets.token_hex(8)
+    _, file_ext = path.splitext(image_file.filename)
+    picture_filename = random_hex + file_ext
+    picture_path = path.join(current_app.root_path,
+                             'static/images/users', picture_filename)
+    output_size = (200, 200)
+    pic = Image.open(image_file)
+    pic.thumbnail(output_size)
+    pic.save(picture_path)
+
+    return picture_filename 
+
+@frontend_blueprint.route('/category/images/users/<image_id>' , methods=['GET'])
+@frontend_blueprint.route('/post/images/users/<image_id>' , methods=['GET'])
+@frontend_blueprint.route('/user/images/users/<image_id>' , methods=['GET'])
+@frontend_blueprint.route('/images/users/<image_id>' , methods=['GET'])
+def get_user_image(image_id):
+    picture_path = path.join(current_app.root_path,
+                             'static/images/users', image_id)
+    print(picture_path)
+    return send_file(picture_path, mimetype='image/gif')
+
+
+@frontend_blueprint.route('/post/images/<image_id>' , methods=['GET'])
+def get_post_image(image_id):
+    picture_path = path.join(current_app.root_path,
+                             'static/images', image_id)
+    print(picture_path)
+    return send_file(picture_path, mimetype='image/gif')
+
 
 @frontend_blueprint.route('/post/new', methods=['GET','POST'])
 def create_post():
     if len(session)<4:
         return redirect(url_for('frontend.login_route'))
-    user = UserClient.get_user()
-    form = forms.CreatePostForm(request.form)
+    form = forms.CreatePostForm()
     if request.method == "POST":
         if form.validate_on_submit():
+            if form.image.data:
+                post_image = save_post_image(form.image.data)
+                form.image_url = post_image
+            else:
+                form.image_url = ''
+
             post = PostClient.create_post(form)
             if post:
                 flash('Post created successfully', 'success')
@@ -141,21 +211,28 @@ def create_post():
         'form': form,
         'post': None
         }
-    return render_template('forum/create_post.html',user=user, **content)
+    return render_template('forum/create_post.html', **content)
 
 
 @frontend_blueprint.route('/post/<int:post_id>', methods=['GET','POST'])
 def display_post(post_id):
     if len(session)<4:
         return redirect(url_for('frontend.login_route'))
-
+    user_id = session['user']['id']
     response = PostClient.get_post(post_id)
 
     if response == 404:
         abort(404)
 
     post = response[0]
+    post_owner = UserClient.get_otheruser(post['user_id'])
+
     comments = response[1:]
+    comment_owners_images = []
+    for comment in comments:
+        comment_owner = UserClient.get_otheruser(comment['user_id'])
+        comment_owners_images.append(comment_owner['image_url'])
+
     form = forms.CommentForm(request.form)
 
     if request.method == "POST":
@@ -170,8 +247,10 @@ def display_post(post_id):
 
     content = {
         'post': post,
+        'owner_image': post_owner['image_url'],
         'form': form,
-        'comments': comments
+        'current_user_id':user_id,
+        'comments': zip(comments, comment_owners_images)
         }
 
     return render_template('forum/post.html', **content)
@@ -188,10 +267,9 @@ def delete_comment(post_id,comment_id):
         abort(404)
 
     comment_user_id = comment[0]['user_id']
-    user_response = UserClient.get_user()
-    user = user_response['result']
+    user_id = session['user']['id']
 
-    if comment_user_id != int(user['id']):
+    if comment_user_id != user_id:
         abort(403)
 
     delete_comment = PostClient.delete_comment(post_id, comment_id)
@@ -210,15 +288,14 @@ def delete_post(post_id):
         return redirect(url_for('frontend.login_route'))
 
     post = PostClient.get_post(post_id)
-    user_response = UserClient.get_user()
-    user = user_response['result']
+    user_id = session['user']['id']
 
     if post == 404:
         abort(404)
 
     post_user_id = post[0]['user_id']
 
-    if post_user_id != int(user['id']):
+    if post_user_id != user_id:
         abort(403)
 
     delete_post = PostClient.delete_post(post_id)
@@ -235,4 +312,67 @@ def logout():
         return redirect(url_for('frontend.login_route'))
     UserClient.post_logout()
     session.clear()
-    return redirect(url_for('frontend.get_posts'))
\ No newline at end of file
+    return redirect(url_for('frontend.get_posts'))
+    
+
+@frontend_blueprint.route('/user/<int:user_id>', methods=['GET'])
+def display_user(user_id):
+    if len(session)<4:
+        return redirect(url_for('frontend.login_route'))
+
+    response = UserClient.get_otheruser(user_id)
+
+    if response is None:
+        flash('Profile is not detected', 'fail')
+        return redirect(url_for('frontend.get_posts'))
+
+    if user_id == int(session['user']['id']):
+        return redirect(url_for('frontend.display_currentuser'))
+
+    user_posts = []
+    posts = PostClient.get_posts()
+    for post in posts:
+        if post['user_id'] == int(response['id']):
+            user_posts.append(post)
+
+    content = {
+    'name': response['full_name'],
+    'email': response['email'],
+    'role': response['user_role'],
+    'image': response['image_url']
+    }
+
+    return render_template('forum/user.html', **content, posts=user_posts)
+
+
+@frontend_blueprint.route('/user/profile', methods=['GET','POST'])
+def display_currentuser():
+    if len(session)<4:
+        return redirect(url_for('frontend.login_route'))
+
+    user_posts = []
+    posts = PostClient.get_posts()
+    for post in posts:
+        if post['user_id'] == session['user']['id']:
+            user_posts.append(post)
+
+    form = forms.AccountUpdateForm()
+    if request.method == "POST":
+        if form.validate_on_submit():
+            if form.image.data:
+                post_image = save_user_image(form.image.data)
+                form.image_url = post_image
+            else:
+                form.image_url = 'defaultpp.png'
+
+            user = UserClient.post_user_update(form)
+            if user:
+                flash('Account information updated', 'success')
+                updated_user=UserClient.get_otheruser(session['user']['id'])
+                session['user'] = updated_user
+                return redirect(url_for('frontend.display_currentuser'))
+        else:
+            flash('Account update failed', 'fail')
+            return redirect(url_for('frontend.display_currentuser'))
+
+    return render_template('forum/profile.html', user=session['user'], posts=user_posts, form=form)
\ No newline at end of file
diff --git a/frontend/application/static/images/722d7684936cf20d.jpeg b/frontend/application/static/images/722d7684936cf20d.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..a6289b8b0e59ca11c677765248e1e11ec2096543
GIT binary patch
literal 5885
zcmbW5cQl+`x4@q<7+oYI2r*ie=)J~}1VQv5h@K#%Y0-_6Ac%=1N+e1Mq7Gt|7|}~4
zq6|h$7&VCA#uzhq-uJ!h`@VJmy7!)E?Pr~}_9^?f&w0*1&!&u1W`R>i`iA-d2m}Bi
z>H|=wfGYq4Jw1e;jsXIJFfuYQu|Qc_n3-94PM=|io<9fUKYxyoPe4RQOh8CVn2%3f
zRYFQmUP(y_CZ>K#O+iaWQAy#iK|qX*j4aG7+^nqJ3W9us3jgOqX$3eKfL@>+3=#rp
zI6z<y5Tz4<QSGDy{at|nE+85(Ege0Cfsu)s+5mkDpaFrwG_+tkI$Bz4>j<hIpyi-D
zEhw)`f5yTUBIFBIh)#XaAbh#Hjni^yOGMGlFNTrnEEhM=xeKCV;u05?lvPyK)HSYL
z)zde)W@uz}!`jC7rk%a}?K>WxUU$9y0|Flh1&4&jK6x4!pYSa4<*V0e=^2@CvhoW)
z6c!bKEGez|REw^wZ)p77-qG3B-P8NEZx}l=I))pcn8eS`FDx!C|6W<$-r3#TKR6^D
z5&z->0pNeIsPBKk{s$Kam5YX!7EBBIiwi^(L=`XxEuEk|{b^kbh^y}zA%$oL=;hS+
z)oqNzik4fPZhk{dXGN6o7q<UG`<v{42Nv`HBKsHEzquv>7BGmqcwi0y4s0>efwMNr
zrwFES&fsC?&%EXLu<K_k6`N@9Tm3Ox$pXf=AZ=lrXB_lOR(B1HS2nKbN5jJuh{-2I
z*c_jUTGSJ5CaeW8l;0Rg0n#(B-xgcdh)kQx$4A8L(3zxYSb;M$TAiS8cwik_t~T5h
z0C~qrJI|x>x%(_4Hc))(&)BQG!}IZVujhB};fh_X=!eH)eVNGDB%iH^_FLtrohIQ2
zDevCZroLy39nHuAHc4d(Sd4nb8grA$FzP|Z@zCY(ExAU=Pv=?Kd{d6fr&v|S+D9wO
zXRitD@^pI1<)w>k?~A_T*-k0IX9pQtPR6B%-OIaO`=Sbn@J;M%Lw){5>($3eXJ)Ri
zOOou>77G{0KG>V;f2db)Z2a4zFrB+wI1}`$NADg@@GQAD>gY$JWCP*OtjBgylaQH2
zycyaY$I=q=snz;WYj=I75bzzVQw_p~sHA@~lRXqlt|mRbXFQ99wt=$D*jFXFS0jIn
z?vEwm*A;bZj2#vFc)f7R`VG<>W|ooYl0_EZHVSa*H+YT$uoJF0Y|B&z^lS9#XT!%b
z=xk&U2fPm`09)ihmLtYTv?W4%0dt14ac7=?Vl@&IAvw0!uQJv-{nkr3VL;JX!XjqF
z)cDNwSRB9u&sKs6yKjAK`yAZK&tIeE^2X}B7@63wy@s!k-E@=h$4{MVjxnf0c0KZ`
zpu09ZJU@=*n2Qu6fD5NPM9BONVUo#rT+)&{d$5-bRwY}}6<iiu<Pz=d5{FtYc|L`l
zC!w*^F#F@|j7!f$47w=*gFyws$i$7IXR3B+=>a%BN!ahz`bY$O1z6iDKiR?(<g7#f
zVe?z*B=mRm5|0~FdtCGj;=Ep1&!3fmFQ(1jyvyG$*AI^3ymUf~JEb2Sc92;cTCh8x
zHm`lp9C%&+$bkZ&Hk~+RlLL<?GJRBIwHB`Ho=C3LRNtDaRn&i}ziK@+!s!wk!)|eF
zp@o&ir84)6x9X@-(;T&<Y{Rjew)q@m<)zv-cgaG%d#3hPZeb{d>iB2;f@2t~llZcq
z%KMnDPajg~32*d6Q}R;O4^Wpg@T$=lxV2$VuWi(*QGkh33J{NB#-kX28v7Tle5313
zsxI`DnF^h~y(Mvz?K#rkZT{gLB3oFkUqOtHeS`vNxQht5Rbgy&w(3ev;qyNpo&aOt
zdVxy+F05yVM&1DFvoQt8I|mR313A|zz^4xOI-kU_a)W*EZKi{PiK7Fv@*MbL2D#rd
zipc33ZCX0icgg$F+()`AIR2tWR6@>$#;x2KS+tMZ=!W?R--kTbo-XebHj|e*2Ss9~
z$=k3B1!DJr4R)!zC0a(>)3K)Wgxeg_=Q(GPjAm|I3Qj)(dkRTtRUZL#cXj7lPR(+S
z?Vr^~JsMrFBJpoQJ>lcgM?d&I)lR(sAXv0Gc=`yB2Ppu?vE@yniyAC0QV}PsWk>(Y
zH%NN1wz{de=6tslOWc5Kj`~{Geuei>nLVE=JNkw6Usnb87EM%*whof=grAFDN7u}B
zWC}AmtcGUAJ2#!3WGnW4L2FY}=Z{@f>I^p&f_hkeh42u4uNN-tgbailrAE!-3Q4DN
zR@b)YrVPnt<_WFpWcgj$C0*F_kiwf)n73vv^_Y6USGq#I$r>?iUf}hGcM`OG1%AaN
z)~VWhep#k@pSz#=luoXD$;{bZj%|Ob4jc$9SdTWQ%J1GL$}N4=-+q0=!_|&{_1^8y
zkdKR);CY!v3*f7#0B~s~x<tBr(8Maq+_9Y5eMz}BIAabOAE0)dF+3}67IvYzVB;1A
zKnu*nu4l~!3_MraahP}b)Tnx4O2M9UqW0wtIyGT%O0inWJ<o>zlKkY&O4}}tPUmrZ
zWVV*?m4$1C)3dirfJjlyyg8w#s1#OpH{(?=8+1UZyX6*3ZaZeJlV5sN>)I*~3p&Rl
zA}=$J+u8_T^=jY_4+T#NHJi;=7IS8A6nfug_LbAWDn=KxthV3n(^u-_@TNk>J%{m}
zg!zW8RSc_ub~k!7btHT=*qZ^qSQx%sKyuDuC`huwcKuLOY(3^axv_BO$o6uiJR!oh
zZ(=oNW_N%A?l?1?-FooNr%f~>NOiZYL~hE71K;voC4*~cYHjeX&*K-FGH%~Oyv>+q
z*?dp%Qy(w+jMO$i9<Y95T;x3ERHV^5o7))(Su>H-D9p-UcB|?dX}}v2%?}ky7vp9s
z<atluijo|NlwB(;4A&ZQJ5ATnEHtXab39!|0lt7pCIP>(#-h3lLBhqu7|6WGXI!L6
zl77ndj^d(Q;4$0976E8vK<0pSKa_gHn3^@4tT`@6k-5Cd%CFWh&bSQ^RUKMNXf|JF
zpM&S+vF*;XKTA4kYCn|DsaKgwd8EdMIr#0nk8*9QYwKOroUd>vnBg<xNaEjoU2ot1
z0w%*{9Q?`Pd@^{uvIr0UD4c6`<B3(A2&O81(#7t)ksJg<>y9)!a_-E5Y&%vqg?I$4
zn-aw@+(~pnUaX-2jF6Q?ViEiFG*P0AD@b(6I*nQIQi`}sxC1<1`J1PFe}QuWTlWM7
zXn#-c7;X8@6-EJ~Hp!d^K?kjy%((<=>|}a0`ihYMg8eX_U|9v@q5y8*9c0&x76Kau
zz#AO!S5N?*rWq0hv4uk8N2EROe{nD1kKR(WsoOq$y9>R^9^X=}{E$fZivrAQQh=vo
z2cl)vF5mv?(ojbMYG<-#W-iZUQs<I_bQD|}MViPQQUK5lNt|jF1^BmBd&6B1nhG<#
zh&u?TqRCo#>nqifXuT*xtyflEFjm%|0yt5P4}~!XXI-^(9YibUes2E@?n|2nbv1Kj
zDL@2rtN2Q3Ew<d4?``J%g<a%u5~w{Kw$)Eg!iUK2$3Bv+oDq_Yb8~wZY!Qpq%I&mu
zvM6qJ`>ELF?U;U(8VNZTMo#JYN#rSN>6K3roZAm4F~<g}9OC8LyL;9oQ_1<VwMG=`
zfvk)}_#xY{(Xa9z5i<JVS8>5jpT`Pz-e+GpIjFKiV};>^$BElBJS6(Mbafewq_D2s
z!i4FB4SzyU@gUhP4l+<{oirt}ciedYL4I)YvqTNGHcO3I>s9^7&a9-fWaaJak4;{G
ziVDF!P$Z)STwqr35X7>zGG68|=4<z*g>F{3=%nh$f^Gz$qzQ}#7jmPQMs(<Xj`Nw_
zvrBfObFZhvpNHZF^~1!!7CrIst}o(P(4W!t`>qkaV!pyfqkG}gnOw{hGCCtjB7Mn_
zeOviLbBC^ik;eN0+~h~ruWstZ8&5*ExHC_e%gJdVa<@xvN>!IX>#OS39(h5k;aD4c
z!M7$U{2GBNrnSVP9?Uj0g-DMpyh<jfwtd7&4`;G>>p50od_vBuGkU#!5AUD=W2Jph
zQtoy!nuP+tBh*OV73+iOCuvItcrM~d-G<Xo_R_gefv}uEMDf-<Cf3FeGJos_{7sbA
zuOvQ=h632+y^8Z16QtrymW}q5FdM5&567pc`rXdbFeD${|I_MES^<(-Ueff4_~zQb
zd1v3c+j5nU-D=#jheHcl;pt;59Pl`{{yTL8jkK2dL|mx-<?8<R8@v4q^uv%;La>XR
zf%p8O|JdjAXYU`xX>aF1&;nYxd4s3|T!6ar6z@H68|E+0(ji#_>H{U<)b&(n#Rvd}
z5z`Cos9bche!VAfKn~nCND4?BBsrGdO+s5vE)D^I8hc@>oKl{{Gjw8xkz6a$8a+zY
zRfp4v?xyw2S2&Z)HRfU2!SR3gE6c`LKhq+Qd&eDh7*~rIU9_Ko2{`mGWbK5Sb8~X)
z#>E#YZl;lFX32<)+t=qlqzry<)8SESRa&<(zIj#Q{Y&}7Yg)*Mg|<H5#y&SZL@PS<
zPNZClzV3crL0t&ND&snV(72s$!o`|QWYV!nJXH!62Lfm+^-dLkQ1(`<o{Tz|%H)d#
z=cKuap*7SFtKsbu(Qcd*H0<6bL8nw{iHVIl)3Z1HiZc~75`jFoc~08Y#4mtW5GQX>
z&Il+~B#`C)B~<49g`F%j%;gxyec{5pUpaMLzJ36&D?eK=7f$p)cw5MQ*NB$I&$o4t
zFOoA&*hHycD%oy)Aqz+T{`z?zG<HU540~H|y3GqLuUiqpZ<6sAV!&M*X~S;RT-a{%
zYfH`ICBn$%zR4haB;q1rZSF~l@3v~^X+iE|3n$H40Ff5qU*c`Pa-gb;V=H6*;9=mQ
z#>ax|41NA5E4?r<LX|l6%-;6vfRz7<x6aTO@|ld5<eY<}{fvKzbi9u5lHhC!N%9XX
zuWjwvUYVn5yLIq`QwqC8*kw&zXVg2K&n!G4D<ejhDNoft;6q4V<v7e5-ahjqi)a5v
z`tRYhmeAZ;_;9Mg#fff7t`2SGp>R8|nw5-aB2nNA<(YQEVxwUv`aS`s*|Eq&`{>iL
zqH^4G1zu*C43%>HC_tq1a7Mq=fGA=BEqBgF>G($hneLj5i_??p1J3U<jUKD#ms|yZ
zY-sTB;VbOU@?`h&kAQ}i3EgLfbNx+JcXHn998_8|RxT$P9^gPVI^)fXJ>G9sb9X6#
z?8#0GUgx~*)B^dCtRbQOQ}!dN>|Osdi2{730O2TtxyfJkZ~xRGh9`LwyaiSptXfW;
zGr_0e8jGJoC;)s1F(XNajt45$DRhPTZ5+p8Ya^z^*l!I&Y?pKe=k!Ry#SDIaat77?
ze#;Iu!t_Bs!{`7LBgxK2j^0JVKvT%AkMOZ5<xxjSUnkSO#2<2<S!U{p7TFatG$%CR
z`-c->9gc{%=dW3;dXKmm@Z3;yDkPq<UTjMIC6;BGs$Z~_ZrkcyqCEdgn}DM|)n7z#
zdZ_)_5rwE<G$StO6rWV)ypBT7XCOIU_@USj-&91JQyro-4NlDPPAoUGUe1L)@C+$V
zTTJ`06r?U?R<dbf>E($<Fo$#DvmNjoZ-PF0*>I_{RXW)TvV0Fp{Yruxt-r#z#3WFF
zRA=f1x`n3t3oDXPr(tl6q5$vFp)Ae;gAjRYJUeVV82(Td>~HpbWI^F76xnIhmM9?S
zZe=U_`{E}novUt1<Pc=v+eN*Twxb(GnRgTNh-^ukZ$z;b-|9u4tVXQB@#hBNzj@hD
zc9CngyE;lB8ZV-~P`-n>H8%imC9TX%gd#{=&b<`ixk;9y&M69TXB;s=M?w;YPBL66
zfEL#deBR0<d5{)jj72&GQWYbogAsaJmv?UJ4@9YQj6?>8DS1RGw%~aO0SfTq9uEbe
z#!-|_Ud<=;6;5=ydAIsxQgqf^rTnNfeM!f$JH-t7)L80`V6qPcJXf`OhXV5otgzCX
zG$*5Pf<SxcFQQ12&b0IJt)!LQ!&w{Rx%$b%<oPN5K&+fEK0=Cv0+`NyaVO+@`V@s<
z9+mndkT^N1VxD@n$vV<v&~`k&;6!o(mXy0=6^J~<Q2<>iXb;xbawPgM@6tL4;BrZP
z6yT+M0R?EF07PEfJiS8`8Xi?$>#XwrL2HkqI3+B*eMk|1ZKq12cphE9s8@cJP}Y(r
zLiYR5<L>bWo~6R&hJxfhD1ulbIc=z!l%;5>C;wFZLm?C(2C8K1oW5{t{l;+R;}Unt
z9ONGAMWhVktH~IA#`%QS7S~f?+Y9H?*A`oYZKB9A;%?e81Qi34<ayW$)#AbaP!>nl
zkoq>B&K8zhGGg@W#mMW3?q*S$J>ctSrt(pb2Qg*JO7caSq1b-8{UX6y3q1h(pOXLb
zwK;fYWHJ!AmgbMXVLIwlUBUzUJ-WlywRt2#>^WYc{<Sd?_dhF#BevZh)`pwn7|ff*
zI8GkrdBh2iQvlEYt7fxJWkU38K6T3zQSkXA+p6wIK8w`b-7i5C+3qtdpVV%m8KQ3G
z9(grh1P<xSRytjy{I4@!;IxiczMCMd?AQfdy&GSlMRlXgUoNEiPkC)=nFvIvS>0V#
z&tr7wLsgfF;3Ls2E>>?ET9u+wY?z+DEe<8*cGdS-Zbza*Qjgafx!tk8;JvO0*KOub
zLwpOpx9Y^nVY+()|Hd@?Hc4_mZu+~S`eDDQLWHWt=iz<cuqkzW$pk(Pjd!OEhQBmz
zsU}Nf9Ptgx3=?O==^CCoh^lMG?ypMDXZ_kLPEwX-^kGK03NE<a%p}#I-cx{cGLT7Q
zF}~rmoLvOtIku#^akGgBDz_@ZZGs(anxQF}V}D2USHhKd6W){*z4`Kd4+tvk65U?W
zrvTo-EsI1G^2kFd&`<z<+r`^c2*`+2mHOK{%sNGz(55cH(2SNTHiG{S;BeZlAS9-8
zzO_`<{%Lbs(}1tmqt17qdRsvRTx_@z0TXB(5`bjyTYJ#?p<XvZ<`UO9kr?5{le?YU
z192SFPrY*yo%ZIN#=B=Cmk=PQ8#i+>LodUIEgR^>XNU9zq;zE`sxMyqCZ>5#U8M%*
zl(YZyE}VyCS9ITQIgTukTNe-FAa4l_=>d<=B5I)`6rjjUp%|kWM|QE9hMm_^ya<*G
zdhyQFHU2UCtXF<^YfUb%mgqA5Dm8HyIUa2*OhDtsE>nQXY6)0--)t`FaiVwwgd~k(
zq;6v;*fDj(wCA*NV#GUw4!Wv()HJCXi$Smaq$t_0hfM0!<D#FMlEA>IX^cYZ)xHdW
zd7M0nCQ<_i$pmWgi28{_!zH<Sa8f@IpKnrtKeass6#l9jd7}Q_p|wBq@7Y)$COMsP
zLZI>5ZQK;V=q{lduY*_+t(aMSMxC5$4tHpLPxk2v-ajg;8TTSrTsRO;28*{U4ttvY
z0&iDi?^Wp1KJXi^A_l-Rl`QmHXZHs<y?+V6HY}a_`sm%9^tiQ_e|;VW*xxHxhe{=v
V_O+f?Xl5U#4$P9DC;_5O{1>83U^M^$

literal 0
HcmV?d00001

diff --git a/frontend/application/static/images/users/4a52b61da594027f.jpg b/frontend/application/static/images/users/4a52b61da594027f.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d918cbbe80beb5f3509787ff252b91a3e103c1d0
GIT binary patch
literal 5385
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
bL|hP)b_LyZ%owA1?9nTDJ@TgOldt~^kx#r&

literal 0
HcmV?d00001

diff --git a/frontend/application/static/images/users/a7674577287ec3b2.jpg b/frontend/application/static/images/users/a7674577287ec3b2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d918cbbe80beb5f3509787ff252b91a3e103c1d0
GIT binary patch
literal 5385
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
bL|hP)b_LyZ%owA1?9nTDJ@TgOldt~^kx#r&

literal 0
HcmV?d00001

diff --git a/frontend/application/static/images/users/defaultpp.png b/frontend/application/static/images/users/defaultpp.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4dfadc67da69aa2a3c75c5235142329e18c5ac9
GIT binary patch
literal 1414
zcmV;11$p|3P)<h;3K|Lk000e1NJLTq007|t007|#0{{R332h=s0000pP)t-s<mTtD
zw706UwCCySsjsui&ClcI=HKDs+1%Z*wz<K^$j#8w#>&jPzroYi*sQX)yuib8OryO3
z00j<7L_t(|ob8?6dV?SgK$ZBfpzr^*Lz!DU+f^|siOsp$ZO<1-03pjVMNt$*Q4~c{
z6h%=KMNt$*Q4~c{6h%=KMNt$*`CtH2{{kw&t2NH`9@jJ#T+7tkxWVSeGkTW4c5u~I
zETJx~SIYk|jzwG6@+ASBEjD&PmZt49(T<Rnqj{zmFlMOaIzqV}oR0!I2#q7Se1~6f
z>;)=9WnYZXyRq8V(j37Z@LL>(g%P@gf?m;zQamz3SH`wV{j+ydwa5LIFg8NMSjYLv
zQLJ~?2(gOs5e$l{fB$PD=itg%rxthtoD|ISHnqb4MAX3ztn1?8mCPed$yl*M5X|#}
zZ?*x8A?T+f*C0ZV5<)*t2d;`IO8p;2o+Sf1G()EOv_=}EGc1=jFyRUE3}Rhi8Zrzb
z<}93H7(~QbIKwWTqSeBcky}kXzo*zJGBd<16#?T?JKX^#Zl0OxSOpP(ka}1dR;a}=
zz-tqQvGe`Q$Z02xUG4*%iayCSWHk|iV36`!)-(i(hF3+TNHnZc4Mn}5;ZyTzQYoio
zio3o4h0m!X);Z}0K87^qFfT4|Xs&OVTI>g)5#(g3qcjpmndbV{;`$Z;`m46fue`6n
zd&(LbLq<E`jAoC|=oEvdAaeS00Ud=QpH%8`1j&?BqWOeVeTs?5X&QdQ*R|_^A^m`_
z+|VNr(~;RA&8~mj1ik39D))iQ-}*w{==0g$-*EZcmmhG07U`z`Ou;UZ2GDNrvAebR
z1J=TZWts`#BpY7arh9N+1+g8YGZ^`lX&zlcn2M<tUQwO&<G148a4y@(cnEw#v5+8`
zLHuKG<0J@X@z1$M4ADT<MukyQe-oG@I)9}8(Z@L6y@k~o{vIyhfhSwSxVwvzxBvzK
zhFzVoicW5~FQ^9dVyup)lQ=+sfvj(z2Xbz^CpUg80QJxo4=laj(8%v9xByVO&VKiW
z{O%3ecKrpKCf)*GvvGZ2mUDa0`eNNZZ-A?+!6Q=tC=?cv+PQw{CTrUjYo~4~{b;QO
ztA?(+W!L7#l47>0bj~-0X>HfbYq~qj^_?#fyOwQ>svVq^>=Swh?{oX(*-rcm2tf0&
zXYg)KlXs49Lu{|t<<ENt@5L0h=eUxa^~U(%-7^}?t${LB<v;7|ILXPe8Lj^}w2sH*
zJoX&`etU$kx8V1V$<G%dd%49uhp|Z=XFr;E2s|8NUqf=aj?nLINRHq*z5gr+8nXQI
zkmAjszM(pPYJZY3f9H28lnV)mG1I%s<FWI4RLA#(F--u!6{mLyB6JFlXUwS!2Sk4R
z#G|179|}P84DXoYM5qWo$t%2rjC38pVMrgr0MQC3;@dnGG?zBOCeAUpP$;qzq)=og
zh<`tfogj7;(=KG5fO$_7N)B~!3!b3kDTsHcAOC$Q5?F5(sru_6fU{wQiCr4~1tZ&}
z-0<!IV=6L^V2;svfvQ0g8mFJRG1&6H;N%k<#(8w5IMtZ|{r>@wa3+XU?E+C5Pn=Cr
z_3%RGMDszKCf4Z0|C3hqUKeCU8}d)2f#^mr{A=M#WKE=L;6+000$fZ8V^^oVHx>6p
zZ7~E5(#Z8UNGTOFQR^Dqjylvtd~%ah?gJ5qlBQu)y%4jY2}CSwgsi$(A}S)=W8fzo
zKOCm$NJ`1^rKyPXiyIEFYG9Zj^9Z6i8p7<!do#8~2r7!AD2k#eilQirqA2g=3(3Y-
UQOMPnF8}}l07*qoM6N<$f+w1^H~;_u

literal 0
HcmV?d00001

diff --git a/frontend/application/static/images/users/e1f20076328bbebd.jpeg b/frontend/application/static/images/users/e1f20076328bbebd.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..26db3bcd59a30039285eee69ecc46a9225a853a0
GIT binary patch
literal 9514
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
ZAvztx*p94QO*t@1M6RbGN#Sw+e*pWh9(4c!

literal 0
HcmV?d00001

diff --git a/frontend/application/static/images/users/eda01672470e1477.png b/frontend/application/static/images/users/eda01672470e1477.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4b262436cb660d3307b02572bc56682ef663685
GIT binary patch
literal 39669
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
N002ovPDHLkV1msHBn$um

literal 0
HcmV?d00001

diff --git a/frontend/application/templates/auth/signup.html b/frontend/application/templates/auth/signup.html
index e6ce705..f1b177e 100644
--- a/frontend/application/templates/auth/signup.html
+++ b/frontend/application/templates/auth/signup.html
@@ -81,9 +81,9 @@
         <br>
         <input type="email" id="email" name="email" placeholder="Enter email" required>
         <br>
-        <input type="text" id="phone_number" name="phone_number" placeholder="Enter phone number" required>
+        <input type="text" id="phone_number" name="phone_number" placeholder="Enter phone number (Not required)">
         <br>
-        <input type="text" id="uni_number" name="uni_number" placeholder="Enter university ID number" required>
+        <input type="text" id="uni_number" name="uni_number" placeholder="Enter university ID number, for students">
         <br>
         <select id="user_role" name="user_role">
           <option value="staff">Staff</option>
diff --git a/frontend/application/templates/forum/create_post.html b/frontend/application/templates/forum/create_post.html
index dfb2dc8..7e7d7c3 100644
--- a/frontend/application/templates/forum/create_post.html
+++ b/frontend/application/templates/forum/create_post.html
@@ -22,7 +22,9 @@
 
 <div class="col-md-6 gedf-main">
   <div class="card gedf-card">
-    <form class="post__form" action="" method="POST">
+    <form action="" method="POST", enctype="multipart/form-data">
+
+      {{ form.csrf_token }}
 
       {{ displayField(form.title, 'Enter post title') }}
         <select id="category" name="category">
@@ -37,12 +39,13 @@
           <option value="other">Other</option>
         </select>
       {{ displayField(form.content, 'Type content here') }}
+      <p>Upload an image, not required.</p>
+      {{ form.image }}
+      </div>
 
       <button class="btn btn-primary" aria-label="Create" type="submit">CREATE</button>
       <a class="btn btn-danger" href="{{ url_for('frontend.get_posts') }}">CANCEL</a>
 
-      {{ form.csrf_token }}
-
     </form>      
   </div>
 </div>
diff --git a/frontend/application/templates/forum/index.html b/frontend/application/templates/forum/index.html
index 50ee35a..3438f94 100644
--- a/frontend/application/templates/forum/index.html
+++ b/frontend/application/templates/forum/index.html
@@ -9,8 +9,6 @@
 </div>
 
 
-
-
     <div class="col-md-6 gedf-main">
         <div class="card gedf-card">
             <div class="card-header">
@@ -18,9 +16,6 @@
                     <li class="nav-item">
                         <a class="nav-link active" id="posts-tab" data-toggle="tab" href="#posts" role="tab" aria-controls="posts" aria-selected="true">Start a discussion</a>
                     </li>
-                    <li class="nav-item">
-                        <a class="nav-link" id="images-tab" data-toggle="tab" role="tab" aria-controls="images" aria-selected="false" href="#images">Images</a>
-                    </li>
                 </ul>
             </div>
             <div class="card-body">
@@ -31,43 +26,24 @@
                             <a class="btn btn--link" href="{{ url_for('frontend.create_post') }}">New Post</a>
                         </div>
                     </div>
-                    <div class="tab-pane fade" id="images" role="tabpanel" aria-labelledby="images-tab">
-                        <div class="form-group">
-                            <div class="custom-file">
-                                <input type="file" class="custom-file-input" id="customFile">
-                                <label class="custom-file-label" for="customFile">Upload image</label>
-                            </div>
-                        </div>
-                        <div class="py-4"></div>
-                    </div>
                 </div>
 
             </div>
         </div>
-        {% for post in posts %}
+        {% for post,image in data %}
         <div class="card gedf-card">
           <div class="card-header">
             <div class="d-flex justify-content-between align-items-center">
               <div class="d-flex justify-content-between align-items-center">
                 <div class="mr-2">
-                  <img class="rounded-circle" width="45" src="https://picsum.photos/50/50" alt="">
+                  <img class="rounded-circle" width="45" src="images/users/{{ image }}">
                 </div>
                 <div class="ml-2">
-                  <div class="h5 m-0">@{{ post['user_name']}}</div>
-                  <div class="h7 text-muted">{{ post['user_name']}}</div>
+                  <div class="h5 m-0"><a href="{{ url_for('frontend.display_user', user_id=post.user_id) }}">{{ post['user_name'] }}</a></div>
                 </div>
               </div>
               <div>
                 <div class="dropdown">
-                  <button class="btn btn-link dropdown-toggle" type="button" id="gedf-drop1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                    <i class="fa fa-ellipsis-h"></i>
-                  </button>
-                  <div class="dropdown-menu dropdown-menu-right" aria-labelledby="gedf-drop1">
-                    <div class="h6 dropdown-header">Configuration</div>
-                    <a class="dropdown-item" href="#">Save</a>
-                    <a class="dropdown-item" href="#">Hide</a>
-                    <a class="dropdown-item" href="#">Report</a>
-                  </div>
                 </div>
               </div>
             </div>
@@ -80,7 +56,7 @@
             <p class="card-text">{{ post.content | safe }}</p>
           </div>
           <div class="card-footer">
-            <a href="#" class="card-link"><i class="fa fa-comment"></i> Comment</a>
+            <a href="{{ url_for('frontend.display_post', post_id=post.id) }}" class="card-link"><i class="fa fa-comment"></i> Comment</a>
           </div>
         </div>
         {% endfor %}
diff --git a/frontend/application/templates/forum/post.html b/frontend/application/templates/forum/post.html
index 0d12196..d3ffe4a 100644
--- a/frontend/application/templates/forum/post.html
+++ b/frontend/application/templates/forum/post.html
@@ -1,9 +1,11 @@
 {# application/templates/forum/post.html #}
 
-{% from 'macros.html' import displayField %}
+<a class="btn btn--link" href="{{ url_for('frontend.get_posts') }}">Home</a>
 
-{% block title %}Post{% endblock %}
+{% from 'macros.html' import displayField %}
 
+<br>
+<br>
 <div>
   {% with messages = get_flashed_messages(with_categories=true) %}
     {% if messages %}
@@ -23,24 +25,28 @@
     <div class="tile tile--wide">
 
       <div class="tile__content">
-
-        <div class="tile__header">
-          <h2 class="tile__title"><a href="{{ url_for('frontend.display_post', post_id=post.id) }}">{{ post['title'] }}</a></h2>
-          <p class="tile__date">{{ post['date_added'] }}</p>
-        </div>
+          <div class="tile__author">
+            <img class="rounded-circle" width="45" src="images/users/{{ owner_image }}">
+            <h2 class="tile__title"><a href="{{ url_for('frontend.display_user', user_id=post.user_id) }}">{{ post['user_name'] }}</a></h2>
+          </div>
 
         <div class="tile__text">
           <p>{{ post['content'] | safe }}</p>
         </div>
 
-        <div class="tile__footer">
+        {% if post['image_url'] != '' %}
+        <img class="post-image" src="images/{{ post['image_url'] }}">
+        {% endif %}
 
-          <div class="tile__author">
-            {{ post['user_name']}}
-          </div>
+        <div class="tile__header">
+          {{ post['title'] }}
+          <p class="tile__date">{{ post['date_added'] }}</p>
+        </div>
 
+          {% if current_user_id == post['user_id'] %}
           <div class="tile__buttons">
             <a class="tile__btn" href="{{ url_for('frontend.delete_post', post_id=post.id) }}">Delete Post</a>
+          {% endif %}
           </div>
 
         </div>
@@ -52,33 +58,30 @@
     <!-- END posts -->
 
     <!-- START comments -->
+    {% block title %} COMMENTS {% endblock %}
 
     {% if comments %}
 
-      {% for comment in comments %}
-
-        <div class="comment comment--wide">
-
-          <div class="comment__content">
+      {% for comment,image in comments %}
 
-            <div class="comment__header">
-              <h2 class="comment__title">{{ comment['title'] }}</h2>
-              <p class="tile__date">{{ comment['date_added'] }}</p>
+            <div class="comment__author">
+              <img class="rounded-circle" width="45" src="images/users/{{ image }}">
+              <p class="comment__title">{{ comment['user_name']}}</p>     
             </div>
-
+  
             <div class="comment__text">
               <p>{{ comment['content'] | safe }}</p>
             </div>
 
-            <div class="comment__footer">
-
-              <div class="comment__author">
-                <p class="comment__title">{{ comment['user_name']}}</p>
-              </div>
+            <div class="comment__header">
+              <p class="tile__date">{{ comment['date_added'] }}</p>
+            </div>
 
+            {% if current_user_id == comment['user_id'] %}
             <div class="tile__buttons">
               <a class="tile__btn" href="{{ url_for('frontend.delete_comment', post_id=post.id, comment_id=comment.id) }}">Delete Comment</a>
             </div>
+            {% endif %}
 
             </div>
 
@@ -97,8 +100,6 @@
       {{ displayField(form.content, 'Type comment here...') }}
 
       <button class="btn btn--solid post-btn" type="submit">SUBMIT</button>
-      <a class="btn btn--link" href="{{ url_for('frontend.get_posts') }}">HOME</a>
-
     </form>
 
     {{ ckeditor.load(pkg_type="basic") }}
diff --git a/frontend/application/templates/forum/profile.html b/frontend/application/templates/forum/profile.html
new file mode 100644
index 0000000..68afac6
--- /dev/null
+++ b/frontend/application/templates/forum/profile.html
@@ -0,0 +1,66 @@
+<a class="btn btn--link" href="{{ url_for('frontend.get_posts') }}">Home</a>
+<br>
+<br>
+
+<div>
+  {% with messages = get_flashed_messages(with_categories=true) %}
+    {% if messages %}
+    <ul>
+    {% for category, message in messages %}
+  <li class="{{ category }}">{{ message }}</li>
+    {% endfor %}
+    </ul>
+    {% endif %}
+  {% endwith %}
+</div>
+
+<form action="{{ url_for('frontend.display_currentuser') }}" method="POST", enctype="multipart/form-data">
+
+    {{ form.csrf_token }} 
+
+    <img class="rounded-circle" width="100" src="images/users/{{session['user'].image_url }}">
+    <br>
+    <input type="file" id="image" name="image" placeholder="Upload new profile picture">
+    <br>
+    <br>
+    {{user['first_name']}}
+    <br>
+    <input type="text" id="first_name" name="first_name" placeholder="Enter modified first name">
+    <br>
+    <br>
+    {{user['last_name']}}
+    <br>
+    <input type="text" id="last_name" name="last_name" placeholder="Enter modified last name">
+    <br>
+    <br>
+    {{user['email']}}
+    <br>
+    <br>
+    {{user['phone_number']}}
+    <br>
+    <input type="text" id="phone_number" name="phone_number" placeholder="Enter modified phone number">
+    <br>
+    <br>
+    {{user['user_role']}}
+    {% if user['user_role'] == 'student' %}
+    <br>
+    <select id="user_role" name="user_role">
+              <option value=""></option>
+              <option value="graduate">Graduate</option>
+            </select>
+    {% endif %}
+    <br>
+    <br>
+    <input type="submit" value="Update">
+</form>
+
+{% block title %}YOUR POSTS{% endblock %}
+
+{% for post in posts %}
+
+    <div class="h4 m-0"><a href="{{ url_for('frontend.display_post', post_id=post.id) }}">{{ post['title'] }}</a></div>
+    <p class="card-text">{{ post.content | safe }}</p>
+
+{% endfor %}
+
+
diff --git a/frontend/application/templates/forum/user.html b/frontend/application/templates/forum/user.html
new file mode 100644
index 0000000..9b0de10
--- /dev/null
+++ b/frontend/application/templates/forum/user.html
@@ -0,0 +1,28 @@
+<a class="btn btn--link" href="{{ url_for('frontend.get_posts') }}">Home</a>
+<br>
+<br>
+<img class="rounded-circle" width="100" src="images/users/{{ image }}">
+<br>
+<br>
+{{name}}
+<br>
+{{email}}
+<br>
+{{role}}
+<br>
+<br>
+
+{% block title %}POSTS OF THE USER{% endblock %}
+
+{% for post in posts %}
+	<div class="h4 m-0"><a href="{{ url_for('frontend.display_post', post_id=post.id) }}">{{ post['title'] }}</a></div>
+	<p class="card-text">{{ post.content | safe }}</p>
+	<br>
+
+{% endfor %}
+
+
+
+
+
+
diff --git a/frontend/application/templates/sidebar.html b/frontend/application/templates/sidebar.html
index 4bf76b6..5a514cc 100644
--- a/frontend/application/templates/sidebar.html
+++ b/frontend/application/templates/sidebar.html
@@ -1,9 +1,10 @@
 <div class="col-md-3">
     <div class="card">
         <div class="card-body">
-            <div class="h5">{{user['result'].full_name}}</div>
-            <div class="h7 text-muted">{{user['result'].email}}</div>
-            <div class="h7">{{user['result'].user_role}} at University of Surrey
+            <img class="rounded-circle" width="45" src="images/users/{{ session['user'].image_url }}">
+            <div class="h5"><a href="{{ url_for('frontend.display_currentuser') }}">{{ session['user'].full_name }}</a></div>
+            <div class="h7 text-muted">{{session['user'].email}}</div>
+            <div class="h7">{{session['user'].user_role}} at University of Surrey
             </div>
         </div>
         <ul class="list-group list-group-flush">
diff --git a/post-service/application/models.py b/post-service/application/models.py
index 5a72d4f..3fecb83 100644
--- a/post-service/application/models.py
+++ b/post-service/application/models.py
@@ -10,6 +10,7 @@ class Post(db.Model):
     category = db.Column(db.String(20), index=True, nullable=False)
     date_added = db.Column(db.DateTime, default=datetime.utcnow)
     content = db.Column(db.Text, nullable=False)
+    image_url = db.Column(db.Text,nullable=True)
     comments = db.relationship('Comment', backref='post', lazy='dynamic')
 
     def __repr__(self):
@@ -23,7 +24,8 @@ class Post(db.Model):
         'title': self.title,
         'category': self.category,
         'date_added': self.date_added,
-        'content' : self.content
+        'content' : self.content,
+        'image_url':self.image_url
     }
 
 
diff --git a/post-service/application/post_api/routes.py b/post-service/application/post_api/routes.py
index 66f043e..0bdc961 100644
--- a/post-service/application/post_api/routes.py
+++ b/post-service/application/post_api/routes.py
@@ -75,6 +75,7 @@ def post_newpost():
     title = request.form['title']
     category = request.form['category']
     content = request.form['content']
+    image_url = request.form['image']
 
     post = Post()
     post.user_id = u_id
@@ -82,6 +83,7 @@ def post_newpost():
     post.title = title
     post.category = category
     post.content = content
+    post.image_url = image_url
 
     db.session.add(post)
     db.session.commit()
diff --git a/post-service/instance/posts-service.db b/post-service/instance/posts-service.db
index 4aaee25d447ab4685b6f3fb9607a438e58ce2a87..a04cec11ce5c881e4ea16be66fdc7e5fe1705e3e 100644
GIT binary patch
literal 16384
zcmeI2%WfN07=UN&w5gpqLyC&2y6A}_C9%@Do}0(xRuxlsS^|kvoIo2@RW$J&+e61Q
zW-e{A0l6TtVZ$4MSg__Hcmwt<c!LVD=Ksf&i=DIxmh_B#o8$j>zH_n9Isf)28%{(?
z#}E2eL}czAj_0`#2;n$x9-dS1Ji4;*;q*O!^u-(A=ehEuj|w1=Equ$(y_)+0-q^(m
zFanGKBftnS0*nA7zz8q`jKJGW;N^SS>Eg9({5RRi+IMN&@As(}rEgP>mTBymWXHI>
zVUo0vtmJc!P1c(`<^!`unp-=h`RT^S4U*5<Rz&wK+om?T2YNf}n<f^weJ=u|WXF6A
zvZv*p5S`lO?$*|ZX*5wd4r#D=V*j|vv-*^LX0#d~8m$#cRZC-*27VY#XgzGLZyK##
z^0B!~Rvf#8mhNx0%=HINEL%xcN~C4pH(O@2VQv#FON8^Khnb7TwJUtz@oakF9PB0H
zZKz<^4-WAro5ERd-ZLMQNeQymOsyU1lwQv8)5R-S_^%HW)Mx{rnK8&%@&>~HjZWl5
z?i=78MR<a@GEVp3wyV>(x^yoN+@#47{A6R~OSm?l&0pn&XztIs-NNq$zc4fV<Lu>`
zpYwm^zk@H>#RxD0i~u9R2rvSS03+~r5cpy?$K}?Riv}%h(q5lNq+xl)IJ6zlk9ss9
zA#F#FKe~}BlDt+?*2Ef-q&hrQrL5L;wN|}7xO3>oqz$@*I3l1)0t)}F9gmEexqWkR
zr#FKxR~L=O8JD32|C}w)24yd@T)bTxeLUk@td*;ZBB?cSJ)xE?1<=#5oX>+RbHNzS
zXp_~moM7PFA)JZD;L!KT#tyj~J1*3`>%zKVDfwc;uUJ>LvZ%^cO$5K=CP05b)xSYp
z+5rqcNi13Y!L8Iyr{lCK#->S<tyOD^E?3(fsbZHuAJDFoLo~&bv3&*&E>)^gV0q!d
z4<ZZOWIQ&pR#z)!S+A%P#x^dRAPGs=C(x#e|KaQ<WK&!=hF8yZrdn-WgZi)>InS4*
zW7A8Th8#{yCa!LfqwWy)tN_|{Oakl<T+8vI@Hm{_bW-!>*VJ4Iqu7Q%u@`%1gVC@b
z)<j*^D%crDk|dE#gK;AA!VjK>2!8)!;_14vb#Arg&~H05a%eb#SF4LkSyyGXig=Hu
zQV(#lN<8|4*!$?iyO8);HJ+U7Lu&hR5Yli7=*I3DPikEi%hjr`OFDQ$tI0YQU8IW1
z7)h1U-@#Ol<FDOXfKfcP*)WK)doSuaft_%VVKV@FV!KD%&!8Z3o;&AMPpVgxvQ(+)
zB916*FVu?%xEc)!wqeIPfXxFOorx)GqvzrK**wQD;t-oJWazVi_KAhFM~}L0>J$dl
zs0O&6#+`-pgMhImV-T9IsG15vM8P4d9>@NoN0TXO5YXq2ABW>cM?toGme+MW4DHJd
zK#{L57~5*5KbqTceuCw4-|xEdD8Sc+BFl9}E{nP%C!;B;F$RNGNU0E;Mwa6yovK#R
z_GPPTYogw<G*N`n+#Tk49AP&B4S%K^jJ!jqbOC7>#=^OQz?fDlb*TouTT>Kl7--gz
zzyoL4juXHXoAeD}6jC~hZV>n#2j<a%(~e@8g^@)be$8fu1}A(ayb}HpeiMEbei5Du
z4PjIGN%&rH-;N(UR!c^J5nu!u0Y-okU<4QeMt~7u1Q-EE;2#O(vPC}G%bXRmi~Omr
z$(gzA0)Mh&n7^DY@#DL1x%uoeKeh#S2}{QIw5AK$>-_Pq(#3bPtNg?+(FOE#vQ02G
zew!V?%@nc=xf5YL|IY|HPUyf3yBGmRfDvE>7y(9r5nu!u0Y-okU<4R}|2u&vnM<7U
z6prQj)9D>zT~_L1wX9d56qA|YFuf1w?9tMqtlxs;cFZ10(ij4NKm+%%jECxz8AX|4
zk<W3)@DazCa;MCTdL18XS&?LUl-Yn;ICzX7`lKJXdvKheW;)nD=1f7V#c{I1<Z(VE
g89_D+O(Jt$vVWAAL7!vJRP4Hk7+ac(ag^-vHw54+=l}o!

literal 16384
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
HL(~2NZ`($D

diff --git a/user-service/application/models.py b/user-service/application/models.py
index 23f6342..2372270 100644
--- a/user-service/application/models.py
+++ b/user-service/application/models.py
@@ -7,13 +7,14 @@ from passlib.hash import sha256_crypt
 class User(db.Model, UserMixin):
     id = db.Column(db.Integer, primary_key=True)
     email = db.Column(db.String(255), unique=True, nullable=False)
-    phone_number = db.Column(db.String(255), unique=True, nullable=True)
-    uni_number = db.Column(db.Integer, unique=True, nullable=True)
+    phone_number = db.Column(db.String(255), unique=False, nullable=True)
+    uni_number = db.Column(db.Integer, unique=False, nullable=True)
     user_role = db.Column(db.String(255), unique=False, nullable=False)
     first_name = db.Column(db.String(255), unique=False, nullable=False)
     last_name = db.Column(db.String(255), unique=False, nullable=False)
     authenticated = db.Column(db.Boolean, default=False)
     password = db.Column(db.String(255), unique=False, nullable=False)
+    image_url = db.Column(db.String(255), nullable=False)
     api_key = db.Column(db.String(255), unique=True, nullable=True)
     date_added = db.Column(db.DateTime, default=datetime.utcnow)
     # date_updated = db.Column(db.DateTime, onupdate=datetime.utcnow)
@@ -37,6 +38,7 @@ class User(db.Model, UserMixin):
             'uni_number': self.uni_number,
             'user_role': self.user_role,
             'id': self.id,
+            'image_url':self.image_url,
             'api_key': self.api_key,
             'is_active': True
         }
diff --git a/user-service/application/user_api/routes.py b/user-service/application/user_api/routes.py
index 87391d6..b9229df 100644
--- a/user-service/application/user_api/routes.py
+++ b/user-service/application/user_api/routes.py
@@ -62,6 +62,7 @@ def post_register():
     phone_number = request.form['phone_number']
     uni_number = request.form['uni_number']
     user_role = request.form['user_role']
+    image_url = request.form['image_url']
 
     password = sha256_crypt.hash((str(request.form['password'])))
 
@@ -73,6 +74,7 @@ def post_register():
     user.uni_number = uni_number
     user.phone_number = phone_number
     user.user_role = user_role
+    user.image_url = image_url
     user.authenticated = True
 
     db.session.add(user)
@@ -82,6 +84,40 @@ def post_register():
 
     return response
 
+@user_api_blueprint.route('/api/user/update', methods=['POST'])
+def post_update():
+
+    id = request.form['user_id']
+    user = User.query.filter_by(id=id).first()
+
+    image_url = request.form['image_url']
+    first_name = request.form['first_name']
+    last_name = request.form['last_name']
+    phone_number = request.form['phone_number']
+
+    if len(request.form) > 5:
+        if request.form['user_role'] != '':
+            user_role = request.form['user_role']
+            user.user_role = user_role
+
+    if image_url != 'defaultpp.png':
+        user.image_url = image_url
+
+    if first_name != '':
+        user.first_name = first_name
+
+    if last_name != '':
+        user.last_name = last_name
+
+    if phone_number != '':
+        user.phone_number = phone_number
+
+    db.session.commit()
+
+    response = jsonify({'message': 'User updated', 'result': user.to_json()})
+
+    return response
+
 @user_api_blueprint.route('/api/user/login', methods=['POST'])
 def post_login():
     email = request.form['email']
@@ -112,4 +148,17 @@ def get_email(email):
         response = jsonify({'result': True})
     else:
         response = jsonify({'message': 'Cannot find email'}), 404
+    return response
+
+@user_api_blueprint.route('/api/user/<id>', methods=['GET'])
+def get_otheruser(id):
+    response = []
+
+    user = User.query.filter_by(id=id).first()
+    if user is None:
+        response = jsonify({'message': 'Cannot find user'}), 404
+        return response
+
+    response = jsonify(user.to_json())
+
     return response
\ No newline at end of file
diff --git a/user-service/instance/users-service.db b/user-service/instance/users-service.db
index b8ea0d48ca9994f2a82b9c1c46c802abffb453e2..683a2edb7ee3a1cfcf8ea88e445a618df676d5d5 100644
GIT binary patch
delta 1018
zcmZvbJ8u&~5XbL)29&^gK~``PAtk~H5XpHTxA(9>^5F#Hkl4cDJZR8fyyrOQ`2D7E
zEF`KFME(M4phijqAAt&}=&2AA4Fym{h%*q81XkKvX^Q{+X6C<JyS}Y0@#*-vm>>v#
z?;ad+XNm-4g0eg>gYSYQe-h+R;0<`bH#yOkM<1KwsnFP%_$0HpEhF)Kev{?+!$!3*
zv1Fy=b5{Baru6FIRe%lV!D&$%yaSVi*T4Xtyk90lU>n5b4>Ix8#?G7tF)?sZH?S@G
zcKSbh{V9JyAhI+b436|KQ^DF~5F!+-HL6wKQP`T&aC83awR$7Vi}l60Wv$MHX}DTy
z6tlG(lu!s^*h)3;l_SYyJI!IHVy=c;ZF@7Vayzv`H|o^D#u8j<u@qzr$gVU~R@}M0
zR*83%at|V&We{mPR&~gcs_RO*n8Og0X{b&kV*=wSG^0>cJQ-|~{$=SGuN(~h<%RGF
zuk-%hZ_q^YA5>H+xz-%k^tL{m=_GnMT!7p$^LMjzYxYdC1e>f|Nq0$emMy3$CylIi
zt=MwgtX582Dx=ueP?k|sg;;l#jq(vx6s0tZO~oXbAks(PxT!3MCjX+USXU3To^)$<
z<~W0A;}gA9GqqrwsMN^RRu}ENg|I!#m*RQ*rj@r~Iakee8ym1Q)4C6fb?U5k=Cp;T
zo0#pEB7`zs(^abL*wFbJvGFl7WJC##5~O&mK*;Rh@OeYLC|w8*$#lWud4#W#BV;b5
z#Ly_k2-BSOHCJWX2CH-KR{16yyci$r)#ux}TlvEM3QjB=sJR%<&Tvv%zv&cKv^%$~
zf{V+^6%<)cbaI(uX`aOqsyryS&|;(;;mE-d>Keg@ZF4*8@$$o?^ng_wMY`g(rD<q%
z=x4AifVbc!*aaVlF5bHo+XlUmM8yAC)_;&cW({eWA9j1JSzkz^Bc9Ij{kXp?e-^+#
n_y)d!&j<hK&$|a>kH854_J#CLKN<8(g6JOxX&8KxB#it75%Un;

literal 36864
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
R0U!VbfB+Bx0=J#Oe*m3|hKB$E

-- 
GitLab