diff --git a/UWEFlix/__pycache__/forms.cpython-310.pyc b/UWEFlix/__pycache__/forms.cpython-310.pyc
index aa41da47cd667f7d935764a44d5900f7abdd51d9..5c1c5d3cddd2bd4bbf403ed29991b47e5d9bf6da 100644
Binary files a/UWEFlix/__pycache__/forms.cpython-310.pyc and b/UWEFlix/__pycache__/forms.cpython-310.pyc differ
diff --git a/UWEFlix/__pycache__/models.cpython-310.pyc b/UWEFlix/__pycache__/models.cpython-310.pyc
index 5f795547eebe5388510cc095edcb847bb235e51b..f464a770870ffcd7a17f038c35b7ae5d6d3db71d 100644
Binary files a/UWEFlix/__pycache__/models.cpython-310.pyc and b/UWEFlix/__pycache__/models.cpython-310.pyc differ
diff --git a/UWEFlix/__pycache__/urls.cpython-310.pyc b/UWEFlix/__pycache__/urls.cpython-310.pyc
index 5a4a8efcf7222896a7b8d292ece61a08d3fa6b11..97db8d0a329dbb23f6de76d08ac289b14b4471c7 100644
Binary files a/UWEFlix/__pycache__/urls.cpython-310.pyc and b/UWEFlix/__pycache__/urls.cpython-310.pyc differ
diff --git a/UWEFlix/__pycache__/views.cpython-310.pyc b/UWEFlix/__pycache__/views.cpython-310.pyc
index 3b088c486ba9b25d0c54ef89871b4f511bd93c54..acb44c7178cbd67e811333eb30c5d5dd47561b17 100644
Binary files a/UWEFlix/__pycache__/views.cpython-310.pyc and b/UWEFlix/__pycache__/views.cpython-310.pyc differ
diff --git a/UWEFlix/forms.py b/UWEFlix/forms.py
index 7218de6152c00f9c47c6fc4c5b66801b8fe456f1..1c178dde8631f32cca392033e9399cb4020412ba 100644
--- a/UWEFlix/forms.py
+++ b/UWEFlix/forms.py
@@ -24,6 +24,15 @@ class ClubForm(forms.ModelForm):
         fields = ['name', 'address_details', 'contact_details', 'representative']
 
 
+class ClubRepresentativeForm(forms.ModelForm):
+    class Meta:
+        model = ClubRepresentative
+        fields = ['user', 'club', 'rep_id', 'password']
+        widgets = {
+            'password': forms.PasswordInput()
+        }
+
+
 class ElevateUserForm(forms.ModelForm):
     user = forms.ModelChoiceField(queryset=User.objects.all())
     group = forms.ChoiceField(choices=[
diff --git a/UWEFlix/migrations/0013_alter_user_club_rep.py b/UWEFlix/migrations/0013_alter_user_club_rep.py
new file mode 100644
index 0000000000000000000000000000000000000000..bcb5ae62d96251f3e757df30ba618edc7bcb2857
--- /dev/null
+++ b/UWEFlix/migrations/0013_alter_user_club_rep.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.1.4 on 2023-01-07 00:10
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('UWEFlix', '0012_remove_account_club'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='user',
+            name='club_rep',
+            field=models.BooleanField(default=False),
+        ),
+    ]
diff --git a/UWEFlix/migrations/__pycache__/0013_alter_user_club_rep.cpython-310.pyc b/UWEFlix/migrations/__pycache__/0013_alter_user_club_rep.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0ee73f26a90c4999512658c4f6662ae4a1a337cd
Binary files /dev/null and b/UWEFlix/migrations/__pycache__/0013_alter_user_club_rep.cpython-310.pyc differ
diff --git a/UWEFlix/models.py b/UWEFlix/models.py
index ef3fd0fefdfafe6ec1d322ef32c791028c00165b..66eefe1e3e540a5f9bd73e552a12a4f8d578f0b9 100644
--- a/UWEFlix/models.py
+++ b/UWEFlix/models.py
@@ -1,6 +1,6 @@
 from django.db import models
 from django.contrib.auth.models import AbstractUser, Group, Permission
-
+from django import forms
 # Create your models here.
 
 
@@ -8,9 +8,6 @@ class User(AbstractUser):
     club_rep = models.BooleanField(default=False)
     # ...
 
-class ClubRepresentative(User):
-    pass
-
 class AccountManager(User):
     pass
 
@@ -81,3 +78,11 @@ class Showing(models.Model):
 class Seat(models.Model):
     screen = models.ForeignKey(Screen, on_delete=models.CASCADE, related_name="seats")
 
+
+
+class ClubRepresentative(models.Model):
+    user = models.OneToOneField(User, on_delete=models.CASCADE)
+    club = models.ForeignKey(Club, on_delete=models.CASCADE)
+    rep_id = models.CharField(max_length=50, unique=True)
+    password = models.CharField(max_length=50)
+
diff --git a/UWEFlix/templates/manage_clubs.html b/UWEFlix/templates/manage_clubs.html
index b793656c5a2e51af7c5b3cb63e042ec79163845d..1d3b5f815e0191b0aa5382d6f03f80a03aeff46a 100644
--- a/UWEFlix/templates/manage_clubs.html
+++ b/UWEFlix/templates/manage_clubs.html
@@ -10,10 +10,14 @@
         <div class="card-body">
           <h5 class="card-title">{{ club.name }}</h5>
           <p class="card-text">Account: {{ club.account.id }}</p>
+          <a href="{% url 'update_account' pk=club.account.pk %}" class="btn btn-secondary">Update Account</a>
+          <a href="{% url 'delete_account' pk=club.account.pk %}" class="btn btn-secondary">Delete Account</a>
           <p class="card-text">Club Representative: {{ club.representative.username }}</p>
-          <a href="{% url 'update_club' pk=club.pk %}" class="btn btn-primary">Update</a>
-          <a href="{% url 'delete_club' pk=club.pk %}" class="btn btn-danger">Delete</a>
+          <a href="{% url 'update_club' pk=club.pk %}" class="btn btn-primary">Update Club</a>
+          <a href="{% url 'delete_club' pk=club.pk %}" class="btn btn-danger">Delete Club</a>
+          {% if not club.account %}
           <a href="{% url 'create_account' %}" class="btn btn-secondary">Create Account</a>
+          {% endif %}
         </div>
       </div>
     {% endfor %}
diff --git a/UWEFlix/templates/representative_registration.html b/UWEFlix/templates/representative_registration.html
index c864c38f45344a03820c74dc59f357077acd2d9d..c28c2726fd7f14bf544d206407590c959e6054b4 100644
--- a/UWEFlix/templates/representative_registration.html
+++ b/UWEFlix/templates/representative_registration.html
@@ -3,34 +3,27 @@
 {% block content %}
 
 <div class="container mt-4">
-  <h1>Register as Club Representative</h1>
-  <form method="post" action="{% url 'representative_registration' %}">
+  <h1>Representative Registration</h1>
+  <form method="POST" action="{% url 'representative_registration' %}">
     {% csrf_token %}
-    <div class="form-group">
-      <label for="club">Club</label>
-      <select class="form-control" id="club" name="club">
+      <input type="hidden" name="club" value="{{ club.id }}">
+      <div class="form-group">
+        <label for="club">Club</label>
+        <select class="form-control" id="club" name="club" required>
         {% for club in clubs %}
           <option value="{{ club.id }}">{{ club.name }}</option>
         {% endfor %}
-      </select>
-    </div>
-    <div class="form-group">
-      <label for="first_name">First Name</label>
-      <input type="text" class="form-control" id="first_name" name="first_name">
-    </div>
+        </select>
+      </div>
     <div class="form-group">
-      <label for="last_name">Last Name</label>
-      <input type="text" class="form-control" id="last_name" name="last_name">
-    </div>
-    <div class="form-group">
-      <label for="email">Email</label>
-      <input type="email" class="form-control" id="email" name="email">
-    </div>
-    <div class="form-group">
-      <label for="password">Password</label>
-      <input type="password" class="form-control" id="password" name="password">
+      <label for="user">User</label>
+      <select class="form-control" id="user" name="user" required>
+      {% for user in users %}
+        <option value="{{ user.id }}">{{ user.username }}</option>
+      {% endfor %}
+      </select>
     </div>
-    <button type="submit" class="btn btn-primary">Submit</button>
+    <button type="submit" class="btn btn-primary">Create Representative</button>
   </form>
 </div>
 
diff --git a/UWEFlix/templates/update_account.html b/UWEFlix/templates/update_account.html
new file mode 100644
index 0000000000000000000000000000000000000000..888aa0c2a4a7ac49cd23e6bd6b27d19d392a1cd2
--- /dev/null
+++ b/UWEFlix/templates/update_account.html
@@ -0,0 +1,14 @@
+{% extends 'base.html' %}
+
+{% block content %}
+
+<div class="container mt-4">
+  <h1>Update Account</h1>
+  <form method="POST" action="{% url 'update_account' pk=account.pk %}">
+    {% csrf_token %}
+    {{ form.as_p }}
+    <button type="submit" class="btn btn-primary">Update Account</button>
+  </form>
+</div>
+
+{% endblock %}
\ No newline at end of file
diff --git a/UWEFlix/urls.py b/UWEFlix/urls.py
index cfb861ed1d2f71c5dc64fb90b2a7ece00e53a09a..1c3fdeb36fd55d69614b50c644a145b6e0583ba8 100644
--- a/UWEFlix/urls.py
+++ b/UWEFlix/urls.py
@@ -25,5 +25,8 @@ urlpatterns = [
     path('manage_clubs/<int:pk>/update', views.club_update, name='update_club'),
     path('manage_clubs/<int:pk>/delete', views.club_delete, name='delete_club'),
     path('manage_clubs/create_account/', views.account_create, name='create_account'),
+    path('manage_clubs/update_account/<int:pk>', views.account_update, name='update_account'),
+    path('manage_clubs/delete_account/<int:pk>', views.account_delete, name='delete_account'),
+    path('manage_clubs/representative_registration/', views.representative_registration, name='representative_registration'),
     path('create_film/', views.film_create, name='create_film')
 ]
diff --git a/UWEFlix/views.py b/UWEFlix/views.py
index 5e616fef843e8a7771df968f63443d61b7e199ce..de7876b412f9f542b43a3dc146e466aedb4e7297 100644
--- a/UWEFlix/views.py
+++ b/UWEFlix/views.py
@@ -2,7 +2,7 @@ from django.shortcuts import render, redirect, HttpResponseRedirect, get_object_
 from django.contrib import messages
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.decorators import login_required
-from .forms import AccountForm, UserRegistrationForm, ClubForm, ElevateUserForm, ScreenForm, ShowingForm, FilmForm, CinemaForm
+from .forms import AccountForm, UserRegistrationForm, ClubForm, ElevateUserForm, ScreenForm, ShowingForm, FilmForm, CinemaForm, ClubRepresentativeForm
 from .models import Account, User, Club, Screen, Cinema, Film, Showing
 from django.http import JsonResponse
 from django.contrib.auth.models import AbstractUser, Group, Permission
@@ -254,11 +254,49 @@ def account_create(request):
         context = {'form': form, 'user': request.user, 'clubs': clubs}
         return render(request, 'create_account.html', context)
 
+def account_update(request, pk):
+    account = get_object_or_404(Account, pk=pk)
+    if request.method == 'POST':
+        form = ClubForm(request.POST, instance=account)
+        # Check if the form is valid
+        if form.is_valid():
+            # Save the form and redirect to the club list page
+            form.save()
+            return redirect('manage_clubs')
+    # If the request is not POST, or the form is invalid,
+    # render the update page with the club instance and the form
+    form = ClubForm(instance=account)
+    context = {'form': form, 'account': account, 'pk': pk}
+    return render(request, 'update_account.html', context)
 
+def account_delete(request, pk):
+    account = get_object_or_404(Account, pk=pk)
+    if request.method == 'POST':
+        account.delete()
 
-
-
-
+def representative_registration(request):
+    clubs = Club.objects.all()
+    users = User.objects.all()
+    if not request.user.groups.all().filter(name='account_manager').exists():
+        print(request.user.user_permissions)
+        return redirect('no_access')
+    if request.method =='POST':
+        form = ClubRepresentativeForm(request.POST)
+        if form.is_valid():
+            rep = form.save(commit=True)
+            club = form.cleaned_data['club']
+            club.representative = rep
+            club.save()
+            return redirect('manage_clubs')
+        else:
+            context = {'form': form, 'user': request.user, 'clubs': clubs, 'users': users}
+            return render(request, 'representative_registration.html', context)
+    else:
+        ### USER REQUESTS FORM ###
+        # render the empty form
+        form = ClubRepresentativeForm()
+        context = {'form': form, 'user': request.user, 'clubs': clubs, 'users': users}
+        return render(request, 'representative_registration.html', context)
 ### FILM MANAGEMENT
 
 
diff --git a/db.sqlite3 b/db.sqlite3
index 182072771686fd233b4f322819946de11d81dc48..6c4ee3ab373ea9efaa25a3f0e96e32f441b460c1 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ