diff --git a/.env.example b/.env.example
index b2ee48f6..fa30dbd7 100644
--- a/.env.example
+++ b/.env.example
@@ -1,14 +1,15 @@
-
-# Firbease configuration
-NEXT_PUBLIC_FIREBASE_API_KEY=TU_API_KEY
-NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=TU_AUTH_DOMAIN
-NEXT_PUBLIC_FIREBASE_PROJECT_ID=TU_PROJECT_ID
-NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=TU_STORAGE_BUCKET
-NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=TU_MESSAGING_SENDER_ID
-NEXT_PUBLIC_FIREBASE_APP_ID=TU_APP_ID
-
-# Trustless Work API
-NEXT_PUBLIC_API_URL=https://dev.api.trustlesswork.com
-NEXT_PUBLIC_API_KEY=TU_API_KEY
-
-
+# FIREBASE
+NEXT_PUBLIC_FIREBASE_API_KEY=
+NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
+NEXT_PUBLIC_FIREBASE_PROJECT_ID=
+NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
+NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
+NEXT_PUBLIC_FIREBASE_APP_ID=
+
+# TRUSTLESS WORK
+NEXT_PUBLIC_API_KEY=
+
+# MAINTENANCE MODE
+NEXT_PUBLIC_MAINTENANCE_MODE=false
+NEXT_PUBLIC_COUNTDOWN_HOURS=2
+NEXT_PUBLIC_COUNTDOWN_MINUTES=30
\ No newline at end of file
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 37be5172..d35453c8 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -27,6 +27,28 @@ Add here some information
- **Video**: [Link to Loom video](https://loom.com)
+---
+
+## ✅ ESLint Compliance (Mandatory)
+
+To ensure that the code follows project standards, please run the following command and attach a screenshot of the output:
+
+```bash
+npm run lint
+```
+
+You should see:
+
+```
+✔ No ESLint warnings or errors
+```
+
+📸 **Attach a screenshot showing the result of the lint check:**
+
+> ⚠️ **Pull requests without this screenshot will be rejected.**
+
+---
+
## 📂 Related Issue
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index 5c44388a..00000000
--- a/.npmrc
+++ /dev/null
@@ -1,3 +0,0 @@
-engine-strict=true
-npm=10.9.2
-save-exact=true
diff --git a/.nvmrc b/.nvmrc
deleted file mode 100644
index 3872cc8b..00000000
--- a/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-22.14.0
diff --git a/README.md b/README.md
index 4bd17ff5..a2c5db91 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-# 🚀 TrustBridge
+
+
+# TrustBridge
**TrustBridge** is a decentralized lending platform built on the Stellar blockchain and integrated with Trustless Work for smart contract management. It enables users to request and fund secure loans, ensuring transparency, automation, and security without traditional intermediaries.
@@ -76,7 +78,6 @@ NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=TU_MESSAGING_SENDER_ID
NEXT_PUBLIC_FIREBASE_APP_ID=TU_APP_ID
# Trustless Work API
-NEXT_PUBLIC_API_URL=https://dev.api.trustlesswork.com
NEXT_PUBLIC_API_KEY=TU_API_KEY
```
@@ -94,18 +95,6 @@ https://github.com/user-attachments/assets/0c4a8a80-33f1-41ae-819b-6a38abf30e4b
---
-## 🔥 Firebase Setup
-
-Once you have your Firebase database ready, add the following document in the `trustlines` collection:
-
-```
-name: "USDC" (string)
-trustline: "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" (string)
-trustlineDecimals: 10000000 (number)
-```
-
----
-
## 🔑 Wallet Requirements
To use this platform, install one of the following wallets:
diff --git a/next.config.ts b/next.config.ts
index e9ffa308..376d9317 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -1,7 +1,22 @@
-import type { NextConfig } from "next";
-
-const nextConfig: NextConfig = {
- /* config options here */
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ env: {
+ NEXT_PUBLIC_MAINTENANCE_MODE: process.env.MAINTENANCE_MODE,
+ },
+ // Add configuration for handling static files
+ async headers() {
+ return [
+ {
+ source: "/locales/:path*",
+ headers: [
+ {
+ key: "Cache-Control",
+ value: "public, max-age=3600", // Cache for 1 hour
+ },
+ ],
+ },
+ ];
+ },
};
export default nextConfig;
diff --git a/package-lock.json b/package-lock.json
index 659385a8..1dda209f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -57,7 +57,7 @@
"eslint": "^9.23.0",
"eslint-config-next": "15.2.4",
"eslint-config-prettier": "^10.1.1",
- "eslint-plugin-prettier": "^5.2.5",
+ "eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-react": "^7.37.4",
"globals": "^16.0.0",
"husky": "^9.1.7",
@@ -3120,9 +3120,9 @@
}
},
"node_modules/@pkgr/core": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz",
- "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz",
+ "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10766,14 +10766,14 @@
}
},
"node_modules/eslint-plugin-prettier": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz",
- "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==",
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz",
+ "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.11.0"
+ "synckit": "^0.11.7"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -15886,14 +15886,13 @@
}
},
"node_modules/synckit": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz",
- "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==",
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz",
+ "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@pkgr/core": "^0.2.3",
- "tslib": "^2.8.1"
+ "@pkgr/core": "^0.2.4"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
diff --git a/package.json b/package.json
index d4da0702..5c7b5195 100644
--- a/package.json
+++ b/package.json
@@ -65,7 +65,7 @@
"eslint": "^9.23.0",
"eslint-config-next": "15.2.4",
"eslint-config-prettier": "^10.1.1",
- "eslint-plugin-prettier": "^5.2.5",
+ "eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-react": "^7.37.4",
"globals": "^16.0.0",
"husky": "^9.1.7",
diff --git a/public/img/TrustBridge-dark.png b/public/img/TrustBridge-dark.png
deleted file mode 100644
index 5ad98636..00000000
Binary files a/public/img/TrustBridge-dark.png and /dev/null differ
diff --git a/public/img/TrustBridge-light.png b/public/img/TrustBridge-light.png
deleted file mode 100644
index 2e5d29c4..00000000
Binary files a/public/img/TrustBridge-light.png and /dev/null differ
diff --git a/public/img/TrustBridge.png b/public/img/TrustBridge.png
index 69403c9c..19e01ab2 100644
Binary files a/public/img/TrustBridge.png and b/public/img/TrustBridge.png differ
diff --git a/src/@types/chat.entity.ts b/src/@types/chat.entity.ts
index f408696c..30af9d98 100644
--- a/src/@types/chat.entity.ts
+++ b/src/@types/chat.entity.ts
@@ -23,3 +23,21 @@ export interface ChatState {
chats: Chat[];
activeChat: Chat | null;
}
+
+export type ChatMessage = {
+ id: string;
+ from: string;
+ to: string;
+ content: string;
+ timestamp: number;
+ status?: "sent" | "delivered" | "read";
+};
+
+export type ChatWithMessages = {
+ id: string;
+ participants: string[];
+ lastMessage: string | null;
+ lastMessageTime: number | null;
+ createdAt: number;
+ messages: ChatMessage[];
+};
diff --git a/src/@types/user.entity.ts b/src/@types/user.entity.ts
new file mode 100644
index 00000000..b03ba6e1
--- /dev/null
+++ b/src/@types/user.entity.ts
@@ -0,0 +1,22 @@
+export interface UserProfile {
+ walletAddress: string;
+ firstName: string;
+ lastName: string;
+ country: string;
+ phoneNumber: string;
+ createdAt: number;
+ updatedAt: number;
+}
+
+export interface UserProfileFormData {
+ firstName: string;
+ lastName: string;
+ country: string;
+ phoneNumber: string;
+}
+
+export interface UserChatData {
+ firstName: string;
+ lastName: string;
+ walletAddress: string;
+}
diff --git a/src/app/about-us/page.tsx b/src/app/about-us/page.tsx
new file mode 100644
index 00000000..acd76f96
--- /dev/null
+++ b/src/app/about-us/page.tsx
@@ -0,0 +1,17 @@
+"use client";
+
+import AboutPage from "@/components/modules/about-us/ui/pages/AboutUs";
+import { GradientBackground } from "@/components/modules/dashboard/ui/pages/background/GradientBackground";
+import { ScrollArea } from "@/components/ui/scroll-area";
+
+export default function Page() {
+ return (
+
+ Wallet not connected or invalid target. +
+