Index: jobvista-frontend/src/redux/actions/applicationActions.js
===================================================================
--- jobvista-frontend/src/redux/actions/applicationActions.js	(revision 08f82ec612b1b125feec3dcd5c8c0f1062f09e18)
+++ jobvista-frontend/src/redux/actions/applicationActions.js	(revision 4d97b633e131eca76d6c290321725684fc1d5970)
@@ -3,6 +3,6 @@
     CURRENT_USER,
     FETCH_APPLICATIONS_BY_JOB_ID,
-    FETCH_APPLICATIONS_BY_JOB_SEEKER_ID,
-    SUBMIT_APPLICATION, UPDATE_APPLICATION_STATUS
+    FETCH_APPLICATIONS_BY_JOB_SEEKER_ID, FILTER_APPLICATIONS_BY_JOB_ID, FILTER_APPLICATIONS_BY_JOB_SEEKER_ID,
+    SUBMIT_APPLICATION, UPDATE_APPLICATION, UPDATE_APPLICATION_STATUS, UPDATE_APPLICATIONS
 } from "../actionTypes";
 
@@ -18,4 +18,25 @@
                     dispatch({
                         type: SUBMIT_APPLICATION,
+                        application: response.data
+                    })
+                    callback(true, response)
+                }).catch(error => {
+                callback(false, error)
+                console.log(error)
+            })
+        }
+    },
+
+    updateApplication: (applicationId, additionalFiles, callback) => {
+        console.log(additionalFiles)
+        return dispatch => {
+            axios.post("/applications/"+ applicationId + "/update", additionalFiles, {
+                headers: {
+                    'Content-Type': 'multipart/form-data'
+                }
+            })
+                .then(response => {
+                    dispatch({
+                        type: UPDATE_APPLICATION,
                         application: response.data
                     })
@@ -45,4 +66,20 @@
         }
     },
+
+    updateApplications: (changes, callback) => {
+        return dispatch => {
+            axios.post("/applications/update", changes)
+                .then(response => {
+                    dispatch({
+                        type: UPDATE_APPLICATIONS,
+                        applications: response.data
+                    })
+                    callback(true, response)
+                }).catch(error => {
+                callback(false, error)
+            })
+        }
+    },
+
     fetchApplicationsByJobSeeker: (jobSeekerId, callback) => {
         return dispatch => {
@@ -51,4 +88,19 @@
                     dispatch({
                         type: FETCH_APPLICATIONS_BY_JOB_SEEKER_ID,
+                        applicationsByJobSeeker: response.data
+                    })
+                    callback(true, response)
+                }).catch(error => {
+                callback(false, error)
+            })
+        }
+    },
+
+    filterApplicationsByJobSeeker: (jobSeekerId, status, callback) => {
+        return dispatch => {
+            axios.post("/my-applications/" + jobSeekerId + "/filtered", status)
+                .then(response => {
+                    dispatch({
+                        type: FILTER_APPLICATIONS_BY_JOB_SEEKER_ID,
                         applicationsByJobSeeker: response.data
                     })
@@ -75,4 +127,20 @@
         }
     },
+
+    filterApplicationsByJobAdId: (jobAdId, status, callback) => {
+        return dispatch => {
+            axios.post("/job-advertisements/" + jobAdId + "/applications/filtered", status)
+                .then(response => {
+                        dispatch({
+                            type: FILTER_APPLICATIONS_BY_JOB_ID,
+                            applicationsByJobAdId: response.data
+                        })
+                        callback(true, response)
+                    }
+                ).catch(error => {
+                callback(false, error)
+            })
+        }
+    },
     downloadResume: (id, callback) => {
         return axios.get("/applications/" + id + "/download-resume", {responseType: "blob"})
@@ -86,4 +154,15 @@
             })
 
+    },
+    downloadAdditionalFiles: (id, callback) => {
+        return axios.get("/applications/" + id + "/download-additional-files")
+            .then(response => {
+                const urls = response.data; // This will be a list of URLs
+                callback(true, urls);
+            })
+            .catch(error => {
+                callback(false, error);
+            });
+
     }
 }
