Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
bff3890
Auth routes created to request the backed
Aug 20, 2025
a1ddd6e
moved to EnterPre page
Aug 22, 2025
be9f805
profiles developing
Aug 23, 2025
fc2383b
about to end auth
Aug 26, 2025
1c645cc
profile updation
Aug 29, 2025
0f36041
setting up the socket.io
Aug 30, 2025
f7b758d
real chat enabled
Aug 31, 2025
58d087c
conversations will update dynamically
Sep 1, 2025
d3c69cf
dynamically messages changed
Sep 2, 2025
f8ec362
message read updation
Sep 3, 2025
93b52fd
video call implemented
Sep 6, 2025
debc0e2
video call ended except design
Sep 7, 2025
8a03356
calls added
Sep 8, 2025
eb81a75
incoming modal over app
Sep 8, 2025
c716906
collaboration requests added
Sep 9, 2025
b30c6d1
Merge pull request #1 from DanishAjma1/collaboration
DanishAjma1 Sep 9, 2025
7774051
URL changings
Sep 9, 2025
c7ec823
Merge branch 'collaboration'
Sep 9, 2025
31bd6a2
auth url changings
Sep 9, 2025
2585d94
vite envoironment added
Sep 9, 2025
191b674
deals document and notificaiton page added
Sep 10, 2025
b36bd65
time error resolved
Sep 10, 2025
38602ae
agora RTC implemented for audio video call
Sep 30, 2025
aac75dd
OAuth in progress
Oct 7, 2025
b543396
linkedin and google oAuth integrated
Oct 11, 2025
ff05efe
landing page almost designed
Oct 12, 2025
bb73efe
feature/admindashboard&campaig pages
zainImran864 Oct 14, 2025
d92f01a
edit profile form added to settings page
Oct 15, 2025
378c654
Merge branch 'feature/admin-dash' into LandingPage
zainImran864 Oct 16, 2025
08ce2a1
admin-dash merge into landingpage
zainImran864 Oct 16, 2025
8bbd74e
valuation and revenue in % form
Oct 16, 2025
43112d4
valuation and revenue show in % form
Oct 16, 2025
6dcd187
Updated admin entrepreneur and investor pages
zainImran864 Oct 19, 2025
9d34972
profile settings changes dynamically for two role(inv & ent)
Oct 19, 2025
b8e34cf
Merge pull request #3 from DanishAjma1/dynamicSettings
DanishAjma1 Oct 19, 2025
58459b5
logo and AppName changed
zainImran864 Oct 21, 2025
07f131a
investor profile and entrepreneur profile updated
Oct 23, 2025
5973007
merging into oAuth
Oct 23, 2025
3147a1c
Merge branch 'dynamicDataChange' into oAuth
DanishAjma1 Oct 23, 2025
850aae4
Merge pull request #4 from DanishAjma1/oAuth
DanishAjma1 Oct 23, 2025
aed8254
Added new campaign form with improved design and animations
zainImran864 Oct 28, 2025
72f29ff
Change login code for oauth code
Nov 4, 2025
cd24357
merged
Nov 4, 2025
d5246ef
Merge branch 'dynamicDataChange' of https://github.com/DanishAjma1/Ne…
zainImran864 Nov 7, 2025
f6a5a56
account details will be asked at account creation
Nov 7, 2025
115b5d4
Merge pull request #5 from DanishAjma1/feat/AccountCreationWithDetails
zainImran864 Nov 15, 2025
e065666
added table where acceptance befor accessingdashbord wil be shown
zainImran864 Nov 15, 2025
2b31380
filepath fix
zainImran864 Nov 15, 2025
c4489e1
Merge pull request #6 from DanishAjma1/enterinvestorAcception
zainImran864 Nov 15, 2025
864e376
Merge branch 'main' into campaignformNewdesign
DanishAjma1 Nov 21, 2025
7f2c91d
Merge pull request #7 from DanishAjma1/campaignformNewdesign
DanishAjma1 Nov 21, 2025
4f3d331
three dots buttons on ent&inv page
Nov 22, 2025
e0077e3
admin managed ent and inv pages
Nov 23, 2025
691bf1a
charts added and risk Detecting
Nov 24, 2025
dcb6531
CampaignsChanges
umar24012003 Nov 24, 2025
37ad368
graph modal in progress and nav and side bar changed
Nov 25, 2025
8192419
Settings pages navlinks rendered
Nov 26, 2025
e512a67
Merge pull request #9 from DanishAjma1/feat/adminPanelManagement
DanishAjma1 Nov 26, 2025
f67768f
Merge branch 'main' into CampaignsChanges
DanishAjma1 Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
DB_URL="mongodb://localhost:27017/TrustBridge"
JWT_SECRET="NetDpVFFq8H8tYtWT3bKjKzgTmsXPZ7mylWw/Z4t2PKC09bhJuL9aud0u4GPuGBojCDZ/XHrpHDBmPokRoTA=="
FRONTEND_URL=http://localhost:5173
REDIS_URL=redis://localhost:6379
VITE_BACKEND_URL=http://localhost:5000
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
<link rel="icon" type="image/svg+xml" href="/TrustBridge-AI-Logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Business Nexus - Connect Entrepreneurs & Investors</title>
<title>TrustBridge AI</title>
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
</head>
<body>
Expand Down
904 changes: 777 additions & 127 deletions package-lock.json

Large diffs are not rendered by default.

21 changes: 16 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,23 @@
"preview": "vite preview"
},
"dependencies": {
"agora-rtc-sdk-ng": "^4.24.0",
"axios": "^1.13.0",
"date-fns": "^3.3.1",
"framer-motion": "^12.23.24",
"jwt-decode": "^4.0.0",
"lucide-react": "^0.344.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.22.1",
"axios": "^1.6.7",
"date-fns": "^3.3.1",
"react-dropzone": "^14.2.3",
"react-hot-toast": "^2.4.1"
"react-hot-toast": "^2.6.0",
"react-router-dom": "^6.22.1",
"recharts": "^3.5.0",
"socket.io-client": "^4.8.1"
},
"devDependencies": {
"@eslint/js": "^9.9.1",
"@types/node": "^24.3.1",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
Expand All @@ -34,5 +40,10 @@
"typescript": "^5.5.3",
"typescript-eslint": "^8.3.0",
"vite": "^5.4.2"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
}
}
}
Binary file added public/TrustBridge-AI-Logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/app logo.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
220 changes: 136 additions & 84 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,104 +1,156 @@
import React from 'react';
import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
import { AuthProvider } from './context/AuthContext';
import {
BrowserRouter as Router,
Routes,
Route,
Navigate,
} from "react-router-dom";
import { AuthProvider } from "./context/AuthContext";
import { SocketProvider } from "./context/SocketContext";

// Layouts
import { DashboardLayout } from './components/layout/DashboardLayout';
import { DashboardLayout } from "./components/layout/DashboardLayout";

// Auth Pages
import { LoginPage } from './pages/auth/LoginPage';
import { RegisterPage } from './pages/auth/RegisterPage';
import { LoginPage } from "./pages/auth/LoginPage";
import { RegisterPage } from "./pages/auth/RegisterPage";

// Dashboard Pages
import { EntrepreneurDashboard } from './pages/dashboard/EntrepreneurDashboard';
import { InvestorDashboard } from './pages/dashboard/InvestorDashboard';
import { EntrepreneurDashboard } from "./pages/dashboard/EntrepreneurDashboard";
import { InvestorDashboard } from "./pages/dashboard/InvestorDashboard";
import { AdminDashboard } from "./pages/dashboard/AdminDashboard";

// Profile Pages
import { EntrepreneurProfile } from './pages/profile/EntrepreneurProfile';
import { InvestorProfile } from './pages/profile/InvestorProfile';
import { EntrepreneurProfile } from "./pages/profile/EntrepreneurProfile";
import { InvestorProfile } from "./pages/profile/InvestorProfile";

// Feature Pages
import { InvestorsPage } from './pages/investors/InvestorsPage';
import { EntrepreneursPage } from './pages/entrepreneurs/EntrepreneursPage';
import { MessagesPage } from './pages/messages/MessagesPage';
import { NotificationsPage } from './pages/notifications/NotificationsPage';
import { DocumentsPage } from './pages/documents/DocumentsPage';
import { SettingsPage } from './pages/settings/SettingsPage';
import { HelpPage } from './pages/help/HelpPage';
import { DealsPage } from './pages/deals/DealsPage';
import { InvestorsPage } from "./pages/investors/InvestorsPage";
import { EntrepreneursPage } from "./pages/entrepreneurs/EntrepreneursPage";
import { MessagesPage } from "./pages/messages/MessagesPage";
import { NotificationsPage } from "./pages/notifications/NotificationsPage";
import { DocumentsPage } from "./pages/documents/DocumentsPage";
import { SettingsPage } from "./pages/settings/SettingsPage";
import { HelpPage } from "./pages/help/HelpPage";
import { DealsPage } from "./pages/deals/DealsPage";

// Chat Pages
import { ChatPage } from './pages/chat/ChatPage';
import { ChatPage } from "./pages/chat/ChatPage";
import { ForgotPasswordPage } from "./pages/auth/ForgotPasswordPage";
import { ResetPasswordPage } from "./pages/auth/ResetPasswordPage";
//import { VideoCall } from "./components/webRTC/Videocall";
//import { AudioCall } from "./components/webRTC/AudioCall";
import { Toaster } from "react-hot-toast";
import {
FraudAndRiskDetection,
} from "./pages/admin/FraudAndRiskDetection";
import { Activities } from "./pages/admin/activities";
import { Investors } from "./pages/admin/investors";
import Campaigns from "./pages/admin/campaigns";

import { HomePage } from "./pages/home/HomePage";
import { LoginWithOAuthPage } from "./pages/auth/LoginWithOAuthPage";
import { UserDetails } from "./components/user/UserDetails";
import { Supporters } from "./pages/admin/supporters";
import { FlaggedAccounts } from "./pages/admin/flaggedAccounts";
import { Users } from "./pages/admin/Users";

function App() {
return (
<AuthProvider>
<Router>
<Routes>
{/* Authentication Routes */}
<Route path="/login" element={<LoginPage />} />
<Route path="/register" element={<RegisterPage />} />

{/* Dashboard Routes */}
<Route path="/dashboard" element={<DashboardLayout />}>
<Route path="entrepreneur" element={<EntrepreneurDashboard />} />
<Route path="investor" element={<InvestorDashboard />} />
</Route>

{/* Profile Routes */}
<Route path="/profile" element={<DashboardLayout />}>
<Route path="entrepreneur/:id" element={<EntrepreneurProfile />} />
<Route path="investor/:id" element={<InvestorProfile />} />
</Route>

{/* Feature Routes */}
<Route path="/investors" element={<DashboardLayout />}>
<Route index element={<InvestorsPage />} />
</Route>

<Route path="/entrepreneurs" element={<DashboardLayout />}>
<Route index element={<EntrepreneursPage />} />
</Route>

<Route path="/messages" element={<DashboardLayout />}>
<Route index element={<MessagesPage />} />
</Route>

<Route path="/notifications" element={<DashboardLayout />}>
<Route index element={<NotificationsPage />} />
</Route>

<Route path="/documents" element={<DashboardLayout />}>
<Route index element={<DocumentsPage />} />
</Route>

<Route path="/settings" element={<DashboardLayout />}>
<Route index element={<SettingsPage />} />
</Route>

<Route path="/help" element={<DashboardLayout />}>
<Route index element={<HelpPage />} />
</Route>

<Route path="/deals" element={<DashboardLayout />}>
<Route index element={<DealsPage />} />
</Route>

{/* Chat Routes */}
<Route path="/chat" element={<DashboardLayout />}>
<Route index element={<ChatPage />} />
<Route path=":userId" element={<ChatPage />} />
</Route>

{/* Redirect root to login */}
<Route path="/" element={<Navigate to="/login" replace />} />

{/* Catch all other routes and redirect to login */}
<Route path="*" element={<Navigate to="/login" replace />} />
</Routes>
</Router>
<SocketProvider>
<Router>
<Routes>
{/* Authentication Routes */}
<Route path="/login" element={<LoginPage />} />
<Route path="/register" element={<RegisterPage />} />
<Route path="/fill-details" element={<UserDetails />} />
<Route path="/forgot-password" element={<ForgotPasswordPage />} />
<Route path="/reset-password" element={<ResetPasswordPage />} />
<Route path="/login-with-oauth" element={<LoginWithOAuthPage />} />

{/* Dashboard Routes */}
<Route path="/dashboard" element={<DashboardLayout />}>
<Route path="entrepreneur" element={<EntrepreneurDashboard />} />
<Route path="investor" element={<InvestorDashboard />} />
<Route path="admin" element={<AdminDashboard />} />
</Route>

<Route path="/admin" element={<DashboardLayout />}>
<Route path="activities" element={<Activities />} />
<Route path="all-users" element={<Users />} />
<Route path="investors" element={<Investors />} />
<Route path="campaigns" element={<Campaigns />} />
<Route path="supporters" element={<Supporters />} />
<Route path="flaggedAccounts" element={<FlaggedAccounts />} />
<Route
path="fraud-and-risk-detection"
element={<FraudAndRiskDetection />}
/>
</Route>

{/* Profile Routes */}
<Route path="/profile" element={<DashboardLayout />}>
<Route
path="entrepreneur/:id"
element={<EntrepreneurProfile />}
/>
<Route path="investor/:id" element={<InvestorProfile />} />
</Route>

{/* Feature Routes */}
<Route path="/investors" element={<DashboardLayout />}>
<Route index element={<InvestorsPage />} />
</Route>

<Route path="/entrepreneurs" element={<DashboardLayout />}>
<Route index element={<EntrepreneursPage />} />
</Route>

<Route path="/messages" element={<DashboardLayout />}>
<Route index element={<MessagesPage />} />
</Route>

<Route path="/notifications" element={<DashboardLayout />}>
<Route index element={<NotificationsPage />} />
</Route>

<Route path="/documents" element={<DashboardLayout />}>
<Route index element={<DocumentsPage />} />
</Route>

<Route path="/settings" element={<DashboardLayout />}>
<Route index element={<SettingsPage />} />
</Route>

<Route path="/help" element={<DashboardLayout />}>
<Route index element={<HelpPage />} />
</Route>

<Route path="/call" element={<DashboardLayout />}></Route>

<Route path="/deals" element={<DashboardLayout />}>
<Route index element={<DealsPage />} />
</Route>

{/* Chat Routes */}
<Route path="/chat" element={<DashboardLayout />}>
<Route path=":userId" element={<ChatPage />} />
</Route>

{/* Redirect root to login */}
<Route path="/" element={<HomePage />} />

{/* Catch all other routes and redirect to login */}
<Route
path="/dashboard/entreprenuer"
element={<Navigate to="/login" replace />}
/>
</Routes>
</Router>
<Toaster position="top-right" reverseOrder={false} />
</SocketProvider>
</AuthProvider>
);
}

export default App;
export default App;
55 changes: 55 additions & 0 deletions src/components/admin/FraudAndRiskDetectionChart.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import {
LineChart,
Line,
XAxis,
YAxis,
Tooltip,
CartesianGrid,
ResponsiveContainer,
} from "recharts";

const data = [
{
riskScore: 10,
count: 6,
eventType: "failed_login",
},

{
riskScore: 13,
count: 7,
eventType: "multi time",
},
{
riskScore: 13,
count: 20,
eventType: "failed_login",
},

{
riskScore: 20,
count: 4,
eventType: "multitime login",
},
];
export const FraudAndRiskDetectionChart = ({}) => {
return (
<ResponsiveContainer width="100%" height="100%">
<LineChart data={data}>
<XAxis dataKey="eventType" tickMargin={8} />
<YAxis allowDecimals={true} />
<YAxis />
<Line dataKey="count" type="monotone" stroke="pink" strokeWidth={3} />
<Line
dataKey="riskScore"
type="monotone"
stroke="brown"
strokeWidth={3}
/>

<Tooltip />
<CartesianGrid stroke="#ddd" />
</LineChart>
</ResponsiveContainer>
);
};
35 changes: 35 additions & 0 deletions src/components/admin/FundingChart.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import {
AreaChart,
Area,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
ResponsiveContainer,
} from "recharts";

const data = [
{ month: "Jan", funding: 20000 },
{ month: "Feb", funding: 80000 },
{ month: "Mar", funding: 40000 },
{ month: "Apr", funding: 100000 },
];

export const FundingChart = () => {
return (
<ResponsiveContainer width={"100%"} height={"100%"}>
<AreaChart data={data}>
<XAxis dataKey="month" tickMargin={8} />
<YAxis />
<Tooltip />
<CartesianGrid stroke="black" />
<Area
type="monotone"
dataKey="funding"
stroke="#16234a"
fill="#86e32c"
/>
</AreaChart>
</ResponsiveContainer>
);
};
Empty file.
Loading