diff --git a/.idea/DjangoDocker.iml b/.idea/DjangoDocker.iml
index ae11b5f353a246ca17493da8dfdd400b8e815b79..72ca99795fc233f9c72c8f5063f014ed2cfa2f9b 100644
--- a/.idea/DjangoDocker.iml
+++ b/.idea/DjangoDocker.iml
@@ -17,7 +17,7 @@
       <sourceFolder url="file://$MODULE_DIR$/ActualProjectCode/DjangoProject" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/mainDockerImage/backend" isTestSource="false" />
     </content>
-    <orderEntry type="jdk" jdkName="Python 3.13" jdkType="Python SDK" />
+    <orderEntry type="jdk" jdkName="C:\Users\james\AppData\Local\Programs\Python\Python311\python.exe" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 1d3ce46ba0d13183e3244cba5b930b5e27be4c6b..52b60581075132ee8ea8b95067f7eb1ee09d1aef 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
   <component name="Black">
     <option name="sdkName" value="Python 3.13" />
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="C:\Users\james\AppData\Local\Programs\Python\Python311\python.exe" project-jdk-type="Python SDK" />
 </project>
\ No newline at end of file
diff --git a/ActualProjectCode/DjangoProject/core/forms.py b/ActualProjectCode/DjangoProject/core/forms.py
index c95ed1130c12b19acae7f4bc5674712072139f99..ec889d2cc4b88db2e25c67cbbdf57c77772f6f45 100644
--- a/ActualProjectCode/DjangoProject/core/forms.py
+++ b/ActualProjectCode/DjangoProject/core/forms.py
@@ -3,6 +3,7 @@ from django.forms import ModelForm
 from django.contrib.auth.models import User
 from django.contrib.auth.forms import UserCreationForm
 from . import models
+import re
 
 class CustomUserCreationForm(UserCreationForm):
     email = forms.EmailField(required=True)
@@ -11,6 +12,7 @@ class CustomUserCreationForm(UserCreationForm):
         model = User
         fields = ['username', 'email', 'password1', 'password2']
 
+
     def save(self, commit=True):
         user = super().save(commit=False)
         user.email = self.cleaned_data['email']
@@ -18,6 +20,8 @@ class CustomUserCreationForm(UserCreationForm):
             user.save()
         return user
 
+
+
 class UserLoginForm(forms.Form):
     username = forms.CharField(max_length=100)
     password = forms.CharField(widget=forms.PasswordInput)
@@ -40,6 +44,10 @@ class GenerateBillingsForm(forms.ModelForm):
         model = models.Billing
         fields = ['amount', 'username', 'companyName']
 
+class BillingFilterForm(forms.Form):
+    start_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), required=False)
+    end_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), required=False)
+
 class UpdateUser(forms.ModelForm):
     class Meta:
         model = models.Profile
diff --git a/ActualProjectCode/DjangoProject/core/models.py b/ActualProjectCode/DjangoProject/core/models.py
index 98f15ba2e3547d14df207416abbffeee588fb4e7..2258c65fc755c1b9e4d25243c843dfc099eda197 100644
--- a/ActualProjectCode/DjangoProject/core/models.py
+++ b/ActualProjectCode/DjangoProject/core/models.py
@@ -29,6 +29,8 @@ class Billing(models.Model):
     username = models.CharField(max_length=100, default="company")
     companyName = models.CharField(max_length=100)
     approvalStatus = models.CharField(max_length=10, default="unapproved")
+    created_at = models.DateTimeField(auto_now_add=True)
+
 
     def __str__(self):
         return f"{self.companyName} Billing - ID: {self.billingID}"
diff --git a/ActualProjectCode/DjangoProject/core/views.py b/ActualProjectCode/DjangoProject/core/views.py
index 57566fb78b33b2a0fabf2b03c9752095dcf4bbbd..0784fea86998157ae6ac39ce918a94cf4368e610 100644
--- a/ActualProjectCode/DjangoProject/core/views.py
+++ b/ActualProjectCode/DjangoProject/core/views.py
@@ -108,6 +108,7 @@ def genBillings(request):
     context = {'form': form}
     return render(request, 'modelForms/genBillings.html', context)
 
+
 @login_required
 def manageUsers(request):
     profile = Profile.objects.all()
@@ -154,10 +155,21 @@ def interactionView(request):
     context = {'interactions': interactions}
     return render(request, 'modelForms/interactionView.html', context)
 
+
 @login_required
 def billingsView(request):
+    # Start with all billings
     billings = Billing.objects.all()
-    context = {}
+
+    # Apply date filters if provided
+    start_date = request.GET.get('start_date')
+    end_date = request.GET.get('end_date')
+
+    if start_date:
+        billings = billings.filter(created_at__date__gte=start_date)
+    if end_date:
+        billings = billings.filter(created_at__date__lte=end_date)
+
     context = {'billings': billings}
     return render(request, 'modelForms/billingsView.html', context)
 
diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/billingsView.html b/ActualProjectCode/DjangoProject/templates/modelForms/billingsView.html
index 1d44a99bc86eb214829bd4172a3864941466985f..5fe03642e8825ffff965b6b1a36e9af24601c2b8 100644
--- a/ActualProjectCode/DjangoProject/templates/modelForms/billingsView.html
+++ b/ActualProjectCode/DjangoProject/templates/modelForms/billingsView.html
@@ -81,6 +81,64 @@
             background: #ccc;
             margin: 15px 0;
         }
+
+        .filter-section {
+            background: #f9f9f9;
+            padding: 15px;
+            margin-bottom: 20px;
+            border-radius: 5px;
+            text-align: left;
+        }
+
+        .filter-section h3 {
+            margin-top: 0;
+            color: #333;
+        }
+
+        .form-group {
+            margin-bottom: 15px;
+        }
+
+        .form-group label {
+            display: inline-block;
+            width: 100px;
+            font-weight: bold;
+        }
+
+        .form-group input {
+            padding: 8px;
+            border: 1px solid #ddd;
+            border-radius: 4px;
+        }
+
+        button {
+            padding: 8px 16px;
+            background: #004085;
+            color: white;
+            border: none;
+            border-radius: 4px;
+            cursor: pointer;
+            margin-right: 10px;
+        }
+
+        button:hover {
+            background: #002754;
+        }
+
+        .btn-secondary {
+            background: #6c757d;
+            color: white;
+            padding: 8px 16px;
+            border: none;
+            border-radius: 4px;
+            text-decoration: none;
+            display: inline-block;
+        }
+
+        .btn-secondary:hover {
+            background: #5a6268;
+            color: white;
+        }
     </style>
 </head>
 <body>
@@ -88,6 +146,23 @@
     <div class="container">
         <p><a href="{% url 'profile' %}">Return to Profile</a></p>
 
+        <!-- Filter Form Section -->
+        <div class="filter-section">
+            <h3>Filter Billings by Date</h3>
+            <form method="get">
+                <div class="form-group">
+                    <label for="start_date">Start Date:</label>
+                    <input type="date" name="start_date" id="start_date">
+                </div>
+                <div class="form-group">
+                    <label for="end_date">End Date:</label>
+                    <input type="date" name="end_date" id="end_date">
+                </div>
+                <button type="submit">Apply Filter</button>
+                <a href="{% url 'billingsView' %}" class="btn-secondary">Clear Filters</a>
+            </form>
+        </div>
+
         {% for record in billings %}
             {% if record.approvalStatus == 'approved' %}
             <div class="record">
@@ -95,10 +170,15 @@
                 <p><strong>Amount: </strong>£{{ record.amount }}</p>
                 <p><strong>Generated By: </strong>{{ record.username }}</p>
                 <p><strong>Company Billed: </strong>{{ record.companyName }}</p>
+                <p><strong>Date Created: </strong>{{ record.created_at|date:"F d, Y H:i" }}</p>
                 <a href="" class="update-btn">Pay Here</a>
                 <a href="{% url 'deleteBillings' record.billingID %}" class="delete-btn">Delete Billing</a>
             </div>
             {% endif %}
+        {% empty %}
+            <div class="record">
+                <p>No approved billings found for the selected date range.</p>
+            </div>
         {% endfor %}
 
     </div>
diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/mlUpload.html b/ActualProjectCode/DjangoProject/templates/modelForms/mlUpload.html
index cd5806b2b1cdb0fec6318a1b0eda05e5f31f5ba9..a85e26d77a94de194a7ee055b92c6d72d227cd01 100644
--- a/ActualProjectCode/DjangoProject/templates/modelForms/mlUpload.html
+++ b/ActualProjectCode/DjangoProject/templates/modelForms/mlUpload.html
@@ -59,6 +59,7 @@
 
     <div class="container">
         <h2>Upload a new ML model</h2>
+        <p><a href="{% url 'profile' %}">Return to Profile</a></p>
         <form action="" method="post" enctype="multipart/form-data">
             {% csrf_token %}
             {{ form.as_p }}
diff --git a/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html b/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html
index 1e41304e7b090a4e4ded18f49892980ab92a742b..38b576a58d716eeb3bd0eebcc95b2aaadecaeec8 100644
--- a/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html
+++ b/ActualProjectCode/DjangoProject/templates/modelForms/userUpload.html
@@ -78,6 +78,7 @@
 </head>
 <body>
     <div class="container">
+        <p><a href="{% url 'profile' %}">Return to Profile</a></p>
         <form action="" method="POST" enctype="multipart/form-data">
             {% for model in models %}
                 <h2> {{ model.modelTitle }}</h2>
diff --git a/ActualProjectCode/DjangoProject/templates/profile.html b/ActualProjectCode/DjangoProject/templates/profile.html
index ad63c1433fca77eb34def9ccb492a1b248674ffb..afd466653073b541d68fbaaa26de6842433ccecf 100644
--- a/ActualProjectCode/DjangoProject/templates/profile.html
+++ b/ActualProjectCode/DjangoProject/templates/profile.html
@@ -168,8 +168,8 @@
                 <hr>
                 <h1 class="sectionTitle">AI Engineer Section</h1>
                 <!-- AI Section -->
-                <h2>Upload Dataset</h2>
-                <h2><a href="{% url 'userUpload' %}">Upload</a></h2>
+                <h2>Upload ML Model</h2>
+                <h2><a href="{% url 'mlUpload' %}">Upload</a></h2>
                 <h2>Access ML Interactions</h2>
                 <h2><a href="{% url 'interactionView' %}">All Interactions</a></h2>
                 <h2>Manage Models</h2>
@@ -233,6 +233,7 @@
                 <hr>
                 <h1 class="sectionTitle">User Section</h1>
                 <!-- User Section -->
+
                 <h2>Upload Files to ML</h2>
                 <h2><a href="{% url 'userUpload' %}">Upload CSV</a></h2>
                 <h2>View your uploads</h2>
diff --git a/Working Models/Linear_trained.py b/Working Models/Linear_trained.py
index 2e6f67ed5adf57637cdf775bd8fe4339c769bf11..cad2a47e770a9b7da79dcfcf3d7b69981b8e71b7 100644
--- a/Working Models/Linear_trained.py	
+++ b/Working Models/Linear_trained.py	
@@ -195,6 +195,7 @@ def main():
 
         # Save predictions to CSV
         csv_output_path = os.path.join(input_dir, f"{input_name}_predictions.csv")
+        print(csv_output_path)
         predictions_df.to_csv(csv_output_path, index=False)
 
         # Restore original stderr before printing
@@ -207,5 +208,7 @@ def main():
         null_file.close()
 
 
+
+
 if __name__ == "__main__":
     main()
\ No newline at end of file
diff --git a/Working Models/Trained_Regression.py b/Working Models/Trained_Regression.py
index a3818df915c9f57d39da7cf67c6d3bff2dc68838..de4f1b56c30698453775a15162e623ce26cda38f 100644
--- a/Working Models/Trained_Regression.py	
+++ b/Working Models/Trained_Regression.py	
@@ -46,7 +46,7 @@ predictions = model.predict(X_scaled)
 #Save output
 output_df = df.copy()
 output_df[f"Predicted_{target_col}"] = predictions
-output_path = os.path.join(script_dir, "new_data_for_prediction_predictions.csv")
+output_path = os.path.join(script_dir, "symbolic_regression_trained_data.csv") # error here with script_dir
 output_df.to_csv(output_path, index=False)
 
 # Optional evaluation
@@ -59,5 +59,4 @@ if target_col in df.columns:
         rmse = np.sqrt(mean_squared_error(y_true[mask], y_pred[mask]))
         r2 = r2_score(y_true[mask], y_pred[mask])
 
-    else:
-        end
+print(output_path)
\ No newline at end of file
diff --git a/Working Models/train_symbolic_model.py b/Working Models/train_symbolic_model.py
index 3aec09d78403f03b6c48ae16df0c2db8b035310d..9644f2c75353022cd117fba1fec226942b72f1b0 100644
--- a/Working Models/train_symbolic_model.py	
+++ b/Working Models/train_symbolic_model.py	
@@ -1,6 +1,4 @@
-import os
-import json
-import re
+import os, json, re, sys, warnings
 import pandas as pd
 import numpy as np
 from gplearn.genetic import SymbolicRegressor
@@ -8,8 +6,17 @@ from sklearn.model_selection import train_test_split
 from sklearn.metrics import mean_squared_error, r2_score
 from sklearn.preprocessing import StandardScaler, LabelEncoder
 from sklearn.impute import SimpleImputer
+from sklearn.exceptions import SkipTestWarning, ConvergenceWarning
 from joblib import dump
 
+
+warnings.filterwarnings("ignore", category=UserWarning)
+warnings.filterwarnings("ignore", category=DeprecationWarning)
+warnings.filterwarnings("ignore", category=FutureWarning)
+warnings.filterwarnings("ignore", category=SkipTestWarning)
+warnings.filterwarnings("ignore", category=ConvergenceWarning)
+warnings.filterwarnings("ignore")
+
 # Path construction
 script_dir = os.path.dirname(os.path.abspath(__file__))
 file_path = f"{sys.argv[2]}"
@@ -112,7 +119,7 @@ model = SymbolicRegressor(
     p_hoist_mutation=0.05,
     p_point_mutation=0.1,
     max_samples=0.9,
-    verbose=1,
+    verbose=0,
     parsimony_coefficient=0.01,
     random_state=42,
     function_set=('add', 'sub', 'mul', 'div', 'sqrt', 'log', 'sin', 'cos')
@@ -136,3 +143,14 @@ with open(os.path.join(script_dir, "symbolic_model_meta.json"), "w") as f:
         "expression": str(model._program)
     }, f, indent=4)
 
+input_dir = os.path.dirname(file_path) if os.path.dirname(file_path) else "."
+output_path = os.path.join(input_dir, "Symbolic_Results.txt")
+with open(output_path, "w") as f:
+    f.write(f"Train RMSE: {rmse}\n")
+    f.write(f"Test RMSE: {rmse}\n")
+    f.write(f"Train R² Score: {r2}\n")
+    f.write(f"Test R² Score: {r2}\n")
+    f.write(f"Expression {str(model._program)}\n")
+
+print(output_path)
+