Repository: credebl/studio
Pull request #945: refactor: organization list and dashoard components
Author: login: pranalidhanavade
Created: 2025-05-04T18:51:08Z | Merged: 2025-05-05T13:21:11Z

### What

- Implemented organization list to display all organizations in card format associated with user.
- Implemented API call to fetch all organizations associated with user.
- Implement pagination and search functionality on organization list.



Diff:
diff --git a/nextjs/next.config.js b/nextjs/next.config.js
index 86f23bd42..a8e8ff402 100644
--- a/nextjs/next.config.js
+++ b/nextjs/next.config.js
@@ -12,7 +12,10 @@ const nextConfig = {
         hostname: 'api.slingacademy.com',
         port: ''
       }
-    ]
+    ],
+    domains : [
+      'dev-org-logo.s3.ap-south-1.amazonaws.com'
+   ]
   },
   transpilePackages: ['geist']
 };
diff --git a/nextjs/package.json b/nextjs/package.json
index ed5764dd8..3515c80cb 100644
--- a/nextjs/package.json
+++ b/nextjs/package.json
@@ -67,8 +67,10 @@
     "cmdk": "^1.1.1",
     "crypto-js": "^4.2.0",
     "date-fns": "^4.1.0",
+    "dom-to-image": "^2.6.0",
     "eslint": "8.48.0",
     "eslint-config-next": "15.1.0",
+    "ethers": "^6.13.7",
     "formik": "^2.4.6",
     "input-otp": "^1.4.2",
     "kbar": "^0.1.0-beta.45",
@@ -87,11 +89,13 @@
     "react-dropzone": "^14.3.5",
     "react-hook-form": "^7.54.1",
     "react-redux": "^9.2.0",
+    "react-qr-code": "^2.0.15",
     "react-resizable-panels": "^2.1.7",
     "react-responsive": "^10.0.0",
     "recharts": "^2.15.1",
     "redux-persist": "^6.0.0",
     "sharp": "^0.33.5",
+    "socket.io-client": "^4.8.1",
     "sonner": "^1.7.1",
     "sort-by": "^1.2.0",
     "tailwind-merge": "^3.0.2",
diff --git a/nextjs/pnpm-lock.yaml b/nextjs/pnpm-lock.yaml
index 6853d20c0..e4fdf14e3 100644
--- a/nextjs/pnpm-lock.yaml
+++ b/nextjs/pnpm-lock.yaml
@@ -140,12 +140,18 @@ importers:
       date-fns:
         specifier: ^4.1.0
         version: 4.1.0
+      dom-to-image:
+        specifier: ^2.6.0
+        version: 2.6.0
       eslint:
         specifier: 8.48.0
         version: 8.48.0
       eslint-config-next:
         specifier: 15.1.0
         version: 15.1.0(eslint@8.48.0)(typescript@5.7.2)
+      ethers:
+        specifier: ^6.13.7
+        version: 6.13.7
       formik:
         specifier: ^2.4.6
         version: 2.4.6(react@19.0.0)
@@ -197,6 +203,9 @@ importers:
       react-hook-form:
         specifier: ^7.54.1
         version: 7.55.0(react@19.0.0)
+      react-qr-code:
+        specifier: ^2.0.15
+        version: 2.0.15(react@19.0.0)
       react-redux:
         specifier: ^9.2.0
         version: 9.2.0(@types/react@19.0.1)(react@19.0.0)(redux@5.0.1)
@@ -215,6 +224,9 @@ importers:
       sharp:
         specifier: ^0.33.5
         version: 0.33.5
+      socket.io-client:
+        specifier: ^4.8.1
+        version: 4.8.1
       sonner:
         specifier: ^1.7.1
         version: 1.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@@ -294,6 +306,9 @@ importers:
 
 packages:
 
+  '@adraffy/ens-normalize@1.10.1':
+    resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==}
+
   '@alloc/quick-lru@5.2.0':
     resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
     engines: {node: '>=10'}
@@ -570,6 +585,13 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@noble/curves@1.2.0':
+    resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==}
+
+  '@noble/hashes@1.3.2':
+    resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==}
+    engines: {node: '>= 16'}
+
   '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
@@ -1224,6 +1246,9 @@ packages:
   '@simplewebauthn/browser@13.1.0':
     resolution: {integrity: sha512-WuHZ/PYvyPJ9nxSzgHtOEjogBhwJfC8xzYkPC+rR/+8chl/ft4ngjiK8kSU5HtRJfczupyOh33b25TjYbvwAcg==}
 
+  '@socket.io/component-emitter@3.1.2':
+    resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+
   '@swc/counter@0.1.3':
     resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
 
@@ -1382,6 +1407,9 @@ packages:
   '@types/node@22.10.2':
     resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==}
 
+  '@types/node@22.7.5':
+    resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==}
+
   '@types/react-dom@19.0.2':
     resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==}
     peerDependencies:
@@ -1565,6 +1593,9 @@ packages:
     engines: {node: '>=0.4.0'}
     hasBin: true
 
+  aes-js@4.0.0-beta.5:
+    resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==}
+
   ajv@6.12.6:
     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
 
@@ -1859,6 +1890,15 @@ packages:
       supports-color:
         optional: true
 
+  debug@4.3.7:
+    resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+    engines: {node: '>=6.0'}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
+
   debug@4.4.0:
     resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
     engines: {node: '>=6.0'}
@@ -1912,6 +1952,9 @@ packages:
   dom-helpers@5.2.1:
     resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
 
+  dom-to-image@2.6.0:
+    resolution: {integrity: sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==}
+
   dunder-proto@1.0.1:
     resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
     engines: {node: '>= 0.4'}
@@ -1925,6 +1968,13 @@ packages:
   emoji-regex@9.2.2:
     resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
 
+  engine.io-client@6.6.3:
+    resolution: {integrity: sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==}
+
+  engine.io-parser@5.2.3:
+    resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+    engines: {node: '>=10.0.0'}
+
   enhanced-resolve@5.18.1:
     resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
     engines: {node: '>=10.13.0'}
@@ -2085,6 +2135,10 @@ packages:
     resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
     engines: {node: '>=0.10.0'}
 
+  ethers@6.13.7:
+    resolution: {integrity: sha512-qbaJ0uIrjh+huP1Lad2f2QtzW5dcqSVjIzVH6yWB4dKoMuj2WqYz5aMeeQTCNpAKgTJBM5J9vcc2cYJ23UAimQ==}
+    engines: {node: '>=14.0.0'}
+
   eventemitter3@4.0.7:
     resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
 
@@ -3014,6 +3068,9 @@ packages:
     resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
     engines: {node: '>=6'}
 
+  qr.js@0.0.0:
+    resolution: {integrity: sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==}
+
   queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 
@@ -3049,6 +3106,11 @@ packages:
   react-is@18.3.1:
     resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
 
+  react-qr-code@2.0.15:
+    resolution: {integrity: sha512-MkZcjEXqVKqXEIMVE0mbcGgDpkfSdd8zhuzXEl9QzYeNcw8Hq2oVIzDLWuZN2PQBwM5PWjc2S31K8Q1UbcFMfw==}
+    peerDependencies:
+      react: '*'
+
   react-redux@9.2.0:
     resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==}
     peerDependencies:
@@ -3289,6 +3351,14 @@ packages:
     resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
     engines: {node: '>=18'}
 
+  socket.io-client@4.8.1:
+    resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==}
+    engines: {node: '>=10.0.0'}
+
+  socket.io-parser@4.2.4:
+    resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
+    engines: {node: '>=10.0.0'}
+
   sonner@1.7.4:
     resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==}
     peerDependencies:
@@ -3434,6 +3504,9 @@ packages:
   tsconfig-paths@3.15.0:
     resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
 
+  tslib@2.7.0:
+    resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
+
   tslib@2.8.1:
     resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
 
@@ -3477,6 +3550,9 @@ packages:
     resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
     engines: {node: '>= 0.4'}
 
+  undici-types@6.19.8:
+    resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+
   undici-types@6.20.0:
     resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
 
@@ -3562,6 +3638,22 @@ packages:
   wrappy@1.0.2:
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
 
+  ws@8.17.1:
+    resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
+    engines: {node: '>=10.0.0'}
+    peerDependencies:
+      bufferutil: ^4.0.1
+      utf-8-validate: '>=5.0.2'
+    peerDependenciesMeta:
+      bufferutil:
+        optional: true
+      utf-8-validate:
+        optional: true
+
+  xmlhttprequest-ssl@2.1.2:
+    resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==}
+    engines: {node: '>=0.4.0'}
+
   yaml@2.7.1:
     resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
     engines: {node: '>= 14'}
@@ -3597,6 +3689,8 @@ packages:
 
 snapshots:
 
+  '@adraffy/ens-normalize@1.10.1': {}
+
   '@alloc/quick-lru@5.2.0': {}
 
   '@auth/core@0.37.2(@simplewebauthn/browser@13.1.0)':
@@ -3833,6 +3927,12 @@ snapshots:
   '@next/swc-win32-x64-msvc@15.2.4':
     optional: true
 
+  '@noble/curves@1.2.0':
+    dependencies:
+      '@noble/hashes': 1.3.2
+
+  '@noble/hashes@1.3.2': {}
+
   '@nodelib/fs.scandir@2.1.5':
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -4528,6 +4628,8 @@ snapshots:
 
   '@simplewebauthn/browser@13.1.0': {}
 
+  '@socket.io/component-emitter@3.1.2': {}
+
   '@swc/counter@0.1.3': {}
 
   '@swc/helpers@0.5.15':
@@ -4659,6 +4761,10 @@ snapshots:
     dependencies:
       undici-types: 6.20.0
 
+  '@types/node@22.7.5':
+    dependencies:
+      undici-types: 6.19.8
+
   '@types/react-dom@19.0.2(@types/react@19.0.1)':
     dependencies:
       '@types/react': 19.0.1
@@ -4842,6 +4948,8 @@ snapshots:
 
   acorn@8.14.1: {}
 
+  aes-js@4.0.0-beta.5: {}
+
   ajv@6.12.6:
     dependencies:
       fast-deep-equal: 3.1.3
@@ -5159,6 +5267,10 @@ snapshots:
     dependencies:
       ms: 2.1.3
 
+  debug@4.3.7:
+    dependencies:
+      ms: 2.1.3
+
   debug@4.4.0:
     dependencies:
       ms: 2.1.3
@@ -5204,6 +5316,8 @@ snapshots:
       '@babel/runtime': 7.27.0
       csstype: 3.1.3
 
+  dom-to-image@2.6.0: {}
+
   dunder-proto@1.0.1:
     dependencies:
       call-bind-apply-helpers: 1.0.2
@@ -5216,6 +5330,20 @@ snapshots:
 
   emoji-regex@9.2.2: {}
 
+  engine.io-client@6.6.3:
+    dependencies:
+      '@socket.io/component-emitter': 3.1.2
+      debug: 4.3.7
+      engine.io-parser: 5.2.3
+      ws: 8.17.1
+      xmlhttprequest-ssl: 2.1.2
+    transitivePeerDependencies:
+      - bufferutil
+      - supports-color
+      - utf-8-validate
+
+  engine.io-parser@5.2.3: {}
+
   enhanced-resolve@5.18.1:
     dependencies:
       graceful-fs: 4.2.11
@@ -5522,6 +5650,19 @@ snapshots:
 
   esutils@2.0.3: {}
 
+  ethers@6.13.7:
+    dependencies:
+      '@adraffy/ens-normalize': 1.10.1
+      '@noble/curves': 1.2.0
+      '@noble/hashes': 1.3.2
+      '@types/node': 22.7.5
+      aes-js: 4.0.0-beta.5
+      tslib: 2.7.0
+      ws: 8.17.1
+    transitivePeerDependencies:
+      - bufferutil
+      - utf-8-validate
+
   eventemitter3@4.0.7: {}
 
   eventemitter3@5.0.1: {}
@@ -6355,6 +6496,8 @@ snapshots:
 
   punycode@2.3.1: {}
 
+  qr.js@0.0.0: {}
+
   queue-microtask@1.2.3: {}
 
   react-day-picker@8.10.1(date-fns@4.1.0)(react@19.0.0):
@@ -6384,6 +6527,12 @@ snapshots:
 
   react-is@18.3.1: {}
 
+  react-qr-code@2.0.15(react@19.0.0):
+    dependencies:
+      prop-types: 15.8.1
+      qr.js: 0.0.0
+      react: 19.0.0
+
   react-redux@9.2.0(@types/react@19.0.1)(react@19.0.0)(redux@5.0.1):
     dependencies:
       '@types/use-sync-external-store': 0.0.6
@@ -6672,6 +6821,24 @@ snapshots:
       ansi-styles: 6.2.1
       is-fullwidth-code-point: 5.0.0
 
+  socket.io-client@4.8.1:
+    dependencies:
+      '@socket.io/component-emitter': 3.1.2
+      debug: 4.3.7
+      engine.io-client: 6.6.3
+      socket.io-parser: 4.2.4
+    transitivePeerDependencies:
+      - bufferutil
+      - supports-color
+      - utf-8-validate
+
+  socket.io-parser@4.2.4:
+    dependencies:
+      '@socket.io/component-emitter': 3.1.2
+      debug: 4.3.7
+    transitivePeerDependencies:
+      - supports-color
+
   sonner@1.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
     dependencies:
       react: 19.0.0
@@ -6814,6 +6981,8 @@ snapshots:
       minimist: 1.2.8
       strip-bom: 3.0.0
 
+  tslib@2.7.0: {}
+
   tslib@2.8.1: {}
 
   tw-animate-css@1.2.5: {}
@@ -6868,6 +7037,8 @@ snapshots:
       has-symbols: 1.1.0
       which-boxed-primitive: 1.1.1
 
+  undici-types@6.19.8: {}
+
   undici-types@6.20.0: {}
 
   unrs-resolver@1.5.0:
@@ -7001,6 +7172,10 @@ snapshots:
 
   wrappy@1.0.2: {}
 
+  ws@8.17.1: {}
+
+  xmlhttprequest-ssl@2.1.2: {}
+
   yaml@2.7.1: {}
 
   yocto-queue@0.1.0: {}
diff --git a/nextjs/src/app/api/organization.ts b/nextjs/src/app/api/organization.ts
index 5f2d84469..221a2908b 100644
--- a/nextjs/src/app/api/organization.ts
+++ b/nextjs/src/app/api/organization.ts
@@ -1,6 +1,9 @@
+/* eslint-disable max-lines */
 import { apiRoutes } from '@/config/apiRoutes';
 import { getHeaderConfigs } from '@/config/GetHeaderConfigs';
-import { axiosGet, axiosPost, axiosPut, ecosystemAxiosPost } from '@/services/apiRequests';
+import { IDedicatedAgentConfiguration } from '@/features/organization/components/interfaces/organization';
+import {   axiosDelete, axiosGet, axiosPost, axiosPut, ecosystemAxiosPost } from '@/services/apiRequests';
+
 
 // TODO: Uncomment the following lines when the API is ready
 export const createOrganization = async (data: object) => {
@@ -141,30 +144,29 @@ export const spinupDedicatedAgent = async (data: object, orgId: string) => {
   }
 };
 
-// export const setAgentConfigDetails = async (data: IDedicatedAgentConfig, orgId: string) => {
-// 	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
-// 	const payload = data;
-
-// 	// const token = await getFromLocalStorage(storageKeys.TOKEN);
+export const setAgentConfigDetails = async (data: IDedicatedAgentConfiguration, orgId: string) => {
+	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
+	// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+	const payload = data;
 
-// 	const config = {
-// 		headers: {
-// 			'Content-Type': 'application/json',
-// 		},
-// 	};
-// 	const axiosPayload = {
-// 		url,
-// 		payload,
-// 		config,
-// 	};
+	const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    payload,
+    config
+  };
 
-// 	try {
-// 		return await axiosPost(axiosPayload);
-// 	} catch (error) {
-// 		const err = error as Error;
-// 		return err?.message;
-// 	}
-// };
+  try {
+    return await axiosPost(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
 
 export const spinupSharedAgent = async (data: object, orgId: string) => {
   const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.agentSharedSpinup}`;
@@ -190,7 +192,6 @@ export const spinupSharedAgent = async (data: object, orgId: string) => {
 };
 
 export const getOrganizationRoles = async () => {
-  // const orgId = await getFromLocalStorage(storageKeys.ORG_ID);
   const orgId = '';
   const url = `${apiRoutes.organizations.root}/${orgId}/roles`;
 
@@ -212,6 +213,281 @@ export const getOrganizationRoles = async () => {
   }
 };
 
+export const getOrganizationReferences = async (orgId: string) => {
+  const url = `${apiRoutes.organizations.root}${apiRoutes.organizations.getOrgReferences}/${orgId}`;
+
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+  try {
+    return await axiosGet(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+export const deleteVerificationRecords = async (orgId: string) => {
+
+  const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.organizations.deleteVerifications}`;
+
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+  try {
+    return await axiosDelete(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+export const deleteIssuanceRecords = async (orgId: string) => {
+  const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.organizations.deleteIssaunce}`;
+
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+  try {
+    return await axiosDelete(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+export const deleteOrganizationWallet = async (orgId: string) => {
+  const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.deleteWallet}`;
+
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+  try {
+    return await axiosDelete(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+export const deleteOrganization = async (orgId:string) => {
+  const url = `${apiRoutes.organizations.root}/${orgId}`;
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+  try {
+    return await axiosDelete(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+  export const getAllCountries = async () => {
+    const url = `${apiRoutes.geolocation.countries}`;
+  
+    const config = {
+      headers: {
+        'Content-Type': 'application/json'
+      }
+    };
+    const axiosPayload = {
+      url,
+      config
+    };
+  
+    try {
+      return await axiosGet(axiosPayload);
+    } catch (error) {
+      const err = error as Error;
+      return err?.message;
+    }
+  };
+  
+
+export const getAllStates = async(countryId:number | null) => {
+	const url = `${apiRoutes.geolocation.countries}/${countryId}${apiRoutes.geolocation.state}`;
+  
+    const config = {
+      headers: {
+        'Content-Type': 'application/json'
+      }
+    };
+    const axiosPayload = {
+      url,
+      config
+    };
+  
+    try {
+      return await axiosGet(axiosPayload);
+    } catch (error) {
+      const err = error as Error;
+      return err?.message;
+    }
+  };
+
+export const getAllCities = async(countryId:number | null, stateId:number | null) => {
+	const url = `${apiRoutes.geolocation.countries}/${countryId}${apiRoutes.geolocation.state}/${stateId}${apiRoutes.geolocation.cities}`;
+  
+    const config = {
+      headers: {
+        'Content-Type': 'application/json'
+      }
+    };
+    const axiosPayload = {
+      url,
+      config
+    };
+  
+    try {
+      return await axiosGet(axiosPayload);
+    } catch (error) {
+      const err = error as Error;
+      return err?.message;
+    }
+  };
+
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
+  export const createDid = async (orgId:string, payload: any) => {
+	const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.organizations.createDid}`;
+
+  const config = {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  };
+  const axiosPayload = {
+    url,
+    config
+  };
+
+  try {
+    return await axiosPost(axiosPayload);
+  } catch (error) {
+    const err = error as Error;
+    return err?.message;
+  }
+};
+
+
+export const getLedgerConfig = async () => {
+    const url = `${apiRoutes.organizations.root}${apiRoutes.Agent.getLedgerConfig}`;
+    const config = {
+      headers: {
+        'Content-Type': 'application/json'
+      }
+    };
+    const axiosPayload = {
+      url,
+      config
+    };
+  
+    try {
+      return await axiosGet(axiosPayload);
+    } catch (error) {
+      const err = error as Error;
+      return err?.message;
+    }
+  };
+  
+  
+
+export const getLedgers = async () => {
+     const  url = `${apiRoutes.Platform.getLedgers}`;
+      const config = {
+        headers: {
+          'Content-Type': 'application/json'
+        }
+      };
+      const axiosPayload = {
+        url,
+        config
+      };
+    
+      try {
+        return await axiosGet(axiosPayload);
+      } catch (error) {
+        const err = error as Error;
+        return err?.message;
+      }
+    };
+    
+    export const createPolygonKeyValuePair = async (orgId:string) => {
+       const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.createPolygonKeys}`;
+        const config = {
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        };
+        const axiosPayload = {
+          url,
+          config
+        };
+      
+        try {
+          return await axiosPost(axiosPayload);
+        } catch (error) {
+          const err = error as Error;
+          return err?.message;
+        }
+      };
+      
+
+      // export const createConnection = async (orgName: string) => {
+      //   const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.connection.create}`;
+      
+      //   const data = {
+      //     label: orgName,
+      //     multiUseInvitation: true,
+      //     autoAcceptConnection: true,
+      //     orgId: orgId,
+      //   };
+      //   const payload = data;
+      
+      //   const axiosPayload = {
+      //     url,
+      //     payload,
+      //     config: await getHeaderConfigs(),
+      //   };
+      
+      //   try {
+      //     return await axiosPost(axiosPayload);
+      //   } catch (error) {
+      //     const err = error as Error;
+      //     return err?.message;
+      //   }
+      // };
+      
 // //Get users of the organization
 // export const getOrganizationUsers = async (
 // 	pageNumber: number,
@@ -386,23 +662,7 @@ export const getOrganizationRoles = async () => {
 // 	}
 // };
 
-// export const createDid = async (payload: any) => {
-// 	const orgId = await getFromLocalStorage(storageKeys.ORG_ID);
-// 	const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.organizations.createDid}`;
 
-// 	const axiosPayload = {
-// 		url,
-// 		payload,
-// 		config: await getHeaderConfigs(),
-// 	};
-
-// 	try {
-// 		return await axiosPost(axiosPayload);
-// 	} catch (error) {
-// 		const err = error as Error;
-// 		return err?.message;
-// 	}
-// };
 
 // export const updatePrimaryDid = async (orgId: string, payload: IUpdatePrimaryDid) => {
 // 	const url = `${apiRoutes.organizations.root}/${orgId}${apiRoutes.organizations.primaryDid}`;
@@ -421,23 +681,6 @@ export const getOrganizationRoles = async () => {
 // 	}
 // };
 
-// export const getOrganizationReferences = async () => {
-// 	const orgId = await getFromLocalStorage(storageKeys.ORG_ID);
-// 	const url = `${apiRoutes.organizations.root}${apiRoutes.organizations.getOrgReferences}/${orgId}`;
-
-// 	const token = await getFromLocalStorage(storageKeys.TOKEN);
-
-// 	const config = {
-// 		headers: {
-// 			'Content-Type': 'application/json',
-// 			Authorization: `Bearer ${token}`,
-// 		},
-// 	};
-// 	const axiosPayload = {
-// 		url,
-// 		config,
-// 	};
-
 // 	try {
 // 		return await axiosGet(axiosPayload);
 // 	} catch (error) {
@@ -446,25 +689,6 @@ export const getOrganizationRoles = async () => {
 // 	}
 // };
 
-// export const deleteOrganization = async (
-// ) => {
-// 	const orgId = await getFromLocalStorage(storageKeys.ORG_ID);
-
-// 	const url = `${apiRoutes.organizations.root}/${orgId}`;
-
-// 	const axiosPayload = {
-// 		url,
-// 		config: await getHeaderConfigs(),
-// 	};
-
-// 	try {
-// 		return await axiosDelete(axiosPayload);
-// 	} catch (error) {
-// 		const err = error as Error;
-// 		return err?.message;
-// 	}
-// };
-
 // export const getEcosystems = async (
 // 	orgId: string,
 // 	pageNumber: number = 1,
diff --git a/nextjs/src/app/organizations/dashboard/[orgId]/page.tsx b/nextjs/src/app/organizations/dashboard/[orgId]/page.tsx
new file mode 100644
index 000000000..fc0bb4754
--- /dev/null
+++ b/nextjs/src/app/organizations/dashboard/[orgId]/page.tsx
@@ -0,0 +1,16 @@
+import { OrganizationDashboard } from "@/features/organization/components/OrganizationDashboard";
+
+type Props = {
+  params: { orgId: string }
+}
+
+const Page = ({ params: { orgId } }: Props) => {
+
+  return (
+    <div>
+      <OrganizationDashboard orgId={orgId} orgData={null} />
+    </div>
+  )
+}
+
+export default Page
\ No newline at end of file
diff --git a/nextjs/src/app/organizations/page.tsx b/nextjs/src/app/organizations/page.tsx
index bcf736279..6642765b9 100644
--- a/nextjs/src/app/organizations/page.tsx
+++ b/nextjs/src/app/organizations/page.tsx
@@ -1,7 +1,12 @@
-import React from 'react';
+import { OrganizationList } from '@/features/organization/components/OrganizationList'
+import React from 'react'
 
 const page = () => {
-  return <div>Organization</div>;
-};
+  return (
+    <div>
+      <OrganizationList />
+    </div>
+  )
+}
 
-export default page;
+export default page;
\ No newline at end of file
diff --git a/nextjs/src/config/apiRoutes.ts b/nextjs/src/config/apiRoutes.ts
index 2c00c9da5..1213a4d70 100644
--- a/nextjs/src/config/apiRoutes.ts
+++ b/nextjs/src/config/apiRoutes.ts
@@ -1,115 +1,128 @@
 export const apiRoutes = {
-	auth: {
-		sendMail: '/auth/verification-mail',
-		sinIn: '/auth/signin',
-		verifyEmail: '/auth/verify',
-		addDetails: '/auth/signup',
-		passkeyUserDetails: '/users/password/',
-		profile: '/profile',
-		generateRegistration: 'auth/passkey/generate-registration',
-		verifyRegistration: 'auth/passkey/verify-registration/',
-		getDeviceList: 'auth/passkey/',
-		updateDeviceName: 'auth/passkey',
-		userUpdate: 'auth/passkey/user-details',
-		fidoDevice: 'auth/passkey',
-		fidoAuthentication: 'auth/passkey/authentication-options',
-		fidoVerifyAuthentication: 'auth/passkey/verify-authentication/',
-		keyClockResetPassword: 'auth/reset-password',
-		forgotPassword: 'auth/forgot-password',
-		resetPassword: 'auth/password-reset',
-		refreshToken: '/auth/refresh-token'
-	},
-	Ecosystem: {
-		root: '/ecosystem',
-		usersInvitation: '/users/invitations',
-		endorsements: {
-			list: '/endorsement-transactions',
-			createSchemaRequest: '/transaction/schema',
-		},
-	},
-	users: {
-		userProfile: '/users/profile',
-		checkUser: '/users/',
-		invitations: '/users/org-invitations',
-		fetchUsers: '/users',
-		update: '/users',
-		recentActivity: '/users/activity',
-		platformSettings: '/users/platform-settings'
-	},
-	organizations: {
-		root: '/orgs',
-		create: '/orgs',
-		update: '/orgs',
-		getAll: '/orgs',
-		getById: '/orgs',
-		getOrgDashboard: '/orgs/dashboard',
-		invitations: '/invitations',
-		orgRoles: '/orgs/roles',
-		editUserROle: '/user-roles',
-		didList: '/dids',
-		createDid: '/agents/did',
-		primaryDid: '/primary-did',
-		getOrgReferences:'/activity-count',
-		deleteOrganization:'/organizations/deleteorganizations',
-		deleteVerifications:'/verification-records',  
-		deleteIssaunce:'/issuance-records',
-		deleteConnections:'/connections'
-	},
-	connection: {
-		create: '/connections',
-	},
-	schema: {
-		create: '/schemas',
-		getAll: '/schemas',
-		getSchemaById: '/schemas',
-		createCredentialDefinition: '/cred-defs',
-		getCredDefBySchemaId: '/schemas',
-	},
-	Issuance: {
-		getIssuedCredentials: '/credentials',
-		getAllConnections: '/connections',
-		issueCredential: '/credentials/offer',
-		issueOobEmailCredential: '/credentials/oob/email',
-		bulk:{
-			credefList:'/credentials/bulk/template',
-			uploadCsv: '/bulk/upload',
-			preview: '/preview',
-			bulk: '/bulk',
-			files: '/bulk/files',
-			filesData: '/bulk/file-data',
-			retry: '/retry/bulk'
-		},
-		download:'/credentials/bulk/template'
-	},
-	Verification: {
-		getAllRequestList: '/credentials/proofs',
-		verifyCredential: '/proofs',
-		oobProofRequest: '/proofs/oob',
-		presentationVerification: '/proofs',
-		proofRequestAttributesVerification: '/verified-proofs',
-		verificationCredDef: '/verifiation/cred-defs'
-	},
-	Agent: {
-		checkAgentHealth: '/agents/health',
-		agentDedicatedSpinup: '/agents/spinup',
-		agentSharedSpinup: '/agents/wallet',
-		getLedgerConfig: '/agents/ledgerConfig',
-		createPolygonKeys: '/agents/polygon/create-keys',
-		setAgentConfig:'/agents/configure',
-		deleteWallet: '/agents/wallet',
+  auth: {
+    sendMail: '/auth/verification-mail',
+    sinIn: '/auth/signin',
+    verifyEmail: '/auth/verify',
+    addDetails: '/auth/signup',
+    passkeyUserDetails: '/users/password/',
+    profile: '/profile',
+    generateRegistration: 'auth/passkey/generate-registration',
+    verifyRegistration: 'auth/passkey/verify-registration/',
+    getDeviceList: 'auth/passkey/',
+    updateDeviceName: 'auth/passkey',
+    userUpdate: 'auth/passkey/user-details',
+    fidoDevice: 'auth/passkey',
+    fidoAuthentication: 'auth/passkey/authentication-options',
+    fidoVerifyAuthentication: 'auth/passkey/verify-authentication/',
+    keyClockResetPassword: 'auth/reset-password',
+    forgotPassword: 'auth/forgot-password',
+    resetPassword: 'auth/password-reset',
+    refreshToken: '/auth/refresh-token'
+  },
 
-	},
-	Platform: {
-		getAllSchemaFromPlatform: '/platform/schemas',
-		getLedgers: '/platform/ledgers',
-		getLedgerPlatformUrl: '/platform/network/url/'
-	},
-	Public: {
-		organizations: '/orgs/public-profile',
-		organizationDetails: '/orgs/public-profiles',
-	},
-	
-	setting:{
-		setting: '/client_credentials'
-	}
-};
\ No newline at end of file
+  users: {
+    userProfile: '/users/profile',
+    checkUser: '/users/',
+    invitations: '/users/org-invitations',
+    fetchUsers: '/users',
+    update: '/users',
+    recentActivity: '/users/activity',
+    platformSettings: '/users/platform-settings'
+  },
+
+  Ecosystem: {
+    root: '/ecosystem',
+    usersInvitation: '/users/invitations',
+    endorsements: {
+      list: '/endorsement-transactions',
+      createSchemaRequest: '/transaction/schema'
+    }
+  },
+
+  geolocation: {
+    root: '/geolocation',
+    countries: '/countries',
+    state: '/states',
+    cities: '/cities'
+  },
+
+  schema: {
+    create: '/schemas',
+    getAll: '/schemas',
+    getSchemaById: '/schemas',
+    createCredentialDefinition: '/cred-defs',
+    getCredDefBySchemaId: '/schemas'
+  },
+  Verification: {
+    getAllRequestList: '/credentials/proofs',
+    verifyCredential: '/proofs',
+    oobProofRequest: '/proofs/oob',
+    presentationVerification: '/proofs',
+    proofRequestAttributesVerification: '/verified-proofs',
+    verificationCredDef: '/verifiation/cred-defs'
+  },
+
+  organizations: {
+    root: '/orgs',
+    create: '/orgs',
+    update: '/orgs',
+    getAll: '/orgs',
+    getById: '/orgs',
+    getOrgDashboard: '/orgs/dashboard',
+    invitations: '/invitations',
+    orgRoles: '/orgs/roles',
+    editUserROle: '/user-roles',
+    didList: '/dids',
+    createDid: '/agents/did',
+    primaryDid: '/primary-did',
+    getOrgReferences: '/activity-count',
+    deleteOrganization: '/organizations/deleteorganizations',
+    deleteVerifications: '/verification-records',
+    deleteIssaunce: '/issuance-records',
+    deleteConnections: '/connections'
+  },
+  connection: {
+    create: '/connections'
+  },
+
+  Issuance: {
+    getIssuedCredentials: '/credentials',
+    getAllConnections: '/connections',
+    issueCredential: '/credentials/offer',
+    issueOobEmailCredential: '/credentials/oob/email',
+    bulk: {
+      credefList: '/credentials/bulk/template',
+      uploadCsv: '/bulk/upload',
+      preview: '/preview',
+      bulk: '/bulk',
+      files: '/bulk/files',
+      filesData: '/bulk/file-data',
+      retry: '/retry/bulk'
+    },
+    download: '/credentials/bulk/template'
+  },
+
+ 
+  Platform: {
+    getAllSchemaFromPlatform: '/platform/schemas',
+    getLedgers: '/platform/ledgers',
+    getLedgerPlatformUrl: '/platform/network/url/'
+  },
+  Public: {
+    organizations: '/orgs/public-profile',
+    organizationDetails: '/orgs/public-profiles'
+  },
+  Agent: {
+    checkAgentHealth: '/agents/health',
+    agentDedicatedSpinup: '/agents/spinup',
+    agentSharedSpinup: '/agents/wallet',
+    getLedgerConfig: '/agents/ledgerConfig',
+    createPolygonKeys: '/agents/polygon/create-keys',
+    setAgentConfig: '/agents/configure',
+    deleteWallet: '/agents/wallet'
+  },
+
+  setting: {
+    setting: '/client_credentials'
+  }
+};
diff --git a/nextjs/src/features/dashboard/components/OrganizationCardList.tsx b/nextjs/src/features/dashboard/components/OrganizationCardList.tsx
index 860663a98..562df5059 100644
--- a/nextjs/src/features/dashboard/components/OrganizationCardList.tsx
+++ b/nextjs/src/features/dashboard/components/OrganizationCardList.tsx
@@ -162,7 +162,7 @@ const OrganizationCardList = () => {
       </CardContent>
 
       <CardFooter className='mt-auto justify-end pt-2'>
-      <Link href='#'>View all</Link>
+      <Link href='/organizations'>View all</Link>
       </CardFooter>
     </Card>
   );
diff --git a/nextjs/src/features/organization/components/OrganizationDashboard.tsx b/nextjs/src/features/organization/components/OrganizationDashboard.tsx
new file mode 100644
index 000000000..6a9928149
--- /dev/null
+++ b/nextjs/src/features/organization/components/OrganizationDashboard.tsx
@@ -0,0 +1,201 @@
+'use client';
+
+import React, { useEffect, useState } from 'react';
+import { useRouter } from 'next/navigation';
+import { Button } from '@/components/ui/button';
+import { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar';
+import { getOrganizationById } from '@/app/api/organization';
+import { apiStatusCodes } from '@/config/CommonConstant';
+import { Card, CardContent } from '@/components/ui/card';
+import { Edit, Trash2 } from 'lucide-react';
+import { AxiosResponse } from 'axios';
+import OrganizationDetails from './OrganizationDetails';
+import { IOrganisation } from './interfaces/organization';
+
+type OrganizationDashboardProps = {
+  orgId: string;
+  orgData: IOrganisation | null;
+};
+
+
+export const OrganizationDashboard = ({
+  orgId
+}: OrganizationDashboardProps) => {
+  const router = useRouter();
+  const [orgData, setOrgData] = useState<IOrganisation | null>(null);
+  const [loading, setLoading] = useState(true);
+  const [walletStatus, setWalletStatus] = useState<boolean>(false);
+  const [error, setError] = useState<string | null>(null);
+
+  const fetchOrganizationDetails = async () => {
+    setLoading(true);
+    const response = await getOrganizationById(orgId as string);
+    const { data } = response as AxiosResponse;
+    setLoading(false);
+    if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) {
+      if (data?.data?.org_agents?.length > 0 && data?.data?.org_agents[0]?.orgDid) {
+				setWalletStatus(true);
+			}
+      setOrgData(data?.data);
+    } else {
+      setError(response as string);
+    }
+    setLoading(false);
+  };
+
+  const handleEditOrg = () => {
+    router.push(`/organizations/create-organization?orgId=${orgId}`);
+  };
+
+  const handleDeleteOrg = () => {
+    router.push(`/organizations/delete-organization?orgId=${orgId}`);
+  };
+
+
+  useEffect(() => {
+    fetchOrganizationDetails();
+  }, []);
+
+  return (
+    <div className='container mx-auto space-y-6 px-4 py-6'>
+      <Card className='shadow-md'>
+        <CardContent className='p-6'>
+          <div className='flex items-center justify-between'>
+            <div className='flex items-center space-x-4'>
+              <Avatar className='h-16 w-16 rounded-md'>
+                {orgData?.logoUrl ? (
+                  <AvatarImage src={orgData?.logoUrl} alt={orgData?.name} />
+                ) : (
+                  <AvatarFallback className='text-2xl font-bold'>
+                    {orgData?.name.substring(0, 2).toUpperCase()}
+                  </AvatarFallback>
+                )}
+              </Avatar>
+              <div>
+                <h2 className='text-2xl font-bold'>{orgData?.name}</h2>
+                <p className='text-muted-foreground'>{orgData?.description}</p>
+                <p className='mt-1 text-sm'>
+                  Profile view:{' '}
+                  <span className='font-semibold'>
+                    {orgData?.publicProfile ? 'public' : 'private'}
+                  </span>
+                </p>
+              </div>
+            </div>
+
+            <div className='flex gap-3'>
+              <Button variant='outline' size='icon' onClick={handleEditOrg}>
+                <Edit className='h-4 w-4' />
+              </Button>
+              <Button variant='outline' size='icon' onClick={handleDeleteOrg}>
+                <Trash2 className='h-4 w-4' />
+              </Button>
+            </div>
+          </div>
+        </CardContent>
+      </Card>
+
+      {/* Dashboard Cards */}
+      <div className='grid grid-cols-1 gap-6 md:grid-cols-3'>
+        <Card className='shadow-md'>
+          <CardContent className='flex items-center justify-between p-6'>
+            <div>
+              <p className='font-medium'>Users</p>
+              <h3 className='mt-2 text-4xl font-bold'>1</h3>
+            </div>
+            <div className='opacity-30'>
+              <svg
+                xmlns='http://www.w3.org/2000/svg'
+                width='60'
+                height='60'
+                viewBox='0 0 24 24'
+                fill='none'
+                stroke='currentColor'
+                strokeWidth='2'
+                strokeLinecap='round'
+                strokeLinejoin='round'
+              >
+                <path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'></path>
+                <circle cx='12' cy='7' r='4'></circle>
+              </svg>
+            </div>
+          </CardContent>
+        </Card>
+
+        <Card className='shadow-md' onClick={()=> router.push('/organizations/schemas')}>
+          <CardContent className='flex items-center justify-between p-6'>
+            <div>
+              <p className='font-medium'>Schemas</p>
+              <h3 className='mt-2 text-4xl font-bold'>7</h3>
+            </div>
+            <div className='opacity-30'>
+              <svg
+                xmlns='http://www.w3.org/2000/svg'
+                width='60'
+                height='60'
+                viewBox='0 0 24 24'
+                fill='none'
+                stroke='currentColor'
+                strokeWidth='2'
+                strokeLinecap='round'
+                strokeLinejoin='round'
+              >
+                <rect x='3' y='3' width='18' height='18' rx='2' ry='2'></rect>
+                <line x1='3' y1='9' x2='21' y2='9'></line>
+                <line x1='9' y1='21' x2='9' y2='9'></line>
+              </svg>
+            </div>
+          </CardContent>
+        </Card>
+
+        <Card className='shadow-md'>
+          <CardContent className='flex items-center justify-between p-6'>
+            <div>
+              <p className='font-medium'>Credentials</p>
+              <h3 className='mt-2 text-4xl font-bold'>35</h3>
+            </div>
+            <div className='opacity-20'>
+              <svg
+                xmlns='http://www.w3.org/2000/svg'
+                width='60'
+                height='60'
+                viewBox='0 0 24 24'
+                fill='none'
+                stroke='currentColor'
+                strokeWidth='2'
+                strokeLinecap='round'
+                strokeLinejoin='round'
+              >
+                <rect x='3' y='4' width='18' height='16' rx='2'></rect>
+                <circle cx='9' cy='12' r='2'></circle>
+                <path d='M13 12h6'></path>
+                <path d='M13 8h6'></path>
+                <path d='M13 16h6'></path>
+              </svg>
+            </div>
+          </CardContent>
+        </Card>
+      </div>
+      {/* <CreateOrganizationModal
+        open={openEditModal}
+        setOpen={setOpenEditModal}
+        setMessage={setError}
+        mode={mode}
+        orgData={orgData}
+      /> */}
+   {
+    walletStatus === true ? (
+
+    <OrganizationDetails orgData={orgData}  />
+
+    ): (
+<Button 
+      onClick={() => router.push('/organizations/create-organization?step=2')}
+    >
+      You have to set up your wallet first
+    </Button>
+    )	
+  } 
+    </div>
+  );
+};
\ No newline at end of file
diff --git a/nextjs/src/features/organization/components/OrganizationDetails.tsx b/nextjs/src/features/organization/components/OrganizationDetails.tsx
new file mode 100644
index 000000000..ba71be9c8
--- /dev/null
+++ b/nextjs/src/features/organization/components/OrganizationDetails.tsx
@@ -0,0 +1,211 @@
+import { useEffect, useState } from 'react';
+import type { AxiosResponse } from 'axios';
+// import { createConnection } from '../../api/organization';
+
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
+import { Copy } from 'lucide-react';
+// import CustomQRCode from '../../commonComponents/QRcode';
+// import DIDList from './configuration-settings/DidList';
+import { IConnection, IOrgAgent, IOrganisation } from './interfaces/organization';
+import { dateConversion } from '@/utils/DateConversion';
+import { apiStatusCodes, storageKeys } from '@/config/CommonConstant';
+// import { createConnection } from '@/app/api/organization';
+// import CustomQRCode from '@/features/wallet/CustomQRCode';
+// import DIDList from '@/features/wallet/DidListComponent';
+
+const OrganizationDetails = ({ orgData }: { orgData: IOrganisation | null }) => {
+  const { org_agents } = orgData as IOrganisation;
+  const agentData: IOrgAgent | null = org_agents.length > 0 ? org_agents[0] : null;
+
+  const [loading, setLoading] = useState<boolean>(true);
+  const [connectionData, setConnectionData] = useState<IConnection | null>(null);
+
+//   const createQrConnection = async () => {
+//     setLoading(true);
+//     const response = await createConnection(orgData?.name as string);
+//     const { data } = response as AxiosResponse;
+
+//     if (data?.statusCode === apiStatusCodes.API_STATUS_CREATED) {
+//       setConnectionData(data?.data);
+//     }
+//     setLoading(false);
+//   };
+
+//   const storeLedgerDetails = async () => {
+//     await setToLocalStorage(storageKeys.LEDGER_ID, agentData?.ledgers.id);
+//   };
+
+//   useEffect(() => {
+//     createQrConnection();
+//     // storeLedgerDetails();
+//   }, []);
+
+  const CopyDid = ({ value, className, hideValue = false }: { value: string, className?: string, hideValue?: boolean }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <div className={`flex items-center gap-2 ${className}`}>
+          {!hideValue && (
+            <span className="truncate max-w-xs">{value}</span>
+          )}
+          <Button
+            variant="ghost"
+            size="icon"
+            className="h-6 w-6"
+            onClick={() => navigator.clipboard.writeText(value)}
+          >
+            <Copy className="h-4 w-4" />
+          </Button>
+        </div>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>Copy to clipboard</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  const DateTooltip = ({ date, children }: { date: string, children: React.ReactNode }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <span>{children}</span>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>{new Date(date).toLocaleString()}</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  return (
+    <div className="space-y-4">
+      <Card className="p-6">
+        <div className="flex flex-col lg:flex-row gap-6">
+          <div className="flex-1">
+            <h3 className="text-xl font-bold mb-4">
+              Web Wallet Details
+            </h3>
+
+            <div className="space-y-4">
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Wallet Name</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold">
+                  {agentData?.walletName}
+                </span>
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Org DID</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                {agentData?.orgDid ? (
+                  <CopyDid 
+                    value={agentData?.orgDid}
+                    className="font-mono font-semibold"
+                  />
+                ) : (
+                  <span className="font-semibold text-gray-500 dark:text-gray-400">
+                    Not available
+                  </span>
+                )}
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Network</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold">
+                  {agentData?.ledgers?.name || '-'}
+                </span>
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Agent Type</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold">
+                  {agentData?.org_agent_type?.agent
+                    ? agentData.org_agent_type.agent.charAt(0).toUpperCase() + 
+                      agentData.org_agent_type.agent.slice(1).toLowerCase()
+                    : ''}
+                </span>
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Created On</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold">
+                  {agentData?.createDateTime ? (
+                    <DateTooltip date={agentData.createDateTime}>
+                      {dateConversion(agentData.createDateTime)}
+                    </DateTooltip>
+                  ) : (
+                    <DateTooltip date={new Date().toISOString()}>
+                      {dateConversion(new Date().toISOString())}
+                    </DateTooltip>
+                  )}
+                </span>
+              </div>
+            </div>
+          </div>
+
+          <div className="flex justify-center">
+            {loading ? (
+              <div className="flex justify-center items-center h-48 w-48">
+                {/* Loading spinner can be added here */}
+              </div>
+            ) : (
+              connectionData && (
+                // <CustomQRCode
+                //   value={connectionData.connectionInvitation as string}
+                //   size={180}
+                // />
+                <div>
+                    QR code component
+                </div>
+
+              )
+            )}
+          </div>
+        </div>
+
+        {/* <div className="mt-6">
+          <DIDList />
+        </div> */}
+      </Card>
+
+      {agentData?.orgDid?.startsWith('did:web') && (
+        <Card className="p-6">
+          <h3 className="text-2xl font-bold mb-4">
+            DID Document
+          </h3>
+
+          <div className="space-y-4">
+            <div>
+              <h4 className="text-lg font-semibold mb-2">
+                Instructions:
+              </h4>
+              <ul className="space-y-1">
+                <li>1. Kindly provide the DID document for hosting purposes in order to facilitate its publication</li>
+                <li>2. Failure to host the DID document will result in the inability to publish your DID</li>
+              </ul>
+            </div>
+
+            <div className="rounded-md p-4">
+              <div className="flex justify-between items-start">
+                <pre className="overflow-x-auto">
+                  <code className="text-sm">
+                    {JSON.stringify(agentData?.didDocument, undefined, 4)}
+                  </code>
+                </pre>
+                <CopyDid 
+                  value={JSON.stringify(agentData?.didDocument)} 
+                  hideValue={true}
+                />
+              </div>
+            </div>
+          </div>
+        </Card>
+      )}
+    </div>
+  );
+};
+
+export default OrganizationDetails;
\ No newline at end of file
diff --git a/nextjs/src/features/organization/components/OrganizationList.tsx b/nextjs/src/features/organization/components/OrganizationList.tsx
new file mode 100644
index 000000000..ac88f4892
--- /dev/null
+++ b/nextjs/src/features/organization/components/OrganizationList.tsx
@@ -0,0 +1,223 @@
+'use client';
+
+import { useEffect, useState } from 'react';
+import { useRouter } from 'next/navigation';
+import { AxiosResponse } from 'axios';
+
+import { getOrganizations } from '@/app/api/organization';
+import { Organization } from '@/features/dashboard/type/organization';
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Input } from '@/components/ui/input';
+import {
+  Pagination,
+  PaginationContent,
+  PaginationItem,
+  PaginationNext,
+  PaginationPrevious
+} from '@/components/ui/pagination';
+import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
+import { apiStatusCodes } from '@/config/CommonConstant';
+import { Plus } from 'lucide-react';
+
+export const OrganizationList = () => {
+  const [organizationsList, setOrganizationsList] = useState<Organization[]>(
+    []
+  );
+  const [loading, setLoading] = useState(true);
+  const [error, setError] = useState<string | null>(null);
+  const [searchText, setSearchText] = useState('');
+
+  const [currentPage, setCurrentPage] = useState({
+    pageNumber: 1,
+    pageSize: 9,
+    total: 0,
+    totalCount: 0
+  });
+
+  const router = useRouter();
+
+  const getAllOrganizations = async () => {
+    setLoading(true);
+    try {
+      const response = await getOrganizations(
+        currentPage.pageNumber,
+        currentPage.pageSize,
+        searchText
+      );
+
+      const { data } = response as AxiosResponse;
+
+      if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) {
+        const totalPages = data?.data?.totalPages;
+        const totalCount = data?.data?.totalCount;
+
+        const orgList = data?.data?.organizations.map(
+          (userOrg: Organization) => {
+            const roles: string[] = userOrg.userOrgRoles.map(
+              (role) => role.orgRole.name
+            );
+            return {
+              ...userOrg,
+              roles
+            };
+          }
+        );
+
+        setOrganizationsList(orgList);
+        setCurrentPage((prev) => ({
+          ...prev,
+          total: totalPages,
+          totalCount
+        }));
+      } else {
+        setError(response as string);
+      }
+    } catch (err) {
+      console.error('Error fetching organizations:', err);
+    } finally {
+      setLoading(false);
+    }
+  };
+
+  const handlePageChange = (newPage: number) => {
+    setCurrentPage((prev) => ({ ...prev, pageNumber: newPage }));
+  };
+
+  const handleCardClick = (orgId: string) => {
+    if (!orgId) {
+      console.error('Invalid organization ID');
+      return;
+    }
+    router.push(`/organizations/dashboard/${orgId}`);
+  };
+  const handleCreateOrg = () => {
+    router.push('organizations/create-organization');
+  };
+
+  useEffect(() => {
+    getAllOrganizations();
+  }, [currentPage.pageNumber, currentPage.pageSize, searchText]);
+
+  return (
+    <div className='space-y-6'>
+      <div className='mx-8 mb-6 flex items-center justify-between'>
+        <h1 className='text-2xl font-bold'>Organizations</h1>
+        <div className='flex items-center gap-4'>
+          <Input
+            placeholder='Search'
+            value={searchText}
+            onChange={(e) => setSearchText(e.target.value)}
+            className='w-64'
+          />
+          <Button onClick={handleCreateOrg} className="gap-2">
+      <Plus className="h-4 w-4" />
+      Create Organization
+    </Button>
+        </div>
+      </div>
+
+      <div className='mx-8 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3'>
+        {loading ? (
+          <div className=''>Loading organizations...</div>
+        ) : organizationsList.length > 0 ? (
+          organizationsList.map((org) => (
+            <Card
+              key={org.id}
+              onClick={() => handleCardClick(org.id)}
+              className='cursor-pointer p-6 transition-all hover:shadow-md'
+            >
+               <div className="flex items-start gap-4">
+                <Avatar className='h-16 w-16 rounded-md'>
+                  {org.logoUrl ? (
+                    <AvatarImage src={org.logoUrl} alt={org.name} />
+                  ) : (
+                    <AvatarFallback className='text-2xl font-bold'>
+                      {org.name.substring(0, 2).toUpperCase()}
+                    </AvatarFallback>
+                  )}
+                </Avatar>
+
+                <div className='flex-1'>
+                  <h3 className='text-lg font-semibold'>{org.name}</h3>
+                  <p className=''>{org.description}</p>
+                  <div className='mt-2 text-sm'>
+                    Role(s):{' '}
+                    <span className='rounded-full px-2 py-1 text-xs'>
+                      {org.userOrgRoles[0].orgRole.name || 'No Role'}
+                    </span>
+                  </div>
+                </div>
+              </div>
+            </Card>
+          ))
+        ) : (
+          <div className=''>No organizations found.</div>
+        )}
+      </div>
+
+      <div className='mt-6 flex items-center justify-between px-8'>
+        <div className='text-muted-foreground text-sm'>
+          Showing {(currentPage.pageNumber - 1) * currentPage.pageSize + 1} to{' '}
+          {Math.min(
+            currentPage.pageNumber * currentPage.pageSize,
+            currentPage.totalCount
+          )}{' '}
+          of {currentPage.totalCount} entries
+        </div>
+
+        {organizationsList && organizationsList.length > 0 && (
+          <div>
+            <Pagination>
+              <PaginationContent className='gap-1'>
+                <PaginationItem>
+                  <PaginationPrevious
+                    onClick={() =>
+                      currentPage.pageNumber > 1 &&
+                      handlePageChange(currentPage.pageNumber - 1)
+                    }
+                    className={
+                      currentPage.pageNumber === 1
+                        ? 'pointer-events-none opacity-50'
+                        : ''
+                    }
+                  />
+                </PaginationItem>
+
+                {Array.from({ length: currentPage.total }, (_, index) => (
+                  <PaginationItem key={index}>
+                    <Button
+                      variant={
+                        currentPage.pageNumber === index + 1
+                          ? 'default'
+                          : 'outline'
+                      }
+                      size='sm'
+                      onClick={() => handlePageChange(index + 1)}
+                    >
+                      {index + 1}
+                    </Button>
+                  </PaginationItem>
+                ))}
+
+                <PaginationItem>
+                  <PaginationNext
+                    onClick={() =>
+                      currentPage.pageNumber < currentPage.total &&
+                      handlePageChange(currentPage.pageNumber + 1)
+                    }
+                    className={
+                      currentPage.pageNumber === currentPage.total
+                        ? 'pointer-events-none opacity-50'
+                        : ''
+                    }
+                  />
+                </PaginationItem>
+              </PaginationContent>
+            </Pagination>
+          </div>
+        )}
+      </div>
+    </div>
+  );
+};
diff --git a/nextjs/src/features/organization/components/interfaces/organization.ts b/nextjs/src/features/organization/components/interfaces/organization.ts
new file mode 100644
index 000000000..8c36b52a9
--- /dev/null
+++ b/nextjs/src/features/organization/components/interfaces/organization.ts
@@ -0,0 +1,273 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+export interface UserOrgRole {
+  id: string
+  userId: string
+  orgRoleId: string
+  orgId: string
+  orgRole: OrgRole
+}
+
+export interface IOrganisation {
+  logoFile: string
+  id: string
+  createDateTime: string
+  createdBy: string
+  lastChangedDateTime: string
+  lastChangedBy: string
+  name: string
+  description: string
+  countryId:number
+  stateId:number
+  cityId:number   
+  logoUrl: string
+  website: string
+  roles: string[]
+  userOrgRoles: UserOrgRole[]
+  org_agents: IOrgAgent[]
+  publicProfile: boolean
+  checked?: boolean | undefined
+  error?: string;
+}
+
+export interface OrgRole {
+  id: string
+  name: string
+  description: string
+  createDateTime?: string
+  createdBy?: string
+  lastChangedDateTime?: string
+  lastChangedBy?: string
+  deletedAt?: any
+}
+
+export interface IOrgAgent {
+  id: string
+  createDateTime: string
+  createdBy: string
+  lastChangedDateTime: string
+  lastChangedBy: string
+  orgDid: string
+  didDocument: string
+  verkey: string
+  agentEndPoint: string
+  agentId: any
+  isDidPublic: boolean
+  agentSpinUpStatus: number
+  agentOptions: any
+  walletName: string
+  tenantId: any
+  agentsTypeId: string
+  orgId: string
+  orgAgentTypeId: string
+  ledgers: ILedgers
+  org_agent_type: IOrgAgentType
+  agents_type: IAgentsType
+}
+
+export interface IAgentsType {
+  id: string
+  createDateTime: string
+  createdBy: string
+  lastChangedDateTime: string
+  lastChangedBy: string
+  agent: string
+}
+
+export interface IOrgAgentType{
+id: string
+createDateTime: string
+createdBy: string
+lastChangedDateTime: string
+lastChangedBy: string
+agent: string
+
+}
+
+export interface ILedgers{
+createDateTime: string
+createdBy: string
+id: string
+isActive: boolean
+lastChangedBy: string
+lastChangedDateTime: string
+name: string
+networkString: string
+networkType: string
+poolConfig: string
+registerDIDEndpoint: string
+}
+export interface IOrgDashboard {
+  usersCount: number
+  schemasCount: number
+  credentialsCount: number
+  presentationsCount: number
+}
+
+export interface IConnection {
+  id: string
+  orgId: string
+  agentId: string
+  connectionInvitation: string
+  multiUse: boolean
+  createDateTime: string
+  createdBy: string
+  lastChangedDateTime: string
+  lastChangedBy: string
+}
+
+export interface IOrgInterface {
+  name: string;
+  website: string;
+  logoUrl: string;
+  description: string;
+}
+
+export interface IOrgDataInterface {
+  orgData: IOrgInterface
+}
+
+export interface IOrgWalletDetailsObject {
+orgDid:string
+ledgers:{
+  name:string
+  networkType:string
+}
+networkType:string
+walletName:string
+createDateTime:string
+}
+
+export interface IUserDetails {
+  profileImg: string;
+  lastName: string;
+  firstName: string;
+  email: string;
+  publicProfile: boolean;
+  id: string;
+  username: string;
+}
+
+export interface IWalletDetails {
+  agent_invitations: {
+      connectionInvitation: string
+  }[]
+  orgDid: string
+  ledgers: {
+      name: string
+      networkType: string
+  }
+}
+
+export interface IOrgDetails {
+  org_agents: IWalletDetails[]
+  logoUrl: string
+  name: string
+  website: string
+  description: string
+}
+export interface IExploreOrg {
+  orgData: IOrgDetails
+}
+export interface Values {
+website: any;
+name: string;
+description: string;
+}
+export interface ILogoImages {
+logoFile: string | File;
+imagePreviewUrl: string | ArrayBuffer | null | File;
+fileName: string;
+}
+export interface IEditOrgdetailsModalProps {
+// openModal: boolean;
+// setMessage: (message: string) => void;
+// setOpenModal: (flag: boolean) => void;
+// onEditSucess?: () => void;
+orgData: IOrganisation | null;
+}
+export interface IOrgInformation {
+name: string;
+logoUrl: string;
+  description: string;
+  id: string;
+  roles: string[]
+}
+
+export interface IUpdatePrimaryDid {
+  id: string;
+  did: string;
+}
+
+export interface IDidListData {
+  id: string;
+  did: string;
+  isPrimaryDid: boolean;
+  createDateTime: string;
+  lastChangedDateTime: string;
+}
+
+export interface IFormikValue {
+ledger: string;
+method: string;
+  keyType:string;
+network: string;
+  did: string;
+domain: string;
+privatekey: string;
+endorserDid: string;
+}
+
+export interface IDedicatedAgentConfiguration {
+walletName: string;
+agentEndpoint: string;
+apiKey: string;
+}
+interface IndySubDetails {
+  [key: string]: string;
+}
+export interface ILedgerDetail {
+  bcovrin?: IndySubDetails;
+  indicio?: IndySubDetails;
+  mainnet?: string;
+  testnet?: string;
+  key?: string;
+  web?: string;
+}
+export interface ILedgerItem {
+  id: string;
+  name: string;
+  details: ILedgerDetail;
+  createDateTime: string;
+  createdBy: string;
+  lastChangedDateTime: string;
+  lastChangedBy: string;
+  deletedAt: string | null;
+}
+
+
+export interface IOrgCountData {
+  verificationRecordsCount: number;
+  connectionRecordsCount: number;
+  issuanceRecordsCount: number;
+  orgInvitationsCount: number;
+  orgUsersCount: number;
+}
+
+export interface IEcosystemOrganization {
+  id: string;
+  orgId: string;
+  status: string;
+  createDateTime: string;
+  lastChangedDateTime: string;
+  ecosystemId: string;
+  ecosystemRoleId: string;
+  ecosystemRole: IEcosystemRoles;
+}
+export interface IEcosystemRoles {
+  id: string;
+  name: string;
+  description: string;
+  createDateTime: string;
+  lastChangedDateTime: string;
+  deletedAt: string | null;
+}
\ No newline at end of file


Reviews:
user: login: sanjaykhondal-aw
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T06:31:14Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T07:20:01Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T07:22:22Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T07:28:23Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T08:34:59Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T08:35:26Z
user: login: pranalidhanavade
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T08:36:17Z
user: login: sanjaykhondal-aw
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-05T10:49:30Z
user: login: amitpadmani-awts
body: LGTM
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-05T13:16:35Z

Review comments:
diff_hunk: @@ -141,30 +144,31 @@ export const spinupDedicatedAgent = async (data: object, orgId: string) => {
   }
 };
 
-// export const setAgentConfigDetails = async (data: IDedicatedAgentConfig, orgId: string) => {
-// 	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
-// 	const payload = data;
+export const setAgentConfigDetails = async (data: IDedicatedAgentConfig, orgId: string) => {
+	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
+	// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+	const payload = data;
 
-// 	// const token = await getFromLocalStorage(storageKeys.TOKEN);
+	// const token = await getFromLocalStorage(storageKeys.TOKEN);
path: nextjs/src/app/api/organization.ts
user: login: sanjaykhondal-aw
body: Remove this commented line.
created_at: 2025-05-05T06:16:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,213 @@
+import { useEffect, useState } from 'react';
+import type { AxiosResponse } from 'axios';
+// import { createConnection } from '../../api/organization';
+
+// Components
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
+import { Copy } from 'lucide-react';
+// import CustomQRCode from '../../commonComponents/QRcode';
+// import DIDList from './configuration-settings/DidList';
+import { Connection, OrgAgent, Organisation } from './interfaces/organization';
+import { dateConversion } from '@/utils/DateConversion';
+import { apiStatusCodes, storageKeys } from '@/config/CommonConstant';
+// import { createConnection } from '@/app/api/organization';
+// import CustomQRCode from '@/features/wallet/CustomQRCode';
+// import DIDList from '@/features/wallet/DidListComponent';
+
+const OrganizationDetails = ({ orgData }: { orgData: Organisation | null }) => {
+  console.log("🚀 ~ OrganizationDetails ~ orgData:", orgData)
path: nextjs/src/features/organization/components/OrganizationDetails.tsx
user: login: sanjaykhondal-aw
body: Remove console.log
created_at: 2025-05-05T06:17:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import { OrganizationDashboard } from "@/features/organization/components/OrganizationDashboard";
+
+type Props = {
+  params: { orgId: string }
+}
+
+const Page = ({ params: { orgId } }: Props) => {
+
+  return (
+    <div>
+      <OrganizationDashboard orgId={orgId} orgData={null} />
path: nextjs/src/app/organizations/dashboard/[orgId]/page.tsx
user: login: sanjaykhondal-aw
body: Please check orgId condition.
created_at: 2025-05-05T06:27:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,213 @@
+import { useEffect, useState } from 'react';
+import type { AxiosResponse } from 'axios';
+// import { createConnection } from '../../api/organization';
+
+// Components
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
+import { Copy } from 'lucide-react';
+// import CustomQRCode from '../../commonComponents/QRcode';
+// import DIDList from './configuration-settings/DidList';
+import { Connection, OrgAgent, Organisation } from './interfaces/organization';
+import { dateConversion } from '@/utils/DateConversion';
+import { apiStatusCodes, storageKeys } from '@/config/CommonConstant';
+// import { createConnection } from '@/app/api/organization';
+// import CustomQRCode from '@/features/wallet/CustomQRCode';
+// import DIDList from '@/features/wallet/DidListComponent';
+
+const OrganizationDetails = ({ orgData }: { orgData: Organisation | null }) => {
+  console.log("🚀 ~ OrganizationDetails ~ orgData:", orgData)
+  const { org_agents } = orgData as Organisation;
+  const agentData: OrgAgent | null = org_agents.length > 0 ? org_agents[0] : null;
+
+  const [loading, setLoading] = useState<boolean>(true);
+  const [connectionData, setConnectionData] = useState<Connection | null>(null);
+
+//   const createQrConnection = async () => {
+//     setLoading(true);
+//     const response = await createConnection(orgData?.name as string);
+//     const { data } = response as AxiosResponse;
+
+//     if (data?.statusCode === apiStatusCodes.API_STATUS_CREATED) {
+//       setConnectionData(data?.data);
+//     }
+//     setLoading(false);
+//   };
+
+//   const storeLedgerDetails = async () => {
+//     await setToLocalStorage(storageKeys.LEDGER_ID, agentData?.ledgers.id);
+//   };
+
+//   useEffect(() => {
+//     createQrConnection();
+//     // storeLedgerDetails();
+//   }, []);
+
+  const CopyDid = ({ value, className, hideValue = false }: { value: string, className?: string, hideValue?: boolean }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <div className={`flex items-center gap-2 ${className}`}>
+          {!hideValue && (
+            <span className="truncate max-w-xs">{value}</span>
+          )}
+          <Button
+            variant="ghost"
+            size="icon"
+            className="h-6 w-6"
+            onClick={() => navigator.clipboard.writeText(value)}
+          >
+            <Copy className="h-4 w-4" />
+          </Button>
+        </div>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>Copy to clipboard</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  const DateTooltip = ({ date, children }: { date: string, children: React.ReactNode }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <span>{children}</span>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>{new Date(date).toLocaleString()}</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  return (
+    <div className="space-y-4">
+      <Card className="p-6">
+        <div className="flex flex-col lg:flex-row gap-6">
+          <div className="flex-1">
+            <h3 className="text-xl font-bold text-gray-900 dark:text-white mb-4">
+              Web Wallet Details
+            </h3>
+
+            <div className="space-y-4">
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Wallet Name</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold text-gray-900 dark:text-white">
+                  {agentData?.walletName}
+                </span>
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Org DID</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                {agentData?.orgDid ? (
+                  <CopyDid 
+                    value={agentData?.orgDid}
+                    className="font-mono font-semibold"
+                  />
+                ) : (
+                  <span className="font-semibold text-gray-500 dark:text-gray-400">
+                    Not available
+                  </span>
+                )}
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Network</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
path: nextjs/src/features/organization/components/OrganizationDetails.tsx
user: login: sanjaykhondal-aw
body: Please remove inline css.
created_at: 2025-05-05T06:27:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,220 @@
+'use client';
+
+import { useEffect, useState } from 'react';
+import { useRouter } from 'next/navigation';
+import { AxiosResponse } from 'axios';
+
+import { getOrganizations } from '@/app/api/organization';
+import { Organization } from '@/features/dashboard/type/organization';
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Input } from '@/components/ui/input';
+import {
+  Pagination,
+  PaginationContent,
+  PaginationItem,
+  PaginationNext,
+  PaginationPrevious
+} from '@/components/ui/pagination';
+import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
+import { apiStatusCodes } from '@/config/CommonConstant';
+import { Plus } from 'lucide-react';
+
+export const OrganizationList = () => {
+  const [organizationsList, setOrganizationsList] = useState<Organization[]>(
+    []
+  );
+  const [loading, setLoading] = useState(true);
+  const [error, setError] = useState<string | null>(null);
+  const [searchText, setSearchText] = useState('');
+
+  const [currentPage, setCurrentPage] = useState({
+    pageNumber: 1,
+    pageSize: 9,
+    total: 0,
+    totalCount: 0
+  });
+
+  const router = useRouter();
+
+  const getAllOrganizations = async () => {
+    setLoading(true);
+    try {
+      const response = await getOrganizations(
+        currentPage.pageNumber,
+        currentPage.pageSize,
+        searchText
+      );
+
+      const { data } = response as AxiosResponse;
+
+      if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) {
+        const totalPages = data?.data?.totalPages;
+        const totalCount = data?.data?.totalCount;
+
+        const orgList = data?.data?.organizations.map(
+          (userOrg: Organization) => {
+            const roles: string[] = userOrg.userOrgRoles.map(
+              (role) => role.orgRole.name
+            );
+            return {
+              ...userOrg,
+              roles
+            };
+          }
+        );
+
+        setOrganizationsList(orgList);
+        setCurrentPage((prev) => ({
+          ...prev,
+          total: totalPages,
+          totalCount
+        }));
+      } else {
+        setError(response as string);
+      }
+    } catch (err) {
+      console.error('Error fetching organizations:', err);
+    } finally {
+      setLoading(false);
+    }
+  };
+
+  const handlePageChange = (newPage: number) => {
+    setCurrentPage((prev) => ({ ...prev, pageNumber: newPage }));
+  };
+
+  const handleCardClick = (orgId: string) => {
+    router.push(`/organizations/dashboard/${orgId}`);
+  };
+
+  const handleCreateOrg = () => {
+    router.push('organizations/create-organization');
+  };
+
+  useEffect(() => {
+    getAllOrganizations();
+  }, [currentPage.pageNumber, currentPage.pageSize, searchText]);
+
+  return (
+    <div className='space-y-6'>
+      <div className='mx-8 mb-6 flex items-center justify-between'>
+        <h1 className='text-2xl font-bold'>Organizations</h1>
+        <div className='flex items-center gap-4'>
+          <Input
+            placeholder='Search'
+            value={searchText}
+            onChange={(e) => setSearchText(e.target.value)}
+            className='w-64'
+          />
+          <Button onClick={handleCreateOrg} className="gap-2">
+      <Plus className="h-4 w-4" />
+      Create Organization
+    </Button>
+        </div>
+      </div>
+
+      <div className='mx-8 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3'>
+        {loading ? (
+          <div className='text-gray-500'>Loading organizations...</div>
path: nextjs/src/features/organization/components/OrganizationList.tsx
user: login: sanjaykhondal-aw
body: Please remove inline css.
created_at: 2025-05-05T06:29:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,274 @@
+/* eslint-disable @typescript-eslint/naming-convention */
+/* eslint-disable @typescript-eslint/no-explicit-any */
path: nextjs/src/features/organization/components/interfaces/organization.ts
user: login: sanjaykhondal-aw
body: Check this.
created_at: 2025-05-05T06:29:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -141,30 +144,31 @@ export const spinupDedicatedAgent = async (data: object, orgId: string) => {
   }
 };
 
-// export const setAgentConfigDetails = async (data: IDedicatedAgentConfig, orgId: string) => {
-// 	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
-// 	const payload = data;
+export const setAgentConfigDetails = async (data: IDedicatedAgentConfig, orgId: string) => {
+	const url =`${apiRoutes.organizations.root}/${orgId}${apiRoutes.Agent.setAgentConfig}`
+	// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+	const payload = data;
 
-// 	// const token = await getFromLocalStorage(storageKeys.TOKEN);
+	// const token = await getFromLocalStorage(storageKeys.TOKEN);
path: nextjs/src/app/api/organization.ts
user: login: pranalidhanavade
body: Resolved.
created_at: 2025-05-05T07:20:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,213 @@
+import { useEffect, useState } from 'react';
+import type { AxiosResponse } from 'axios';
+// import { createConnection } from '../../api/organization';
+
+// Components
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
+import { Copy } from 'lucide-react';
+// import CustomQRCode from '../../commonComponents/QRcode';
+// import DIDList from './configuration-settings/DidList';
+import { Connection, OrgAgent, Organisation } from './interfaces/organization';
+import { dateConversion } from '@/utils/DateConversion';
+import { apiStatusCodes, storageKeys } from '@/config/CommonConstant';
+// import { createConnection } from '@/app/api/organization';
+// import CustomQRCode from '@/features/wallet/CustomQRCode';
+// import DIDList from '@/features/wallet/DidListComponent';
+
+const OrganizationDetails = ({ orgData }: { orgData: Organisation | null }) => {
+  console.log("🚀 ~ OrganizationDetails ~ orgData:", orgData)
path: nextjs/src/features/organization/components/OrganizationDetails.tsx
user: login: pranalidhanavade
body: Resolved.
created_at: 2025-05-05T07:22:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import { OrganizationDashboard } from "@/features/organization/components/OrganizationDashboard";
+
+type Props = {
+  params: { orgId: string }
+}
+
+const Page = ({ params: { orgId } }: Props) => {
+
+  return (
+    <div>
+      <OrganizationDashboard orgId={orgId} orgData={null} />
path: nextjs/src/app/organizations/dashboard/[orgId]/page.tsx
user: login: pranalidhanavade
body: Resolved.
created_at: 2025-05-05T07:28:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,213 @@
+import { useEffect, useState } from 'react';
+import type { AxiosResponse } from 'axios';
+// import { createConnection } from '../../api/organization';
+
+// Components
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
+import { Copy } from 'lucide-react';
+// import CustomQRCode from '../../commonComponents/QRcode';
+// import DIDList from './configuration-settings/DidList';
+import { Connection, OrgAgent, Organisation } from './interfaces/organization';
+import { dateConversion } from '@/utils/DateConversion';
+import { apiStatusCodes, storageKeys } from '@/config/CommonConstant';
+// import { createConnection } from '@/app/api/organization';
+// import CustomQRCode from '@/features/wallet/CustomQRCode';
+// import DIDList from '@/features/wallet/DidListComponent';
+
+const OrganizationDetails = ({ orgData }: { orgData: Organisation | null }) => {
+  console.log("🚀 ~ OrganizationDetails ~ orgData:", orgData)
+  const { org_agents } = orgData as Organisation;
+  const agentData: OrgAgent | null = org_agents.length > 0 ? org_agents[0] : null;
+
+  const [loading, setLoading] = useState<boolean>(true);
+  const [connectionData, setConnectionData] = useState<Connection | null>(null);
+
+//   const createQrConnection = async () => {
+//     setLoading(true);
+//     const response = await createConnection(orgData?.name as string);
+//     const { data } = response as AxiosResponse;
+
+//     if (data?.statusCode === apiStatusCodes.API_STATUS_CREATED) {
+//       setConnectionData(data?.data);
+//     }
+//     setLoading(false);
+//   };
+
+//   const storeLedgerDetails = async () => {
+//     await setToLocalStorage(storageKeys.LEDGER_ID, agentData?.ledgers.id);
+//   };
+
+//   useEffect(() => {
+//     createQrConnection();
+//     // storeLedgerDetails();
+//   }, []);
+
+  const CopyDid = ({ value, className, hideValue = false }: { value: string, className?: string, hideValue?: boolean }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <div className={`flex items-center gap-2 ${className}`}>
+          {!hideValue && (
+            <span className="truncate max-w-xs">{value}</span>
+          )}
+          <Button
+            variant="ghost"
+            size="icon"
+            className="h-6 w-6"
+            onClick={() => navigator.clipboard.writeText(value)}
+          >
+            <Copy className="h-4 w-4" />
+          </Button>
+        </div>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>Copy to clipboard</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  const DateTooltip = ({ date, children }: { date: string, children: React.ReactNode }) => (
+    <Tooltip>
+      <TooltipTrigger asChild>
+        <span>{children}</span>
+      </TooltipTrigger>
+      <TooltipContent>
+        <p>{new Date(date).toLocaleString()}</p>
+      </TooltipContent>
+    </Tooltip>
+  );
+
+  return (
+    <div className="space-y-4">
+      <Card className="p-6">
+        <div className="flex flex-col lg:flex-row gap-6">
+          <div className="flex-1">
+            <h3 className="text-xl font-bold text-gray-900 dark:text-white mb-4">
+              Web Wallet Details
+            </h3>
+
+            <div className="space-y-4">
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Wallet Name</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                <span className="font-semibold text-gray-900 dark:text-white">
+                  {agentData?.walletName}
+                </span>
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Org DID</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
+                {agentData?.orgDid ? (
+                  <CopyDid 
+                    value={agentData?.orgDid}
+                    className="font-mono font-semibold"
+                  />
+                ) : (
+                  <span className="font-semibold text-gray-500 dark:text-gray-400">
+                    Not available
+                  </span>
+                )}
+              </div>
+
+              <div className="flex items-center">
+                <span className="w-40 text-gray-500 dark:text-gray-400">Network</span>
+                <span className="mx-2 text-gray-500 dark:text-gray-400">:</span>
path: nextjs/src/features/organization/components/OrganizationDetails.tsx
user: login: pranalidhanavade
body: Resolved
created_at: 2025-05-05T08:34:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,220 @@
+'use client';
+
+import { useEffect, useState } from 'react';
+import { useRouter } from 'next/navigation';
+import { AxiosResponse } from 'axios';
+
+import { getOrganizations } from '@/app/api/organization';
+import { Organization } from '@/features/dashboard/type/organization';
+import { Card } from '@/components/ui/card';
+import { Button } from '@/components/ui/button';
+import { Input } from '@/components/ui/input';
+import {
+  Pagination,
+  PaginationContent,
+  PaginationItem,
+  PaginationNext,
+  PaginationPrevious
+} from '@/components/ui/pagination';
+import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
+import { apiStatusCodes } from '@/config/CommonConstant';
+import { Plus } from 'lucide-react';
+
+export const OrganizationList = () => {
+  const [organizationsList, setOrganizationsList] = useState<Organization[]>(
+    []
+  );
+  const [loading, setLoading] = useState(true);
+  const [error, setError] = useState<string | null>(null);
+  const [searchText, setSearchText] = useState('');
+
+  const [currentPage, setCurrentPage] = useState({
+    pageNumber: 1,
+    pageSize: 9,
+    total: 0,
+    totalCount: 0
+  });
+
+  const router = useRouter();
+
+  const getAllOrganizations = async () => {
+    setLoading(true);
+    try {
+      const response = await getOrganizations(
+        currentPage.pageNumber,
+        currentPage.pageSize,
+        searchText
+      );
+
+      const { data } = response as AxiosResponse;
+
+      if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) {
+        const totalPages = data?.data?.totalPages;
+        const totalCount = data?.data?.totalCount;
+
+        const orgList = data?.data?.organizations.map(
+          (userOrg: Organization) => {
+            const roles: string[] = userOrg.userOrgRoles.map(
+              (role) => role.orgRole.name
+            );
+            return {
+              ...userOrg,
+              roles
+            };
+          }
+        );
+
+        setOrganizationsList(orgList);
+        setCurrentPage((prev) => ({
+          ...prev,
+          total: totalPages,
+          totalCount
+        }));
+      } else {
+        setError(response as string);
+      }
+    } catch (err) {
+      console.error('Error fetching organizations:', err);
+    } finally {
+      setLoading(false);
+    }
+  };
+
+  const handlePageChange = (newPage: number) => {
+    setCurrentPage((prev) => ({ ...prev, pageNumber: newPage }));
+  };
+
+  const handleCardClick = (orgId: string) => {
+    router.push(`/organizations/dashboard/${orgId}`);
+  };
+
+  const handleCreateOrg = () => {
+    router.push('organizations/create-organization');
+  };
+
+  useEffect(() => {
+    getAllOrganizations();
+  }, [currentPage.pageNumber, currentPage.pageSize, searchText]);
+
+  return (
+    <div className='space-y-6'>
+      <div className='mx-8 mb-6 flex items-center justify-between'>
+        <h1 className='text-2xl font-bold'>Organizations</h1>
+        <div className='flex items-center gap-4'>
+          <Input
+            placeholder='Search'
+            value={searchText}
+            onChange={(e) => setSearchText(e.target.value)}
+            className='w-64'
+          />
+          <Button onClick={handleCreateOrg} className="gap-2">
+      <Plus className="h-4 w-4" />
+      Create Organization
+    </Button>
+        </div>
+      </div>
+
+      <div className='mx-8 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3'>
+        {loading ? (
+          <div className='text-gray-500'>Loading organizations...</div>
path: nextjs/src/features/organization/components/OrganizationList.tsx
user: login: pranalidhanavade
body: Resolved
created_at: 2025-05-05T08:35:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,274 @@
+/* eslint-disable @typescript-eslint/naming-convention */
+/* eslint-disable @typescript-eslint/no-explicit-any */
path: nextjs/src/features/organization/components/interfaces/organization.ts
user: login: pranalidhanavade
body: Resolved
created_at: 2025-05-05T08:36:17Z
author_association: CONTRIBUTOR

PR comments:
user: login: sonarqubecloud[bot]
created_at: 2025-05-05T10:48:29Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=credebl_studio&pullRequest=945) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [28 New issues](https://sonarcloud.io/project/issues?id=credebl_studio&pullRequest=945&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=credebl_studio&pullRequest=945&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=credebl_studio&pullRequest=945&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=credebl_studio&pullRequest=945&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=credebl_studio&pullRequest=945&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=credebl_studio&pullRequest=945)


author_association: NONE