Index: kupi-mk/backend/routes/orders.js
===================================================================
--- kupi-mk/backend/routes/orders.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/backend/routes/orders.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -364,5 +364,5 @@
         // - We select orders that contain at least one product from this seller (`p.seller_id = $1`).
         // - We aggregate product titles and the item count for quick overview in the dashboard.
-        // - Note: we avoid aggregating JSON blobs here to keep GROUP BY safe and portable across Postgres versions.
+    
         const ordersResult = await pool.query(`
             SELECT DISTINCT
@@ -395,6 +395,4 @@
         
         // Then get order items for each order
-        // - We query order_items separately to fetch item-level details and a single image per product
-        // - This avoids grouping JSON columns and gives us full control over returned fields
         const orders = [];
         for (const order of ordersResult.rows) {
@@ -443,6 +441,5 @@
 // Update order status (for seller dashboard)
 router.put('/admin/:orderId/status', auth, async (req, res) => {
-    const client = await pool.connect();
-    
+    const client = await pool.connect();  // се поврзува со базата
     try {
         await client.query('BEGIN');
Index: kupi-mk/backend/routes/products.js
===================================================================
--- kupi-mk/backend/routes/products.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/backend/routes/products.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -10,8 +10,10 @@
 router.get('/', optionalAuth, async (req, res) => {
   try {
-    const { category, search, page = 1, limit = 12, seller } = req.query;
+    const { category, search, page = 1, limit = 12, seller } = req.query;   // gi zema filtrite
     const offset = (page - 1) * limit;
-
-    let query = `
+    // limit-kolku produkti da vrati, a offset e od koj produkt da pocne da pokazuva
+
+    // kreira osnovna baza kade ke gi zacuvuva podatocite
+    let query = `         
       SELECT p.*, c.name as category_name, 
              u.username as seller_name, u.first_name, u.last_name
@@ -24,5 +26,5 @@
     let paramCount = 0;
 
-    if (category) {
+    if (category) {    // Ako ima kategorija, dodaj filter vo bazata i parametar.
       paramCount++;
       query += ` AND p.category_id = $${paramCount}`;
@@ -37,20 +39,23 @@
 
     if (seller) {
-      paramCount++;
+      paramCount++;       // brojac za kolku filteri/search ima i tolku da ima i redovi vo bazata
       query += ` AND p.seller_id = $${paramCount}`;
       queryParams.push(seller);
     }
 
+      // sortiraj po datum i najnovite stavi gi prvi
     query += ` ORDER BY p.created_at DESC LIMIT $${paramCount + 1} OFFSET $${paramCount + 2}`;
-    queryParams.push(limit, offset);
-
-    const products = await pool.query(query, queryParams);
-
+    queryParams.push(limit, offset);  // gi dodava parametrite
+
+    const products = await pool.query(query, queryParams);   // praka baranje do baza i ceka rezultat
+    // lista od produkti koi odgovaraat na selektiranite filtri, i varka i limit i offset
+    
     // Get total count for pagination
     let countQuery = `SELECT COUNT(*) FROM products p WHERE p.is_active = true`;
-    const countParams = [];
+    // countQuery e za da se vidi kolku vkupno produkti ima so izbranite filtri
+    const countParams = [];   //koi se filtrite
     let countParamCount = 0;
 
-    if (category) {
+    if (category) {  
       countParamCount++;
       countQuery += ` AND p.category_id = $${countParamCount}`;
@@ -70,6 +75,7 @@
     }
 
-    const totalCount = await pool.query(countQuery, countParams);
-
+    const totalCount = await pool.query(countQuery, countParams);  // vkupen broj na produkti so izbranite filtri
+    // gi sobira brojot na produkti od sekoj soodveten filter
+    
     res.json({
       products: products.rows,
@@ -93,6 +99,6 @@
   try {
     const { id } = req.params;
-
-    const product = await pool.query(`
+     // go zema produktot so toa id od baza
+    const product = await pool.query(`  
       SELECT p.*, c.name as category_name, 
              u.username as seller_name, u.first_name, u.last_name, u.phone, u.email
@@ -103,9 +109,11 @@
     `, [id]);
 
+    // Proveri dali produktot postoi
     if (product.rows.length === 0) {
       return res.status(404).json({ message: 'Product not found' });
     }
 
-    res.json(product.rows[0]);
+    // Go vraka produktot
+    res.json(product.rows[0]);   // product.rows[0] e prviot (i edinstven) rezultat
 
   } catch (err) {
@@ -215,5 +223,5 @@
 });
 
-// Delete product (requires authentication and ownership)
+// Deactivate product (requires authentication and ownership)
 router.delete('/:id', auth, async (req, res) => {
   try {
@@ -221,5 +229,5 @@
     const sellerId = req.user.userId;
 
-    const deletedProduct = await pool.query(
+    const deletedProduct = await pool.query(    // samo go deaktivira produktot
       'UPDATE products SET is_active = false WHERE id = $1 AND seller_id = $2 RETURNING *',
       [id, sellerId]
Index: kupi-mk/backend/routes/reviews.js
===================================================================
--- kupi-mk/backend/routes/reviews.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/backend/routes/reviews.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -13,7 +13,7 @@
         const offset = (page - 1) * limit;
         
-        let orderClause = 'pr.created_at DESC';
-        
-        switch (sortBy) {
+        let orderClause = 'pr.created_at DESC';      
+        
+        switch (sortBy) {      // kako da gi sortira
             case 'oldest':
                 orderClause = 'pr.created_at ASC';
@@ -32,5 +32,6 @@
         }
         
-        const result = await pool.query(`
+        //gi sortira
+        const result = await pool.query(`           
             SELECT 
                 pr.*,
@@ -139,4 +140,5 @@
         const verifiedPurchase = purchaseResult.rows.length > 0;
         
+        //dodavanje na review
         const result = await pool.query(`
             INSERT INTO product_reviews (product_id, user_id, rating, title, comment, verified_purchase)
Index: kupi-mk/frontend/src/components/Navbar.js
===================================================================
--- kupi-mk/frontend/src/components/Navbar.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/components/Navbar.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -4,4 +4,5 @@
 import CartIcon from './CartIcon';
 import CartSidebar from './CartSidebar';
+import logo from '../images/logo.jpg';
 
 const Navbar = () => {
@@ -20,11 +21,18 @@
         <div className="flex justify-between items-center h-16">
           {/* Logo */}
-          <Link to="/" className="flex items-center space-x-2">
-            <div className="text-2xl font-bold text-primary-600">
-              Kupi.mk
+          <Link to="/" className="flex items-center space-x-3">
+            <img 
+              src={logo} 
+              alt="Kupi.mk Logo" 
+              className="h-10 w-10 object-cover rounded-lg"
+            />
+            <div className="flex flex-col">
+              <div className="text-2xl font-bold text-primary-600">
+                Kupi.mk
+              </div>
+              <span className="text-sm text-gray-500 hidden md:block">
+                Локални производи
+              </span>
             </div>
-            <span className="text-sm text-gray-500 hidden md:block">
-              Локални производи
-            </span>
           </Link>
 
Index: kupi-mk/frontend/src/context/AuthContext.js
===================================================================
--- kupi-mk/frontend/src/context/AuthContext.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/context/AuthContext.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -13,5 +13,5 @@
 
 export const AuthProvider = ({ children }) => {
-  const [user, setUser] = useState(null);
+  const [user, setUser] = useState(null);  // Korisnikot (null ako ne e logiran)
   const [loading, setLoading] = useState(true);
 
@@ -21,5 +21,5 @@
     
     if (token && userData) {
-      setUser(JSON.parse(userData));
+      setUser(JSON.parse(userData)); // Postavuva korisnikot ako postoi
     }
     setLoading(false);
Index: kupi-mk/frontend/src/context/ProductContext.js
===================================================================
--- kupi-mk/frontend/src/context/ProductContext.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/context/ProductContext.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -28,7 +28,7 @@
       });
 
-      const response = await api.get(`/products?${params}`);
+      const response = await api.get(`/products?${params}`);   //baranjeto go praka do serverot (backend)
       setProducts(response.data.products);
-      setPagination(response.data.pagination);
+      setPagination(response.data.pagination);     //kolku strani da ima za da gi prikaze site produkti
       return { success: true, data: response.data };
     } catch (error) {
@@ -43,5 +43,5 @@
     try {
       const response = await api.get(`/products/${id}`);
-      return { success: true, data: response.data };
+      return { success: true, data: response.data };   //vraka podatoci za toj produkt
     } catch (error) {
       return { 
@@ -57,7 +57,7 @@
       
       // Append regular fields
-      Object.keys(productData).forEach(key => {
-        if (key !== 'images') {
-          formData.append(key, productData[key]);
+      Object.keys(productData).forEach(key => {    // za sekoj kluc, t.e. atribut vo productData(ime,cena,sliki...) 
+        if (key !== 'images') {                    // ako ne e slika, go dodava
+          formData.append(key, productData[key]); 
         }
       });
@@ -70,11 +70,11 @@
       }
 
-      const response = await api.post('/products', formData, {
+      const response = await api.post('/products', formData, {   //go praka produktot do serverot
         headers: {
-          'Content-Type': 'multipart/form-data',
+          'Content-Type': 'multipart/form-data',   //deka vo formData ima i fajlovi(sliki), ne e samo tekst
         },
       });
 
-      return { success: true, data: response.data };
+      return { success: true, data: response.data };  
     } catch (error) {
       return { 
Index: kupi-mk/frontend/src/pages/Home.js
===================================================================
--- kupi-mk/frontend/src/pages/Home.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/pages/Home.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -68,5 +68,44 @@
               {categories.map(category => (
                 <option key={category.id} value={category.id}>
-                  {category.name}
+                  {category.name}<div className="mb-8">
+        <div className="flex justify-between items-center mb-6">
+          <h2 className="text-2xl font-bold text-gray-900">
+            {selectedCategory ? 'Филтрирани производи' : 'Најнови производи'}
+          </h2>
+          <span className="text-gray-600">
+            {products.length} производи
+          </span>
+        </div>
+
+        {loading ? (
+          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
+            {[...Array(8)].map((_, i) => (
+              <div key={i} className="bg-white rounded-lg shadow-md overflow-hidden animate-pulse">
+                <div className="h-48 bg-gray-300"></div>
+                <div className="p-4">
+                  <div className="h-4 bg-gray-300 rounded mb-2"></div>
+                  <div className="h-3 bg-gray-300 rounded mb-3"></div>
+                  <div className="h-4 bg-gray-300 rounded w-1/2"></div>
+                </div>
+              </div>
+            ))}
+          </div>
+        ) : products.length > 0 ? (
+          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
+            {products.map(product => (
+              <ProductCard key={product.id} product={product} />
+            ))}
+          </div>
+        ) : (
+          <div className="text-center py-12">
+            <div className="text-gray-500 text-lg mb-4">
+              Нема најдени производи
+            </div>
+            <p className="text-gray-400">
+              Пробајте со различни критериуми за пребарување
+            </p>
+          </div>
+        )}
+      </div>
                 </option>
               ))}
@@ -106,14 +145,14 @@
         <div className="flex justify-between items-center mb-6">
           <h2 className="text-2xl font-bold text-gray-900">
-            {selectedCategory ? 'Филтрирани производи' : 'Најнови производи'}
+            {selectedCategory ? 'Филтрирани производи' : 'Најнови производи'}   
           </h2>
           <span className="text-gray-600">
-            {products.length} производи
+            {products.length} производи        // prikazuva broj na proizvodi
           </span>
         </div>
 
-        {loading ? (
-          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
-            {[...Array(8)].map((_, i) => (
+        {loading ? (    // ako se vcituvaat produktite, prikazuva placeholderi
+          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
+            {[...Array(8)].map((_, i) => (        // prikazuva mreza od produkti
               <div key={i} className="bg-white rounded-lg shadow-md overflow-hidden animate-pulse">
                 <div className="h-48 bg-gray-300"></div>
@@ -126,11 +165,11 @@
             ))}
           </div>
-        ) : products.length > 0 ? (
-          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
-            {products.map(product => (
+        ) : products.length > 0 ? (        // ako ima produkti, gi prikazuva
+          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
+            {products.map(product => (        // za sekoj produkt pravi karticka
               <ProductCard key={product.id} product={product} />
             ))}
           </div>
-        ) : (
+        ) : (    // ako nema produkti
           <div className="text-center py-12">
             <div className="text-gray-500 text-lg mb-4">
Index: kupi-mk/frontend/src/pages/ProductDetail.js
===================================================================
--- kupi-mk/frontend/src/pages/ProductDetail.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/pages/ProductDetail.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -93,5 +93,5 @@
   const handleReviewAdded = (newReview) => {
     setReviews(prev => [newReview, ...prev]);
-    setShowReviewForm(false);
+    setShowReviewForm(false);   // ja zatvara formata
     setTotalReviews(prev => prev + 1);
     // Recalculate average rating
Index: kupi-mk/frontend/src/pages/SellerDashboard.js
===================================================================
--- kupi-mk/frontend/src/pages/SellerDashboard.js	(revision 64ca6dd31aef9f30d26987b715072b0551813570)
+++ kupi-mk/frontend/src/pages/SellerDashboard.js	(revision 4b6b016fa8d45366d7f7b9dae3c149b07fd0fde2)
@@ -68,4 +68,5 @@
         }
     };
+    
 
     // ----- UI helpers -----
