diff --git a/ActualProjectCode/DjangoProject/Dockerfile b/ActualProjectCode/DjangoProject/Dockerfile
index 2e49ee6935ed03f18264413f286cdbcd99b05104..932f82ff6a7ed62e9cfa721fc2ae37afa3526179 100644
--- a/ActualProjectCode/DjangoProject/Dockerfile
+++ b/ActualProjectCode/DjangoProject/Dockerfile
@@ -9,7 +9,10 @@ COPY requirements.txt .
 
 RUN apk add --update --upgrade --no-cache postgresql-client && \
     apk add --update --upgrade --no-cache --virtual .tmp \
-        build-base postgresql-dev
+        build-base postgresql-dev && \
+    apk add --update --upgrade --no-cache libgomp && \
+    apk add --update --upgrade --no-cache libstdc++
+
 
 RUN pip install --no-cache-dir -r requirements.txt && apk del .tmp
 
diff --git a/ActualProjectCode/DjangoProject/core/forms.py b/ActualProjectCode/DjangoProject/core/forms.py
index 156c5b3a9b0990119fed34c3b1f091a1196c9d89..4273e28130a4df5b6317c5f7d0ffcd594aa65509 100644
--- a/ActualProjectCode/DjangoProject/core/forms.py
+++ b/ActualProjectCode/DjangoProject/core/forms.py
@@ -11,13 +11,13 @@ class UserUploadForm(forms.ModelForm):
     username = forms.CharField(max_length=100, widget=forms.HiddenInput)
     class Meta:
         model = models.Record
-        fields = ['username','uploadedFile','chosenML']
+        fields = ['username','uploadedFile', 'targetColumn', 'chosenML']
 
 class UploadModelForm(forms.ModelForm):
     username = forms.CharField(max_length=100, widget=forms.HiddenInput)
     class Meta:
         model = models.mlModel
-        fields = ['username','modelName']
+        fields = ['username', 'modelName']
 
 class GenerateBillingsForm(forms.ModelForm):
     username = forms.CharField(max_length=100, widget=forms.HiddenInput)
diff --git a/ActualProjectCode/DjangoProject/core/models.py b/ActualProjectCode/DjangoProject/core/models.py
index 1a2acf41aa068456b5097eb70fdbba3ebb8ed549..0927f75b2983da9854ececd148f4e6d3394adda8 100644
--- a/ActualProjectCode/DjangoProject/core/models.py
+++ b/ActualProjectCode/DjangoProject/core/models.py
@@ -1,4 +1,5 @@
 from django.contrib.auth.models import User
+from django.contrib import admin
 from django.db import models
 
 class Profile(models.Model):
@@ -26,10 +27,12 @@ class Billing(models.Model):
         return f"{self.companyName} Billing - ID: {self.billingID}"
 
 class Record(models.Model):
+    recordID = models.AutoField(primary_key=True)
     username = models.CharField(max_length=100, default="default")
     uploadedFile = models.FileField(upload_to='./records/', null=True, blank=True)
     chosenML = models.CharField(max_length=100, default="baseML")
-    responseByML = models.CharField(max_length=100, default="PLACEHOLDER RESPONSE") # change to actual response by ML
+    targetColumn = models.CharField(max_length=100, default="DEFAULT") # temporary fix for choosing CSV column.
+    responseByML = models.CharField(max_length=10000, default="PLACEHOLDER RESPONSE") # change to actual response by ML#
 
     def __str__(self):
-        return f"{self.chosenML} Response to {self.username}"
\ No newline at end of file
+        return f"{self.chosenML} Response to {self.username}. ID = {self.recordID}"
diff --git a/ActualProjectCode/DjangoProject/core/views.py b/ActualProjectCode/DjangoProject/core/views.py
index 7ac33eb5bf464ceaeac27231f6b90ab7f5370fa5..514d619772338d7961000abde1f6c255300d1577 100644
--- a/ActualProjectCode/DjangoProject/core/views.py
+++ b/ActualProjectCode/DjangoProject/core/views.py
@@ -4,7 +4,8 @@ from django.contrib.auth.models import User
 from django.shortcuts import render, redirect
 from django.contrib.auth.decorators import login_required
 from django.http import HttpResponse
-import os
+import subprocess
+import sys
 from .models import Profile, mlModel, Billing, Record
 from .forms import UserLoginForm, UserUploadForm, UploadModelForm, GenerateBillingsForm, UpdateUser
 
@@ -54,6 +55,27 @@ def userUpload(request):
         form = UserUploadForm(request.POST or None, request.FILES or None)
         if form.is_valid():
             form.save()
+
+        # CONNECTING WITH ML MODELS.
+        uName = form.cleaned_data['username']
+        chosenML = form.cleaned_data['chosenML']
+        tColumn = form.cleaned_data['targetColumn']
+        tempID = Record.objects.latest('recordID')
+        filePath = tempID.uploadedFile # janky way of doing it, but it works??? fix in the future.
+
+        result = subprocess.run(
+            [sys.executable, 'main.py', f'{chosenML}', f'{tColumn}', f'{filePath}'],
+            capture_output=True,
+            text=True
+        )
+        output = result.stdout
+
+        # Appending DB
+
+        response = Record.objects.get(recordID=tempID.recordID)
+        response.responseByML = output
+        response.save()
+
         return redirect('profile')
     context = {'form': form}
     return render(request, 'modelForms/userUpload.html', context)
diff --git a/ActualProjectCode/DjangoProject/main.py b/ActualProjectCode/DjangoProject/main.py
index e1d3ad6e2cb1eaa48cd75b2bf81ea713bd8bbc41..9ad534361a71c5f07f59cc518433fe4035073bda 100644
--- a/ActualProjectCode/DjangoProject/main.py
+++ b/ActualProjectCode/DjangoProject/main.py
@@ -1,13 +1,15 @@
-# point of this file is do be the driver of a selected ML model / IPYNB file in modelName directory
-
-# This file is planned to be called when a end-user uploads a file.
-
-#
-
-print("Hello!")
-
-# receive form from main website
-
-# contact model in directory and get response from it - store in variable
-
-# return response by ml back into db.
\ No newline at end of file
+import sys
+import subprocess
+
+result = subprocess.run(
+    [sys.executable, f'./mlModels/modelName/{sys.argv[1]}.py', sys.argv[2], sys.argv[3]],
+    capture_output=True,
+    text=True
+)
+
+# Error Handling
+if result.returncode != 0:
+    print("Script Failed")
+    print(result.stderr)
+else:
+    print(result.stdout)
\ No newline at end of file
diff --git a/ActualProjectCode/DjangoProject/requirements.txt b/ActualProjectCode/DjangoProject/requirements.txt
index 734c063ee9348a185bb8e0a7cdd7cba2ab6546c7..49c06b391ca58d0d3525cc8bb877f1ce64d6d681 100644
Binary files a/ActualProjectCode/DjangoProject/requirements.txt and b/ActualProjectCode/DjangoProject/requirements.txt differ
diff --git a/ActualProjectCode/DjangoProject/server/urls.py b/ActualProjectCode/DjangoProject/server/urls.py
index f79a9058818a40bdfdd9ab3ae2af2cc73bb23d09..71cffa888de5afa4c99909f8e6cf693535c8ba58 100644
--- a/ActualProjectCode/DjangoProject/server/urls.py
+++ b/ActualProjectCode/DjangoProject/server/urls.py
@@ -45,5 +45,4 @@ urlpatterns = [
     path('modelForms/interactionView/', views.interactionView, name="interactionView"),
     path('modelForms/billingsView/', views.billingsView, name="billingsView"),
     path('modelForms/deleteBillings/<str:billingID>', views.deleteBillings, name="deleteBillings"),
-
 ]
\ No newline at end of file
diff --git a/ActualProjectCode/DjangoProject/templates/profile.html b/ActualProjectCode/DjangoProject/templates/profile.html
index f30bd27e42884d436ad801e8b630a754dcb476db..4c2a182fd53269c23b14ba893977239079ca88d4 100644
--- a/ActualProjectCode/DjangoProject/templates/profile.html
+++ b/ActualProjectCode/DjangoProject/templates/profile.html
@@ -194,7 +194,7 @@
                 <p>Manage your tasks and profile.</p>
                 <hr>
                 <h2>Upload Files to ML</h2>
-                <h1><a href="{% url 'userUpload' %}">Upload Thing</a></h1>
+                <h1><a href="{% url 'userUpload' %}">Upload CSV</a></h1>
 
             {% endif %}