diff --git a/README.md b/README.md
index d7c6a28bfd4198cb5291f0560c5141b9d5c9f1b5..a8f9ba3fbb7b46a6e2c2092388d660f57ebe162b 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 # COM3014-Team3
-## Coursework code
 ## Petgram
- To run the code through docker run the command:
- docker-compose up 
+Once the repository has been cloned to your machine in a command line open the folder com3014-team3
+on windows the command to run the code through Docker is:
+    docker-compose up
+on linux the command is:
+    sudo docker-compose up
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index ec29e6619553ddee56fcb56975ddf84815337f52..7eb8eb6d2126b0a70432fa6871726292d6e221e6 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -9,6 +9,8 @@ services:
       - .:/com3014-team3
     ports:
       - 8000:8000
+    depends_on:
+      - pgdb
   main:
     build:
       context: .
diff --git a/main/about/views.py b/main/about/views.py
index c4f0006a5164b00ae4e091092c126b87711e5979..2f3487109cf9f0859bb82e6a821ffed7ae54867c 100644
--- a/main/about/views.py
+++ b/main/about/views.py
@@ -1,4 +1,5 @@
 from django.shortcuts import render
 
 def about(request):
+    # opens the about page
     return render(request, 'about/about.html', {})
\ No newline at end of file
diff --git a/main/contact/views.py b/main/contact/views.py
index dbfb351d46601835af37279ed80d08c9059e2b7d..d37c4f228e44a790c36bafeb910ff45380536074 100644
--- a/main/contact/views.py
+++ b/main/contact/views.py
@@ -3,10 +3,15 @@ from .forms import ContactForm
 
 def contact(request):
   if request.method == "POST":
+    # specifies teh form
     form = ContactForm(request.POST) 
+    #checks if its valid
     if form.is_valid(): 
+      #saves the form
       form.save()
-      return redirect('http://127.0.0.1:8001/register/welcome')
+      #redirects to welcome page
+      return redirect('http://localhost:8000/register/welcome')
   else:
     form = ContactForm()
+  #opens contact page with form
   return render(request, 'contact/contactpage.html', {'form': form})
\ No newline at end of file
diff --git a/main/main/urls.py b/main/main/urls.py
index 4729bf11716b83d84929a54e2bdc0912b7511069..4b637ad5ac436011bae3ee74412b20ab23eabe5f 100644
--- a/main/main/urls.py
+++ b/main/main/urls.py
@@ -19,7 +19,6 @@ from django.urls import path, include
 from django.conf import settings
 from django.conf.urls.static import static
 
-
 urlpatterns = [
     path('admin/', admin.site.urls),
     path('contact/', include('contact.urls'), name='contact'),
diff --git a/post/postapp/forms.py b/post/postapp/forms.py
index fd8a26d6a8da2978966ae95f0816a5b82fdb1ba7..c4ddd626868776e210eabce72afb66d542d3a764 100644
--- a/post/postapp/forms.py
+++ b/post/postapp/forms.py
@@ -5,18 +5,9 @@ from django.db import models
 
 class addPostForm(forms.ModelForm):
   class Meta:
-      #The form for creating a new post. May use ImageField?
+    #The form for creating a new post
     model = post
     fields = ['image', 'description']
-        # fields = ['image', 'author', 'description'] #Might need more stuff
-    # widgets = {
-    #    #     'image': forms.Textarea(), #Filler
-    #    #     'desc': forms.Textarea(attrs={'class': 'formfield','placeholder': 'Post Description', 'rows': 5, 'cols': 60}),
-    #     #    'author': forms.HiddenInput(),
-    #     # love the fact that you commented this line out and then instead of just uncommenting it you completely rewrote it
-    #   #but anyways im like 90% sure you dont need this whole widget section so rip
-    #   'author': forms.HiddenInput()
-    # }
 
 class CommentForm(forms.ModelForm):
     class Meta:
diff --git a/post/postapp/templates/post/newpostpage.html b/post/postapp/templates/post/newpostpage.html
index ab660847d117eec6bde60f5987d09c29a8258de2..21147e2e8608f9b6bd008e00ac71d4cd67f23410 100644
--- a/post/postapp/templates/post/newpostpage.html
+++ b/post/postapp/templates/post/newpostpage.html
@@ -1,6 +1,6 @@
 {% extends 'base.html' %}
 {% block content %}       
- <!--i changed some spacing here becuase looking at it was stressing me out  -->
+ <!--i changed some spacing here becuase it was confusing me  -->
 <form method = 'post' enctype="multipart/form-data">
         {%csrf_token%}
         {{form.as_p}}
diff --git a/post/postapp/urls.py b/post/postapp/urls.py
index 95b801b1d79773def920d7038da2bf1dabccee01..ab46db4463df97439a3ee1c3f60504396ea22622 100644
--- a/post/postapp/urls.py
+++ b/post/postapp/urls.py
@@ -4,7 +4,6 @@ from .views import post
 
 urlpatterns = [ 
     path('newPost', views.newPostView, name='newPost'), #Page for making a new post
-    path('success/', views.uploadokView, name= 'success'), #
     path('<int:pk>/', views.postDetailView.as_view(), name='post_detail'), # specific post
     path('delete/<int:nid>', views.delete_view, name = 'post_delete'), #to delete a  post
     path('', views.index_view, name='post_index'),
diff --git a/post/postapp/views.py b/post/postapp/views.py
index 826f3988705fbdaf6d8ffe683bc59e1a04046359..c35e5c25b9c033108a280ec85b471cd90980a6b3 100644
--- a/post/postapp/views.py
+++ b/post/postapp/views.py
@@ -18,33 +18,25 @@ import os
 from django.core.files.storage import default_storage
 from django.http import JsonResponse
 
-def successView(request):
-  context = {}
-  return render(request, 'post/success.html', post) #Might need to redirect elsewhere
-
-
-def uploadokView(request):
-  return HttpResponse('Upload Successful')
-
 @login_required
-def newPostView(request): #Filler for my silly brain
+def newPostView(request):
   context = {}
   #Your mystery field was actually the image not uploading
   #just needed request.FILES adding in
-  # form = addPostForm(request.POST or None, initial = {'author': request.user})
   form = addPostForm(request.POST, request.FILES or None)
   if(request.method == 'POST'):
     if form.is_valid():
       #user wasnt being saved properly either 
+      #gets values from form
       post = form.save(commit=False)
+      #assigns current user as author
       post.author = request.user
+      #saves post
       post.save()
-      # form.save()
       messages.add_message(request, messages.SUCCESS, 'Post Created')
       return redirect('post_index')
     else:
       messages.add_message(request, messages.ERROR, 'Invalid form data; post not created')
-  #this one line was indented one to many times and was causing the weird thing when the form wasnt coming up straight away
   context['form'] = form
   return render(request, "post/newpostpage.html", context)
 
@@ -52,7 +44,6 @@ def newPostView(request): #Filler for my silly brain
 class postDetailView(DetailView):
     model = post
     template_name = 'post/postdetail.html'
-
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context['comment_form'] = CommentForm()
@@ -67,8 +58,6 @@ class postDetailView(DetailView):
             comment.save()
             return redirect('post_detail', pk=self.kwargs['pk'])
         else:
-            # Handle invalid form
-            # You might want to display an error message
             return redirect('post_detail', pk=self.kwargs['pk'])
 
 def delete_comment(request, comment_id):
@@ -82,21 +71,17 @@ def delete_comment(request, comment_id):
 @login_required
 def index_view(request): 
     context = {} 
-    
     # Get all posts
     if request.user.is_staff:
         all_posts = post.objects.all()
     else:
         all_posts = post.objects.filter(author=request.user)
-
     # Filter out posts without a valid image
     valid_posts = []
     for post_item in all_posts:
         if post_item.image and default_storage.exists(post_item.image.name):
             valid_posts.append(post_item)
-
     context["post_list"] = valid_posts
-
     return render(request, "post/postIndex.html", context)
 
 def feed_view(request):
@@ -116,12 +101,6 @@ def delete_view(request, nid):
   messages.add_message(request, messages.SUCCESS, 'Post Deleted')
   return redirect('post_index')
 
-
-# it took me so long to find this and i was so confused why the places you used it werent throwing an error
-#but anyways you dont need this if you are just mean the superusers because you can do what ive done in index_view instead
-def is_admin(user):
-  return user.groups.filter(name='adminUsers').exists()
-
 @login_required
 def add_comment_view(request, pk):
     post_object = get_object_or_404(post, pk=pk)
@@ -135,4 +114,5 @@ def add_comment_view(request, pk):
             return redirect('post_detail', pk=pk)
     else:
         form = CommentForm()
-    return redirect('post_detail', pk=pk)  # Redirect to post detail page
+    # Redirect to post detail page
+    return redirect('post_detail', pk=pk)  
diff --git a/register/registerapp/views.py b/register/registerapp/views.py
index 0dbab852b8cdb9b13a3640f9a82c58254f4669b1..1bf272d9716b85f16fd470fca664eb50756015a0 100644
--- a/register/registerapp/views.py
+++ b/register/registerapp/views.py
@@ -18,7 +18,7 @@ def register(request):
 
             if user is not None:
                 login(request, user)
-                return redirect('login')  # Change 'login' to the name of your login view
+                return redirect('login')
 
     else:
         form = RegistrationForm()
@@ -34,6 +34,7 @@ def login_view(request):
     if request.method == 'POST':
         form = AuthenticationForm(request, data=request.POST)
         if form.is_valid():
+            #saving user data
             username = form.cleaned_data['username']
             password = form.cleaned_data['password']
             user = authenticate(request, username=username, password=password)