diff --git a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java
index daecfe86b571e66ac747e8763191747829123f52..1005fac412d47839512588dbf82a5b9093395d84 100644
--- a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java
+++ b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java
@@ -93,7 +93,7 @@ public class FeedApisController {
         }
     }
     // updating the post
-    @PutMapping("/{postId}")
+    @PatchMapping("/{postId}")
     public ResponseEntity<Void> updatePost(@PathVariable int postId, @RequestBody FeedImpl feed) {
         try {
             feedRepository.updatePost(postId, feed);
diff --git a/src/main/java/polish_community_group_11/polish_community/feed/repository/FeedRepositoryImpl.java b/src/main/java/polish_community_group_11/polish_community/feed/repository/FeedRepositoryImpl.java
index bb2037c7307c00dfab996624863794fe3253e25c..2686d3efd33bed04027571c19aff85a53ccebab0 100644
--- a/src/main/java/polish_community_group_11/polish_community/feed/repository/FeedRepositoryImpl.java
+++ b/src/main/java/polish_community_group_11/polish_community/feed/repository/FeedRepositoryImpl.java
@@ -77,20 +77,19 @@ public class FeedRepositoryImpl implements FeedRepository {
     // update a post that is editing
     @Override
     public void updatePost(int postId, FeedImpl feed) {
-        String sql = "UPDATE feed SET post_image_url = ?, post_title = ?, post_description = ?, " +
-                "post_author = ?, post_time = ?, author_title = ? WHERE post_id = ?";
+        String sql = "UPDATE feed SET post_title = ?, post_description = ? WHERE post_id = ?";
 
         jdbcTemplate.update(sql,
-                feed.getPostImageUrl(),
                 feed.getPostTitle(),
                 feed.getPostDescription(),
-                java.sql.Date.valueOf(feed.getPostTime()),
                 postId
         );
 
         // update the tags
         jdbcTemplate.update("DELETE FROM feed_tags WHERE post_id = ?", postId);
-        insertTagsForPost(postId, feed.getTags());
+        if (feed.getTags() != null && !feed.getTags().isEmpty()) {
+            insertTagsForPost(postId, feed.getTags());
+        }
     }
 
     // deleting a post
diff --git a/src/main/resources/static/js/feed/feed.js b/src/main/resources/static/js/feed/feed.js
index 2de2bed6a9aca5402445e899b0efa8b5e14806e1..75330a347b2d75b892ddad050b2a75853a0ee8a0 100644
--- a/src/main/resources/static/js/feed/feed.js
+++ b/src/main/resources/static/js/feed/feed.js
@@ -1,25 +1,35 @@
 const API_BASE_URL = '/api/feed';
 
-
 const postFeed = document.getElementById('postFeed');
 const postTemplate = document.getElementById('post-template');
 const addNewPost = document.getElementById('add-post');
 const closeModalBtn = document.getElementById('closeModalBtn');
 const modal = document.getElementById('create-new-modal');
+const postForm = document.getElementById('post-form');
 
-
-addNewPost.addEventListener('click',  () => {
-    modal.style.display = 'flex'
-})
-
-closeModalBtn.addEventListener('click', () => {
-    modal.style.display = 'none' +
-        ''
-})
+let isEditing = false;
+let editPostId = null;
 
 // maintaining state
 let posts = [];
 
+// had issues with form so func to reset it
+function resetForm() {
+    postForm.reset();
+    isEditing = false;
+    editPostId = null;
+}
+
+addNewPost.addEventListener('click', () => {
+    resetForm();
+    modal.style.display = 'flex';
+});
+
+closeModalBtn.addEventListener('click', () => {
+    modal.style.display = 'none';
+    resetForm();
+});
+
 // getting all posts using api
 async function fetchPosts() {
     try {
@@ -32,8 +42,6 @@ async function fetchPosts() {
     }
 }
 
-
-
 // render all posts after getting them
 function renderPosts() {
     postFeed.innerHTML = ''; // clear any posts
@@ -141,14 +149,11 @@ async function handleLike(postId, likeCountElement) {
     }
 }
 
-//* ************************* Submitting the form *********************** *//
-const postForm = document.getElementById('post-form');
-
-
-postForm.addEventListener('submit', (event) => {
+// handling form submission  whether update or post
+postForm.addEventListener('submit', async (event) => {
     event.preventDefault();
 
-    // getting form data,
+    // getting form data
     const postTitle = document.getElementById('postTitle').value;
     const postDescription = document.getElementById('postDescription').value;
     const postTagsInput = document.getElementById('postTags').value;
@@ -157,44 +162,82 @@ postForm.addEventListener('submit', (event) => {
     const tags = postTagsInput
         .split(',')
         .map(tag => tag.trim())
-        .filter(tag => tag.length > 0); // removing empty tags
+        .filter(tag => tag.length > 0);
 
     const data = {
         postTitle,
         postDescription,
-        tags // sending as array
+        tags
     };
 
-    console.log('Submitting post:', data);
-
-    // Send post request
-    fetch(`${API_BASE_URL}/add`, {
-        method: 'POST',
-        headers: {
-            'Content-Type': 'application/json',
-        },
-        credentials: 'include',
-        body: JSON.stringify(data)
-    })
-        .then(response => {
-            if (!response.ok) {
-                throw new Error('Network response was not ok');
-            }
-            return response.text();
-        })
-        .then(result => {
-            alert('Post added successfully');
-            modal.style.display = 'none';
-            fetchPosts();
-        })
-        .catch(error => {
-            console.error('Error adding post:', error);
-            alert('Error adding post. Please try again.');
+    try {
+        let url = `${API_BASE_URL}/add`;
+        let method = 'POST';
+
+        // if it is edit change endpoint
+        if (isEditing && editPostId) {
+            url = `${API_BASE_URL}/${editPostId}`;
+            method = 'PATCH';
+        }
+
+        const response = await fetch(url, {
+            method: method,
+            headers: {
+                'Content-Type': 'application/json',
+            },
+            credentials: 'include',
+            body: JSON.stringify(data)
         });
+
+        if (!response.ok) {
+            throw new Error('Network response was not ok');
+        }
+
+        alert(isEditing ? 'Post updated successfully' : 'Post added successfully');
+        modal.style.display = 'none';
+        resetForm();
+        fetchPosts();
+    } catch (error) {
+        console.error('Error:', error);
+        alert(isEditing ? 'Error updating post' : 'Error adding post');
+    }
+});
+
+// onclick handling for edit
+document.addEventListener('click', async (event) => {
+    const editButton = event.target.closest('.edit-post');
+    if (!editButton) return;
+
+    const postDiv = editButton.closest('.post');
+    const postId = postDiv.dataset.postId;
+
+    try {
+        const response = await fetch(`${API_BASE_URL}/${postId}`);
+        if (!response.ok) throw new Error('Failed to fetch post data');
+
+        const postData = await response.json();
+
+        // set edit state ti true
+        isEditing = true;
+        editPostId = postId;
+
+
+        document.getElementById('postTitle').value = postData.postTitle;
+        document.getElementById('postDescription').value = postData.postDescription;
+        document.getElementById('postTags').value = postData.tags.join(', ');
+
+
+        modal.style.display = 'flex';
+    } catch (error) {
+        console.error('Error fetching post data:', error);
+        alert('Error fetching post data. Please try again.');
+    }
 });
+
+// initialize on page load posts on page load
 document.addEventListener('DOMContentLoaded', () => {
     fetchPosts();
 });
 
-// refresh posts each minute , though cannot show at moment since not online
+//  refresh posts periodically
 // setInterval(fetchPosts, 60000);
\ No newline at end of file