Index: kupi-mk/backend/routes/users.js
===================================================================
--- kupi-mk/backend/routes/users.js	(revision c3904bd1b397a993305af9f3a3d2338d73d7288f)
+++ kupi-mk/backend/routes/users.js	(revision bfc4bbc3a64bdafba2745cc5cc1af602bae674ec)
@@ -48,3 +48,64 @@
 });
 
+// Update user profile
+router.put('/profile', auth, async (req, res) => {
+  try {
+    const userId = req.user.userId;
+    const { username, first_name, last_name, phone, address } = req.body;
+
+    // Check if username is already taken by another user
+    if (username) {
+      const existingUser = await pool.query(
+        'SELECT id FROM users WHERE username = $1 AND id != $2',
+        [username, userId]
+      );
+      
+      if (existingUser.rows.length > 0) {
+        return res.status(400).json({ message: 'Username is already taken' });
+      }
+    }
+
+    const updatedUser = await pool.query(`
+      UPDATE users 
+      SET username = $1, first_name = $2, last_name = $3, phone = $4, address = $5, updated_at = NOW()
+      WHERE id = $6
+      RETURNING id, username, email, first_name, last_name, phone, address, is_seller, created_at
+    `, [username, first_name, last_name, phone, address, userId]);
+
+    if (updatedUser.rows.length === 0) {
+      return res.status(404).json({ message: 'User not found' });
+    }
+
+    res.json(updatedUser.rows[0]);
+
+  } catch (err) {
+    console.error(err);
+    res.status(500).json({ message: 'Server error' });
+  }
+});
+
+// Update user to become seller
+router.patch('/become-seller', auth, async (req, res) => {
+  try {
+    const userId = req.user.userId;
+
+    const updatedUser = await pool.query(`
+      UPDATE users 
+      SET is_seller = true, updated_at = NOW()
+      WHERE id = $1
+      RETURNING id, username, email, first_name, last_name, phone, address, is_seller, created_at
+    `, [userId]);
+
+    if (updatedUser.rows.length === 0) {
+      return res.status(404).json({ message: 'User not found' });
+    }
+
+    res.json(updatedUser.rows[0]);
+
+  } catch (err) {
+    console.error(err);
+    res.status(500).json({ message: 'Server error' });
+  }
+});
+
 module.exports = router;
Index: kupi-mk/frontend/src/pages/Home.js
===================================================================
--- kupi-mk/frontend/src/pages/Home.js	(revision c3904bd1b397a993305af9f3a3d2338d73d7288f)
+++ kupi-mk/frontend/src/pages/Home.js	(revision bfc4bbc3a64bdafba2745cc5cc1af602bae674ec)
@@ -1,8 +1,12 @@
 import React, { useState, useEffect } from 'react';
+import { useNavigate } from 'react-router-dom';
 import { useProducts } from '../context/ProductContext';
+import { useAuth } from '../context/AuthContext';
 import ProductCard from '../components/ProductCard';
 
 const Home = () => {
+  const navigate = useNavigate();
   const { products, loading, fetchProducts, categories, fetchCategories } = useProducts();
+  const { user, isAuthenticated } = useAuth();
   const [selectedCategory, setSelectedCategory] = useState('');
   const [searchTerm, setSearchTerm] = useState('');
@@ -27,4 +31,12 @@
     if (searchTerm) filters.search = searchTerm;
     fetchProducts(filters);
+  };
+
+  const handleBecomeSeller = () => {
+    if (isAuthenticated()) {
+      navigate('/profile');
+    } else {
+      navigate('/login');
+    }
   };
 
@@ -108,6 +120,7 @@
             {selectedCategory ? 'Филтрирани производи' : 'Најнови производи'}   
           </h2>
+           {/* prikazuva broj na proizvodi */}
           <span className="text-gray-600">
-            {products.length} производи        // prikazuva broj na proizvodi
+            {products.length} производи        
           </span>
         </div>
@@ -144,16 +157,21 @@
       </div>
 
-      {/* Call to Action */}
-      <div className="bg-primary-50 rounded-lg p-8 text-center">
-        <h3 className="text-2xl font-bold text-gray-900 mb-4">
-          Продавате производи?
-        </h3>
-        <p className="text-gray-600 mb-6">
-          Придружете се на нашата платформа и достигнете до илјадници потенцијални купувачи
-        </p>
-        <button className="btn-primary text-lg px-8 py-3">
-          Започнете да продавате
-        </button>
-      </div>
+      {/* Call to Action - Only show for non-sellers */}
+      {(!isAuthenticated() || !user?.is_seller) && (
+        <div className="bg-primary-50 rounded-lg p-8 text-center">
+          <h3 className="text-2xl font-bold text-gray-900 mb-4">
+            Продавате производи?
+          </h3>
+          <p className="text-gray-600 mb-6">
+            Придружете се на нашата платформа и достигнете до илјадници потенцијални купувачи
+          </p>
+          <button 
+            onClick={handleBecomeSeller}
+            className="btn-primary text-lg px-8 py-3"
+          >
+            Започнете да продавате
+          </button>
+        </div>
+      )}
     </div>
   );
Index: kupi-mk/frontend/src/pages/ProductDetail.js
===================================================================
--- kupi-mk/frontend/src/pages/ProductDetail.js	(revision c3904bd1b397a993305af9f3a3d2338d73d7288f)
+++ kupi-mk/frontend/src/pages/ProductDetail.js	(revision bfc4bbc3a64bdafba2745cc5cc1af602bae674ec)
@@ -42,4 +42,27 @@
       setTimeout(() => setShowShareMessage(false), 3000);
     });
+  };
+
+  const handleEmailContact = () => {
+    if (product.email) {
+      const subject = `Интерес за: ${product.title}`;
+      const body = `Здраво ${product.first_name},\n\nЗаинтересиран/а сум за вашиот производ "${product.title}".\n\nЛинк на производот: ${window.location.href}\n\nВи благодарам!\n`;
+      const mailtoLink = `mailto:${product.email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
+      window.location.href = mailtoLink;
+    } else {
+      alert('Email адресата на продавачот не е достапна');
+    }
+  };
+
+  const handleWhatsAppContact = () => {
+    if (product.phone) {
+      // Remove any non-digit characters from phone number
+      const cleanPhone = product.phone.replace(/\D/g, '');
+      const message = `Здраво! Заинтересиран/а сум за вашиот производ "${product.title}". Линк: ${window.location.href}`;
+      const whatsappUrl = `https://wa.me/${cleanPhone}?text=${encodeURIComponent(message)}`;
+      window.open(whatsappUrl, '_blank');
+    } else {
+      alert('Телефонскиот број на продавачот не е достапен');
+    }
   };
 
@@ -350,10 +373,16 @@
             {/* Contact Buttons */}
             <div className="space-y-3">
-              <button className="w-full bg-primary-600 hover:bg-primary-700 text-white font-bold py-3 px-6 rounded-lg transition-colors">
-                Контактирај го продавачот
+              <button 
+                onClick={handleEmailContact}
+                className="w-full bg-primary-600 hover:bg-primary-700 text-white font-bold py-3 px-6 rounded-lg transition-colors"
+              >
+                📧 Контактирај го продавачот
               </button>
               
-              <button className="w-full bg-green-600 hover:bg-green-700 text-white font-bold py-3 px-6 rounded-lg transition-colors">
-                Пораќај преку WhatsApp
+              <button 
+                onClick={handleWhatsAppContact}
+                className="w-full bg-green-600 hover:bg-green-700 text-white font-bold py-3 px-6 rounded-lg transition-colors"
+              >
+                📱 Пораќај преку WhatsApp
               </button>
               
Index: kupi-mk/frontend/src/pages/Profile.js
===================================================================
--- kupi-mk/frontend/src/pages/Profile.js	(revision c3904bd1b397a993305af9f3a3d2338d73d7288f)
+++ kupi-mk/frontend/src/pages/Profile.js	(revision bfc4bbc3a64bdafba2745cc5cc1af602bae674ec)
@@ -5,8 +5,17 @@
 
 const Profile = () => {
-  const { user } = useAuth();
+  const { user, setUser } = useAuth();
   const navigate = useNavigate();
   const [userProducts, setUserProducts] = useState([]);
   const [loading, setLoading] = useState(true);
+  const [isEditModalOpen, setIsEditModalOpen] = useState(false);
+  const [editForm, setEditForm] = useState({
+    username: '',
+    first_name: '',
+    last_name: '',
+    phone: '',
+    address: ''
+  });
+  const [isUpdating, setIsUpdating] = useState(false);
 
   const fetchUserProducts = async () => {
@@ -69,4 +78,49 @@
   };
 
+  const handleEditProfile = () => {
+    setEditForm({
+      username: user?.username || '',
+      first_name: user?.first_name || '',
+      last_name: user?.last_name || '',
+      phone: user?.phone || '',
+      address: user?.address || ''
+    });
+    setIsEditModalOpen(true);
+  };
+
+  const handleUpdateProfile = async (e) => {
+    e.preventDefault();
+    setIsUpdating(true);
+
+    try {
+      const response = await api.put('/users/profile', editForm);
+      setUser(response.data);
+      setIsEditModalOpen(false);
+      alert('Профилот е успешно ажуриран!');
+    } catch (error) {
+      console.error('Error updating profile:', error);
+      if (error.response?.data?.message === 'Username is already taken') {
+        alert('Корисничкото име е веќе зафатено. Обидете се со друго.');
+      } else {
+        alert('Грешка при ажурирање на профилот');
+      }
+    } finally {
+      setIsUpdating(false);
+    }
+  };
+
+  const handleBecomeSeller = async () => {
+    if (window.confirm('Дали сакате да станете продавач? Ова ќе ви овозможи да објавувате производи.')) {
+      try {
+        const response = await api.patch('/users/become-seller');
+        setUser(response.data);
+        alert('Успешно станавте продавач!');
+      } catch (error) {
+        console.error('Error becoming seller:', error);
+        alert('Грешка при станување продавач');
+      }
+    }
+  };
+
   useEffect(() => {
     fetchUserProducts();
@@ -104,7 +158,21 @@
           </div>
           
-          <button className="btn-secondary">
-            Уреди профил
-          </button>
+          <div className="flex space-x-3">
+            <button 
+              onClick={handleEditProfile}
+              className="btn-secondary"
+            >
+              Уреди профил
+            </button>
+            
+            {!user?.is_seller && (
+              <button 
+                onClick={handleBecomeSeller}
+                className="btn-primary"
+              >
+                Стани продавач
+              </button>
+            )}
+          </div>
         </div>
         
@@ -242,4 +310,99 @@
         )}
       </div>
+
+      {/* Edit Profile Modal */}
+      {isEditModalOpen && (
+        <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
+          <div className="bg-white rounded-lg p-6 w-full max-w-md mx-4">
+            <h3 className="text-xl font-bold text-gray-900 mb-4">Уреди профил</h3>
+            
+            <form onSubmit={handleUpdateProfile} className="space-y-4">
+              <div>
+                <label className="block text-sm font-medium text-gray-700 mb-1">
+                  Корисничко име (@име)
+                </label>
+                <input
+                  type="text"
+                  value={editForm.username}
+                  onChange={(e) => setEditForm({ ...editForm, username: e.target.value })}
+                  className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
+                  required
+                  placeholder="korisnicko_ime"
+                />
+              </div>
+              
+              <div>
+                <label className="block text-sm font-medium text-gray-700 mb-1">
+                  Име
+                </label>
+                <input
+                  type="text"
+                  value={editForm.first_name}
+                  onChange={(e) => setEditForm({ ...editForm, first_name: e.target.value })}
+                  className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
+                  required
+                />
+              </div>
+              
+              <div>
+                <label className="block text-sm font-medium text-gray-700 mb-1">
+                  Презиме
+                </label>
+                <input
+                  type="text"
+                  value={editForm.last_name}
+                  onChange={(e) => setEditForm({ ...editForm, last_name: e.target.value })}
+                  className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
+                  required
+                />
+              </div>
+              
+              <div>
+                <label className="block text-sm font-medium text-gray-700 mb-1">
+                  Телефон
+                </label>
+                <input
+                  type="tel"
+                  value={editForm.phone}
+                  onChange={(e) => setEditForm({ ...editForm, phone: e.target.value })}
+                  className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
+                  placeholder="070 123 456"
+                />
+              </div>
+              
+              <div>
+                <label className="block text-sm font-medium text-gray-700 mb-1">
+                  Адреса
+                </label>
+                <input
+                  type="text"
+                  value={editForm.address}
+                  onChange={(e) => setEditForm({ ...editForm, address: e.target.value })}
+                  className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"
+                  placeholder="Град, улица..."
+                />
+              </div>
+              
+              <div className="flex space-x-3 pt-4">
+                <button
+                  type="button"
+                  onClick={() => setIsEditModalOpen(false)}
+                  className="flex-1 px-4 py-2 text-gray-600 border border-gray-300 rounded-md hover:bg-gray-50 transition-colors"
+                  disabled={isUpdating}
+                >
+                  Откажи
+                </button>
+                <button
+                  type="submit"
+                  className="flex-1 bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700 transition-colors disabled:opacity-50"
+                  disabled={isUpdating}
+                >
+                  {isUpdating ? 'Се зачувува...' : 'Зачувај'}
+                </button>
+              </div>
+            </form>
+          </div>
+        </div>
+      )}
     </div>
   );
