diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..8e7466302 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +REACT_APP_ENV=development diff --git a/.gitignore b/.gitignore index a547bf36d..3b02c83a8 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,9 @@ dist-ssr *.njsproj *.sln *.sw? + + + + + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..d3831bede --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,42 @@ +CONTRIBUTING.md +Contributing Guidelines + +Thank you for your interest in the Business Nexus Frontend Project! + +This repository was forked from the original source as part of an internship project at DeveloperHub Corporation. The main purpose of this fork is to implement, test, and finalize features during the internship journey. The project has been updated, improved, and deployed based on the internship requirements. + +How This Project Was Developed + +The project was forked from the original repository to create a personal development copy. + +New features, UI enhancements, and bug fixes were implemented locally. + +All changes were committed and tested thoroughly before deployment. + +The project is now live and deployed for demonstration purposes: Vercel Deployment + +Guidelines for Future Contributions + +If you are reviewing or contributing to this repository: + +Fork & Clone: Always fork this repository first before making any changes. + +Branching: Create a new branch for each feature or bugfix. + +Commit Messages: Write clear and descriptive commit messages. Example: + +Added Payment UI mock for Week 3 + +Fixed responsive layout issues on dashboard + +Pull Requests: Submit PRs with detailed descriptions of the changes. + +Testing: Ensure all features work as expected locally before submitting any PR. + +Notes + +This repository represents the final state of the internship project. + +Any additional contributions should respect the original project structure and styling. + +Screenshots, demo videos, and documentation are included to guide understanding of the workflow. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..ff3b2dedd --- /dev/null +++ b/LICENSE @@ -0,0 +1,93 @@ +CUSTOM OPEN SOURCE LICENSE +VERSION 1.0 + +COPYRIGHT (C) 2025 MUHAMMAD YASIR +ALL RIGHTS RESERVED. + +THIS PROJECT, INCLUDING ALL SOURCE CODE, UI COMPONENTS, DESIGN STRUCTURE, +LAYOUTS, WORKFLOWS, AND DOCUMENTATION, IS CREATED AND MAINTAINED BY +MUHAMMAD YASIR AS A FRONTEND INTERNSHIP PROJECT. + +-------------------------------------------------- +PERMISSION GRANT +-------------------------------------------------- + +PERMISSION IS HEREBY GRANTED, FREE OF CHARGE, TO ANY PERSON OBTAINING A COPY +OF THIS SOFTWARE AND ASSOCIATED DOCUMENTATION FILES (THE "SOFTWARE"), TO USE, +COPY, MODIFY AND STUDY THE SOFTWARE FOR: + +• EDUCATIONAL PURPOSES +• LEARNING AND PRACTICE +• PERSONAL PROJECTS +• PORTFOLIO SHOWCASE +• NON-COMMERCIAL DEMOS + +SUBJECT TO THE FOLLOWING CONDITIONS: + +-------------------------------------------------- +ATTRIBUTION REQUIREMENT +-------------------------------------------------- + +ANY USE OF THIS SOFTWARE, IN PART OR IN FULL, MUST INCLUDE CLEAR CREDIT TO +THE ORIGINAL AUTHOR: + +AUTHOR NAME: MUHAMMAD YASIR +PROJECT NAME: BUSINESS NEXUS PLATFORM (FRONTEND) + +CREDIT MUST BE VISIBLE IN AT LEAST ONE OF THE FOLLOWING: +• README FILE +• PROJECT DOCUMENTATION +• APPLICATION FOOTER +• ABOUT / CREDITS SECTION + +REMOVING OR HIDING AUTHOR CREDIT IS STRICTLY PROHIBITED. + +-------------------------------------------------- +COMMERCIAL USE +-------------------------------------------------- + +COMMERCIAL USE, RESELLING OR MONETIZATION OF THIS SOFTWARE OR ANY DERIVED +WORK BASED ON IT IS NOT PERMITTED WITHOUT PRIOR WRITTEN PERMISSION FROM +THE AUTHOR (MUHAMMAD YASIR). + +FOR COMMERCIAL LICENSING OR COLLABORATION, CONTACT THE AUTHOR DIRECTLY. + +-------------------------------------------------- +NO BACKEND / NO REAL TRANSACTIONS +-------------------------------------------------- + +THIS PROJECT IS A FRONTEND-ONLY DEMONSTRATION. +ALL PAYMENTS, DEALS, AUTHENTICATION FLOWS AND SECURITY FEATURES ARE +UI MOCKUPS AND SIMULATIONS ONLY. + +THE SOFTWARE DOES NOT PROCESS REAL PAYMENTS OR REAL FINANCIAL DATA. + +-------------------------------------------------- +DISCLAIMER +-------------------------------------------------- + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-------------------------------------------------- +FINAL NOTE +-------------------------------------------------- + +THIS LICENSE IS DESIGNED TO SUPPORT OPEN LEARNING, COMMUNITY GROWTH, AND +SKILL DEVELOPMENT, WHILE RESPECTING THE EFFORT AND OWNERSHIP OF THE CREATOR. + +IF YOU LEARN FROM THIS PROJECT, PLEASE GIVE CREDIT. +IF YOU BUILD ON TOP OF IT, PLEASE MENTION THE AUTHOR. +IF YOU ARE INSPIRED BY IT, THAT IS THE BIGGEST SUCCESS. + +CREATED WITH PASSION, DISCIPLINE AND CONSISTENCY. + +-------------------------------------------------- +END OF LICENSE +-------------------------------------------------- diff --git a/README.md b/README.md new file mode 100644 index 000000000..e05105248 --- /dev/null +++ b/README.md @@ -0,0 +1,451 @@ + +## Project Structure Overview + +- src/ + - components/ → Reusable UI components + - pages/ → Application pages (Login, Dashboard, etc.) + - routes/ → Route definitions + - assets/ → Images and static files + +This project follows a modular React architecture for scalability and maintainability. + + +## Week 1 – Scheduling & Setup (Completed) + +### UI Theme Setup +A consistent UI theme has been implemented using Tailwind CSS. +The project uses a unified color palette (Primary, Secondary, Accent) and typography to ensure visual consistency across the platform. + +📸 Screenshot: UI theme and dashboard layout + + +--- + +### Meeting Scheduling Calendar +A meeting scheduling calendar has been integrated using FullCalendar. +This calendar allows entrepreneurs to visually view scheduled meetings and upcoming discussions. + +Key highlights: +- Monthly calendar view +- Clean and responsive UI +- Ready for future availability and booking logic + +**📸 Screenshot:** Calendar integrated into Entrepreneur Dashboard +![Add Calendar](screeenshort/add-calendar.jpg) + +--- + +### Sample Meetings (Demo Events) +Dummy meetings have been added to demonstrate calendar functionality: +- Investor Meeting – 20 Dec +- Pitch Discussion – 22 Dec +- Follow-up Call – 25 Dec + +**📸 Screenshot:** Calendar with sample meeting events +![Meeting Events](screeenshort/meeting-events-calander-2.jpg) + + +## 🗓️ Week 1 – Scheduling & Setup (Summary) + +In Week 1, the foundation of the project was established with a strong focus on UI setup and meeting scheduling functionality. A consistent and scalable UI theme was implemented using Tailwind CSS, ensuring uniform colors, typography and layout across the application. This provided a solid visual base for future feature development. + +The core highlight of this week was the integration of a meeting scheduling calendar into the Entrepreneur Dashboard. Using a clean and responsive calendar UI, entrepreneurs can visually track meetings and discussions. Demo meeting events were added to showcase functionality and simulate real-world usage scenarios, making the feature easy to understand and review. + +Overall, Week 1 successfully laid down the structural and visual groundwork of the application, preparing the platform for advanced collaboration features in the upcoming phases. + +![Week 1 Complete](https://img.shields.io/badge/Week%201-COMPLETE%20(UI%20Level)-brightgreen?style=for-the-badge) + + +------------- + + + + +## Week 2 – Video Calling & Collaboration (In Progress) + +### Video Calling UI (Mock) +A video calling interface has been added as a frontend mock to demonstrate real-time collaboration capabilities between investors and entrepreneurs. + +Features included: +- Video call screen layout +- Mic on/off toggle +- Video on/off toggle +- End call button +- Clean and minimal UI for demo purposes + +**Screenshot:** Full page dashboard with video call section  ![Full page dashboard with video call section ](screeenshort/video-call02.png) + +**Screenshot:** Video calling mock interface   +![Video calling mock interface ](screeenshort/video-call01.png) + +--------------- +### Document Chamber (Mock) +A document chamber UI has been added to manage deal-related files such as proposals and agreements. +The interface includes document listing, upload button (mock), and status labels like Draft, In Review and Signed. + +**📸 Screenshot:** Document Chamber UI +![Document Chamber UI ](screeenshort/document-uplode01.png) + + +## Week 2 Completed – UI Enhancements & Features + +**Status:** Completed successfully + +In Week 2, key UI features were implemented and integrated smoothly into the Nexus project. The focus was on improving usability, visual consistency and core dashboard functionality. + +### Highlights: + +* **Calendar Dashboard** integrated and displayed correctly +* **Video Call Mock UI** added for meeting simulation +* **Document Chamber UI** implemented for managing startup documents +* **Consistent color theme & layout** applied across new components + +All features were tested locally, screenshots were captured and changes were pushed to GitHub. + + *Week 2 tasks are fully completed and ready for review.* + +![Week 2 Complete](https://img.shields.io/badge/Week%202-COMPLETE%20(UI%20Level)-brightgreen?style=for-the-badge) + +## Week 3 – Payment UI & Transactions (In Progress) + +### Overview +In Week 3, the focus is on implementing the **Payment UI** for the Nexus Platform. +This module allows users to view and interact with a clean, user-friendly payment interface, preparing the system for future payment integrations. + +--- + +### 💳 Payment UI Features +- Dedicated **Payments page** accessible from the sidebar +- Card-based payment layout (UI mock) +- Consistent design using Tailwind CSS theme +- Fully responsive layout inside Dashboard + +--- + +### Implementation Details +- New Payments page created and connected via routing +- Sidebar navigation updated to include Payments +- Dashboard layout reused for consistency +- UI prepared for future backend/payment gateway integration + +--- + +### 📸 Screenshots +> Below screenshots demonstrate the completed Payment UI setup: + +- **Payment Card UI / Slide** + ![Payment Card](./screeenshort/payment-slide-bar.png) + +- **Payment Page – Full View** + ![Payment Page Full](./screeenshort/payment-page-full.png) + + + +--- + +### 📅 Status +✅ Payment UI created +✅ Routing configured +✅ Screenshots documented + +⏳ Next: Payment flow logic & enhancements + +### 💼 Payment Actions (Deposit / Withdraw / Transfer) + +The following screenshots demonstrate the **mock payment actions** implemented as part of the Payment UI. +These actions are UI-based simulations designed to represent real-world payment workflows. + +- **Wallet Overview & Add Payment (Mock UI)** + Displays the wallet balance with an option to add funds. +This screen provides a quick overview of available payment balance inside the wallet. + ![Deposit UI](./screeenshort/add-%20banlace-payment.png) + +- **Payment Actions: Deposit / Withdraw / Transfer (Mock UI)** + Shows available payment actions including deposit, withdraw and transfer. +These actions are UI simulations representing common financial operations. + ![Withdraw UI](./screeenshort/d-w-t-ss0.png) + +- **Recent Transactions List (Mock UI)** + Represents transferring funds between users within the platform (UI mock). + ![Transfer UI](./screeenshort/transactions-list3.png) + +--- + +### 📸 Screenshots + +Below are the key screenshots demonstrating the completed features: + +Entrepreneur Dashboard – Funding Request View +![Funding Request View UI](./screeenshort/yasir001.png) + +Payments Page – Recent Transactions (Sender → Receiver visible) +![Sender → Receiver visible UI](./screeenshort/yasir0001.png) + +Funding Offer Form (Investor Side) + + +## 🤝 Funding Deal – Investor → Entrepreneur (Mock Flow) + +The following screenshots demonstrate the mock funding deal flow from an investor to an entrepreneur. +This completes the simulated investment lifecycle on the platform. + +Entrepreneur Dashboard – Funding Request View +Shows pending funding requests received from investors on the entrepreneur dashboard. + + + +Funding Offer Card (Zoomed View) +Displays an individual funding offer card with Pending status and available actions. + + + +Send Funding Offer Section (Investor Side) +Investor can enter funding amount, add an optional message and send a funding offer. + + + +### 📝 Summary +Entrepreneurs can view funding offers sent by investors and take action (Accept / Decline). +This completes the mock funding deal flow between Investor and Entrepreneur. + +------ +## 🔐 Milestone 6 +**Security & Access Control +(Completed)** + + ***Overview***
+Milestone 6 focuses on improving frontend security and access control for the Nexus platform. +This module enhances the authentication flow with role awareness and additional security layers. + + ***Implemented Features***
+• Role-based Login UI (Investor / Entrepreneur) with separate dashboard redirects +• Multi-step Login Flow with a mock **OTP (2FA)** screen for enhanced security +• Clean, responsive authentication UI using reusable components + + +### 📸 Screenshots +* • Login Page (Role Selection) +![Login Page (Role Selection) UI](./screeenshort/login-p-role.png/) + +* • OTP Verification Screen* +![OTP Verification Screen UI](./screeenshort/otp-page.png) + +• Successful Redirect to Role-based Dashboard +![Successful Redirect to Role-based Dashboard UI](./screeenshort/deshbore101.png) + + + Module Status +These updates mark the start of Module 6 and prepare the platform for stronger authentication and access control mechanisms. + +![Milestone 6 Completed](https://img.shields.io/badge/Milestone06-Completed-red?style=for-the-badge) +--------------------------------- + + +![Milestone 7](https://img.shields.io/badge/Milestone%207-STARTED-blue?style=flat-square) +## Milestone 7: Integration & Demo Preparation + +In this milestone, we focused on integrating all newly developed modules into the main application flow. +All major features such as Payments, Security & Access Control, and role-based dashboards are now accessible directly from the sidebar navigation. + +The application layout ensures clear separation between Entrepreneur and Investor panels, improving usability and navigation clarity. +Basic responsive checks were performed to ensure proper layout on different screen sizes. + +This milestone also prepares the platform for final demo and walkthrough by adding a dedicated Platform Demo entry. +Screenshots below demonstrate successful integration of modules and navigation flow. + + +## Screenshots Section +### Dashboard Layout (Full Sidebar View) +![Dashboard Sidebar](screeenshort/sidebar-yasir.png) + +This screenshot shows the complete dashboard sidebar with role-based navigation, including Payments, Security & Access and Platform Demo modules. + +### Entrepreneur Panel dashbord +![Entrepreneur Dashboard](screeenshort/yasir001.png) + +This view highlights the Entrepreneur dashboard with startup management, investor discovery, payment and document access. + + +### Investor Panel View (Deals Included) +![Entrepreneur Dashboard](screeenshort/dashbord0011.png) +This screenshot demonstrates the Investor dashboard, including portfolio access, startup discovery, payments and the Deals module. + +### Security & Access Control +![Security Module](screeenshort/Security.png) + +This screen represents the Security & Access module featuring password strength indicators, access-related settings and role-based UI control. + +------- + +## Guided Walkthrough Screenshots (React Joyride) + +--- + +### 1️ Welcome Popup – Dashboard Entry + +**Description:** +A welcome popup appears as soon as the dashboard loads, introducing the user to the main dashboard area and the overall layout. This helps users quickly understand the interface and feel comfortable navigating the system. +![Welcome Popup – Dashboard Entry](screeenshort/aaa1.png) + +--- + +### 2️ Sidebar Navigation Highlight + +**Description:** +In this step, the guided tour highlights the sidebar and explains how users can navigate between different modules and sections using the sidebar menu. This ensures a clear and user-friendly navigation experience. +![Sidebar Navigation Highlight](screeenshort/bbb2.png) + +--- + +### 3️ Navbar – Notifications & Profile + +**Description:** +This step focuses on the top navigation bar, showing where users can access notifications, profile options and account-related settings. It helps users stay informed and manage their profile easily. +![Navbar – Notifications & Profile](screeenshort/ccc3.png) + +--- + +### 4️ Main Content Area Overview + +**Description:** +The final step highlights the main content area, explaining that this section is used to display core data, pages, reports and important dashboard information. +![Main Content Area Overview](screeenshort/ddd4.png) + +--- + +### What This Covers (Milestone 7 – Guided Walkthrough) + +* Interactive dashboard onboarding experience +* Clear and step-by-step navigation guidance +* Professional, demo-ready UI walkthrough +* UI-only guided tour implemented using **React Joyride** + +--- + +### Implementation Notes + +* This walkthrough is UI-only and does not affect backend logic +* Designed for demos, presentations and first-time user onboarding +* Fully compatible with modern React dashboards + +--- + + **Note:** +This guided walkthrough enhances the user experience and helps new users understand the dashboard quickly and effectively. + +--- + +### Implementation Notes +- Walkthrough is UI-only with no backend impact +- Designed for demos and first-time user onboarding +- Built using React Joyride for smooth step-by-step guidance + +--- +![Milestone 7 Status](https://img.shields.io/badge/Milestone%207-IN%20PROGRESS-blue?style=flat-square) + +### Milestone 7: Integration & Demo Preparation + +### Overview + +Milestone 7 focuses on **final integration, testing, and demo preparation** of the Business Nexus frontend project. At this stage, all major UI modules are connected, walkthrough guidance is implemented and the project is ready for presentation and evaluation. + +--- + +### What Was Completed + +* All modules are now accessible through **main navigation & sidebar** +* **Role-based UI navigation** verified (Investor / Entrepreneur) +* **Responsive testing** across desktop and tablet views +* **Guided walkthrough** implemented using React Joyride +* Demo video recorded and published + +--- + +### Guided Walkthrough (React Joyride) + +The walkthrough helps first-time users understand the dashboard layout: + +1. Welcome popup on dashboard load +2. Sidebar navigation highlighted +3. Navbar actions (profile, notifications) +4. Main content area explanation + +This improves usability and gives a professional onboarding experience. + +--- + +### Demo & Live Preview + +* ▶️ **YouTube Demo Video:** *[YouTube Video link](https://youtu.be/WzJRw8mMFSk?si=AoCAHBS4iX0bNuTi)* +* 💼 **LinkedIn Demo Post:** *[LinkedIn Demo Post](https://www.linkedin.com/posts/yasirawan4831_frontenddevelopment-reactjs-typescript-activity-7412131972237496320-vBpq?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFyt-1EB5XKMOcxukQpAzVmx6pIKiXdCz64)* +* 🌐 **Live Deployment (Vercel):** *[Live Link](https://yasirawan.vercel.app/login)* + +--- + + + +--- + +## 🛠️ Technical Stack +- **Frontend:** React.js, Tailwind CSS +- **Routing:** React Router +- **Calendar:** FullCalendar +- **Tour Guide:** React Joyride +- **Icons:** Lucide React / Heroicons +- **Build Tool:** Vite + +--- + +## 📁 Installation & Setup +```bash +# Clone the repository +git clone https://github.com/your-username/nexus-platform.git + +# Navigate to project directory +cd nexus-platform + +# Install dependencies +npm install + +# Start development server +npm run dev +``` +-------- + + +### 📊 Project Status + +![Status](https://img.shields.io/badge/Status-Completed-brightgreen.svg) +![Progress](https://img.shields.io/badge/Progress-98%25-success.svg) +![Frontend](https://img.shields.io/badge/Type-Frontend%20Project-blue.svg) + + +The project is **98%+ complete**, with all planned frontend milestones successfully delivered. + +--- + +### Acknowledgements + +Special thanks to: + +*Special thanks to **Developer Hub Corporation** for learning support and guidance. + +--- + +### 📄 License + +This project is licensed under the **MIT License**. + +🔗 *License details will be added here.* + + +## Author +Muhhammad Yasir +![GitHub](https://img.shields.io/badge/GitHub-YasirAwan4831-black?logo=github) +![LinkedIn](https://img.shields.io/badge/LinkedIn-Muhammad%20Yasir-blue?logo=linkedin) +![Email](https://img.shields.io/badge/Email-Contact%20Me-red?logo=gmail) + +**Muhammad Yasir**
+GitHub: [https://github.com/YasirAwan4831](https://github.com/YasirAwan4831)
+LinkedIn: https://www.linkedin.com/in/yasirawan4831/
+Email: [my3154831409@gmail.com](mailto:my3154831409@gmail.com) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bf00121ba..fb8d31a15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "business-nexus", "version": "0.1.0", "dependencies": { + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/react": "^6.1.19", "axios": "^1.6.7", "date-fns": "^3.3.1", "lucide-react": "^0.344.0", @@ -15,6 +18,7 @@ "react-dom": "^18.3.1", "react-dropzone": "^14.2.3", "react-hot-toast": "^2.4.1", + "react-joyride": "^2.9.3", "react-router-dom": "^6.22.1" }, "devDependencies": { @@ -86,6 +90,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.25.7", @@ -842,6 +847,51 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@fullcalendar/core": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.19.tgz", + "integrity": "sha512-z0aVlO5e4Wah6p6mouM0UEqtRf1MZZPt4mwzEyU6kusaNL+dlWQgAasF2cK23hwT4cmxkEmr4inULXgpyeExdQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.19.tgz", + "integrity": "sha512-IAAfnMICnVWPjpT4zi87i3FEw0xxSza0avqY/HedKEz+l5MTBYvCDPOWDATpzXoLut3aACsjktIyw9thvIcRYQ==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.19.tgz", + "integrity": "sha512-GOciy79xe8JMVp+1evAU3ytdwN/7tv35t5i1vFkifiuWcQMLC/JnLg/RA2s4sYmQwoYhTw/p4GLcP0gO5B3X5w==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/react": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.19.tgz", + "integrity": "sha512-FP78vnyylaL/btZeHig8LQgfHgfwxLaIG6sKbNkzkPkKEACv11UyyBoTSkaavPsHtXvAkcTED1l7TOunAyPEnA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19", + "react": "^16.7.0 || ^17 || ^18 || ^19", + "react-dom": "^16.7.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/@gilbarbara/deep-equal": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.3.1.tgz", + "integrity": "sha512-I7xWjLs2YSVMc5gGx1Z3ZG1lgFpITPndpi8Ku55GeEIKpACCPQNS/OTqQbxgTCfq0Ncvcc+CrFov96itVh6Qvw==", + "license": "MIT" + }, "node_modules/@humanfs/core": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", @@ -1273,14 +1323,13 @@ "node_modules/@types/prop-types": { "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, "node_modules/@types/react": { "version": "18.3.11", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", - "dev": true, + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -1333,6 +1382,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.8.1", "@typescript-eslint/types": "8.8.1", @@ -1549,6 +1599,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1758,6 +1809,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001663", "electron-to-chromium": "^1.5.28", @@ -1949,7 +2001,8 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "peer": true }, "node_modules/date-fns": { "version": "3.6.0", @@ -1978,12 +2031,27 @@ } } }, + "node_modules/deep-diff": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", + "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==", + "license": "MIT" + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2143,6 +2211,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", @@ -2879,6 +2948,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-lite": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-1.2.1.tgz", + "integrity": "sha512-pgF+L5bxC+10hLBgf6R2P4ZZUBOQIIacbdo8YvuCP8/JvsWxG7aZ9p10DYuLtifFci4l3VITphhMlMV4Y+urPw==", + "license": "MIT" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3365,6 +3440,17 @@ "node": ">= 6" } }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/postcss": { "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", @@ -3384,6 +3470,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.0", @@ -3520,6 +3607,16 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -3579,6 +3676,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -3590,6 +3688,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -3615,6 +3714,45 @@ "react": ">= 16.8 || 18.0.0" } }, + "node_modules/react-floater": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/react-floater/-/react-floater-0.7.9.tgz", + "integrity": "sha512-NXqyp9o8FAXOATOEo0ZpyaQ2KPb4cmPMXGWkx377QtJkIXHlHRAGer7ai0r0C1kG5gf+KJ6Gy+gdNIiosvSicg==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "is-lite": "^0.8.2", + "popper.js": "^1.16.0", + "prop-types": "^15.8.1", + "tree-changes": "^0.9.1" + }, + "peerDependencies": { + "react": "15 - 18", + "react-dom": "15 - 18" + } + }, + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@gilbarbara/deep-equal/-/deep-equal-0.1.2.tgz", + "integrity": "sha512-jk+qzItoEb0D0xSSmrKDDzf9sheQj/BAPxlgNxgmOaA3mxpUa6ndJLYGZKsJnIVEQSD8zcTbyILz7I0HcnBCRA==", + "license": "MIT" + }, + "node_modules/react-floater/node_modules/is-lite": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/is-lite/-/is-lite-0.8.2.tgz", + "integrity": "sha512-JZfH47qTsslwaAsqbMI3Q6HNNjUuq6Cmzzww50TdP5Esb6e1y2sK2UAaZZuzfAzpoI2AkxoPQapZdlDuP6Vlsw==", + "license": "MIT" + }, + "node_modules/react-floater/node_modules/tree-changes": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.9.3.tgz", + "integrity": "sha512-vvvS+O6kEeGRzMglTKbc19ltLWNtmNt1cpBoSYLj/iEcPVvpJasemKOlxBrmZaCtDJoF+4bwv3m01UKYi8mukQ==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.1.1", + "is-lite": "^0.8.2" + } + }, "node_modules/react-hot-toast": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.2.tgz", @@ -3632,12 +3770,45 @@ "react-dom": ">=16" } }, + "node_modules/react-innertext": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-innertext/-/react-innertext-1.1.5.tgz", + "integrity": "sha512-PWAqdqhxhHIv80dT9znP2KvS+hfkbRovFp4zFYHFFlOoQLRiawIic81gKb3U1wEyJZgMwgs3JoLtwryASRWP3Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">=0.0.0 <=99", + "react": ">=0.0.0 <=99" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, + "node_modules/react-joyride": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/react-joyride/-/react-joyride-2.9.3.tgz", + "integrity": "sha512-1+Mg34XK5zaqJ63eeBhqdbk7dlGCFp36FXwsEvgpjqrtyywX2C6h9vr3jgxP0bGHCw8Ilsp/nRDzNVq6HJ3rNw==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.3.1", + "deep-diff": "^1.0.2", + "deepmerge": "^4.3.1", + "is-lite": "^1.2.1", + "react-floater": "^0.7.9", + "react-innertext": "^1.1.5", + "react-is": "^16.13.1", + "scroll": "^3.0.1", + "scrollparent": "^2.1.0", + "tree-changes": "^0.11.2", + "type-fest": "^4.27.0" + }, + "peerDependencies": { + "react": "15 - 18", + "react-dom": "15 - 18" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -3802,6 +3973,18 @@ "loose-envify": "^1.1.0" } }, + "node_modules/scroll": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scroll/-/scroll-3.0.1.tgz", + "integrity": "sha512-pz7y517OVls1maEzlirKO5nPYle9AXsFzTMNJrRGmT951mzpIBy7sNHOg5o/0MQd/NqliCiWnAi0kZneMPFLcg==", + "license": "MIT" + }, + "node_modules/scrollparent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz", + "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==", + "license": "ISC" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4092,6 +4275,16 @@ "node": ">=8.0" } }, + "node_modules/tree-changes": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/tree-changes/-/tree-changes-0.11.3.tgz", + "integrity": "sha512-r14mvDZ6tqz8PRQmlFKjhUVngu4VZ9d92ON3tp0EGpFBE6PAHOq8Bx8m8ahbNoGE3uI/npjYcJiqVydyOiYXag==", + "license": "MIT", + "dependencies": { + "@gilbarbara/deep-equal": "^0.3.1", + "is-lite": "^1.2.1" + } + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -4128,11 +4321,24 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4214,6 +4420,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "dev": true, + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", diff --git a/package.json b/package.json index cdfd37b29..c9284c202 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,18 @@ "preview": "vite preview" }, "dependencies": { + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/react": "^6.1.19", + "axios": "^1.6.7", + "date-fns": "^3.3.1", "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.4.1", + "react-joyride": "^2.9.3", + "react-router-dom": "^6.22.1" }, "devDependencies": { "@eslint/js": "^9.9.1", @@ -35,4 +39,4 @@ "typescript-eslint": "^8.3.0", "vite": "^5.4.2" } -} \ No newline at end of file +} diff --git a/screeenshort/Security.png b/screeenshort/Security.png new file mode 100644 index 000000000..debb2812c Binary files /dev/null and b/screeenshort/Security.png differ diff --git a/screeenshort/aaa1.png b/screeenshort/aaa1.png new file mode 100644 index 000000000..3c7cb7b9b Binary files /dev/null and b/screeenshort/aaa1.png differ diff --git a/screeenshort/add- banlace-payment.png b/screeenshort/add- banlace-payment.png new file mode 100644 index 000000000..7a96b2756 Binary files /dev/null and b/screeenshort/add- banlace-payment.png differ diff --git a/screeenshort/add-calendar.jpg b/screeenshort/add-calendar.jpg new file mode 100644 index 000000000..90e68fbf3 Binary files /dev/null and b/screeenshort/add-calendar.jpg differ diff --git a/screeenshort/auick-actions-deposit-withdraw-transfer2.png b/screeenshort/auick-actions-deposit-withdraw-transfer2.png new file mode 100644 index 000000000..bf1516fdb Binary files /dev/null and b/screeenshort/auick-actions-deposit-withdraw-transfer2.png differ diff --git a/screeenshort/bbb2.png b/screeenshort/bbb2.png new file mode 100644 index 000000000..bf5474d14 Binary files /dev/null and b/screeenshort/bbb2.png differ diff --git a/screeenshort/ccc3.png b/screeenshort/ccc3.png new file mode 100644 index 000000000..65ebc1038 Binary files /dev/null and b/screeenshort/ccc3.png differ diff --git a/screeenshort/d-w-t-ss0.png b/screeenshort/d-w-t-ss0.png new file mode 100644 index 000000000..bf5161d17 Binary files /dev/null and b/screeenshort/d-w-t-ss0.png differ diff --git a/screeenshort/dashbord0011.png b/screeenshort/dashbord0011.png new file mode 100644 index 000000000..20b1b4c5a Binary files /dev/null and b/screeenshort/dashbord0011.png differ diff --git a/screeenshort/ddd4.png b/screeenshort/ddd4.png new file mode 100644 index 000000000..7a9972fb6 Binary files /dev/null and b/screeenshort/ddd4.png differ diff --git a/screeenshort/deshbore101.png b/screeenshort/deshbore101.png new file mode 100644 index 000000000..0307bc3f4 Binary files /dev/null and b/screeenshort/deshbore101.png differ diff --git a/screeenshort/desktop.ini b/screeenshort/desktop.ini new file mode 100644 index 000000000..1130e4c48 --- /dev/null +++ b/screeenshort/desktop.ini @@ -0,0 +1,10 @@ +[LocalizedFileNames] +Screenshot 2025-12-28 131310.png=@Screenshot 2025-12-28 131310.png,0 +Screenshot 2025-12-28 143705.png=@Screenshot 2025-12-28 143705.png,0 +Screenshot 2025-12-28 131335.png=@Screenshot 2025-12-28 131335.png,0 +Screenshot 2025-12-29 014433.png=@Screenshot 2025-12-29 014433.png,0 +Screenshot 2025-12-29 014810.png=@Screenshot 2025-12-29 014810.png,0 +Screenshot 2025-12-30 003018.png=@Screenshot 2025-12-30 003018.png,0 +Screenshot 2025-12-30 011615.png=@Screenshot 2025-12-30 011615.png,0 +Screenshot 2025-12-30 011558.png=@Screenshot 2025-12-30 011558.png,0 +Screenshot 2025-12-30 011800.png=@Screenshot 2025-12-30 011800.png,0 diff --git a/screeenshort/document-uplode01.png b/screeenshort/document-uplode01.png new file mode 100644 index 000000000..b9c2106a0 Binary files /dev/null and b/screeenshort/document-uplode01.png differ diff --git a/screeenshort/login-p-role.png b/screeenshort/login-p-role.png new file mode 100644 index 000000000..9a98d1937 Binary files /dev/null and b/screeenshort/login-p-role.png differ diff --git a/screeenshort/meeting-events-calander-2.jpg b/screeenshort/meeting-events-calander-2.jpg new file mode 100644 index 000000000..29b817c5b Binary files /dev/null and b/screeenshort/meeting-events-calander-2.jpg differ diff --git a/screeenshort/otp-page.png b/screeenshort/otp-page.png new file mode 100644 index 000000000..540bd945a Binary files /dev/null and b/screeenshort/otp-page.png differ diff --git a/screeenshort/payment-page-full.png b/screeenshort/payment-page-full.png new file mode 100644 index 000000000..08e4bd33d Binary files /dev/null and b/screeenshort/payment-page-full.png differ diff --git a/screeenshort/payment-slide-bar.png b/screeenshort/payment-slide-bar.png new file mode 100644 index 000000000..c3b7a4621 Binary files /dev/null and b/screeenshort/payment-slide-bar.png differ diff --git a/screeenshort/sidebar-yasir.png b/screeenshort/sidebar-yasir.png new file mode 100644 index 000000000..98f294751 Binary files /dev/null and b/screeenshort/sidebar-yasir.png differ diff --git a/screeenshort/transactions-list3.png b/screeenshort/transactions-list3.png new file mode 100644 index 000000000..67dd0b271 Binary files /dev/null and b/screeenshort/transactions-list3.png differ diff --git a/screeenshort/video-call01.png b/screeenshort/video-call01.png new file mode 100644 index 000000000..719da7069 Binary files /dev/null and b/screeenshort/video-call01.png differ diff --git a/screeenshort/video-call02.png b/screeenshort/video-call02.png new file mode 100644 index 000000000..6ae3b624c Binary files /dev/null and b/screeenshort/video-call02.png differ diff --git a/screeenshort/wallet-balance+cards1.png b/screeenshort/wallet-balance+cards1.png new file mode 100644 index 000000000..18a9a7ae3 Binary files /dev/null and b/screeenshort/wallet-balance+cards1.png differ diff --git a/screeenshort/yasir0001.png b/screeenshort/yasir0001.png new file mode 100644 index 000000000..097d97471 Binary files /dev/null and b/screeenshort/yasir0001.png differ diff --git a/screeenshort/yasir001.png b/screeenshort/yasir001.png new file mode 100644 index 000000000..498af056a Binary files /dev/null and b/screeenshort/yasir001.png differ diff --git a/src/App.tsx b/src/App.tsx index 51b12d8bf..368a988c6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider } from './context/AuthContext'; -// Layouts +// Layout import { DashboardLayout } from './components/layout/DashboardLayout'; // Auth Pages @@ -26,8 +26,9 @@ 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 { PaymentsPage } from './pages/payments/PaymentsPage'; -// Chat Pages +// Chat import { ChatPage } from './pages/chat/ChatPage'; function App() { @@ -35,65 +36,67 @@ function App() { - {/* Authentication Routes */} + {/* Auth */} } /> } /> - - {/* Dashboard Routes */} + + {/* Dashboard */} }> } /> } /> - - {/* Profile Routes */} + + {/* Profiles */} }> } /> } /> - - {/* Feature Routes */} + + {/* Features */} }> } /> - + }> } /> - + }> } /> - + }> } /> - + }> } /> - + + }> + } /> + + }> } /> - + }> } /> - + }> } /> - - {/* Chat Routes */} + + {/* Chat */} }> } /> } /> - - {/* Redirect root to login */} + + {/* Redirects */} } /> - - {/* Catch all other routes and redirect to login */} } /> @@ -101,4 +104,4 @@ function App() { ); } -export default App; \ No newline at end of file +export default App; diff --git a/src/components/calendar/MeetingCalendar.jsx b/src/components/calendar/MeetingCalendar.jsx new file mode 100644 index 000000000..39067f96b --- /dev/null +++ b/src/components/calendar/MeetingCalendar.jsx @@ -0,0 +1,33 @@ +import FullCalendar from '@fullcalendar/react'; +import dayGridPlugin from '@fullcalendar/daygrid'; +import interactionPlugin from '@fullcalendar/interaction'; + +const events = [ + { + title: 'Investor Meeting', + date: '2025-12-20', + }, + { + title: 'Pitch Discussion', + date: '2025-12-22', + }, + { + title: 'Follow-up Call', + date: '2025-12-25', + }, +]; + +const MeetingCalendar = () => { + return ( +
+ +
+ ); +}; + +export default MeetingCalendar; diff --git a/src/components/investor/InvestorCard.tsx b/src/components/investor/InvestorCard.tsx index ca383f6a0..5a7052001 100644 --- a/src/components/investor/InvestorCard.tsx +++ b/src/components/investor/InvestorCard.tsx @@ -14,26 +14,27 @@ interface InvestorCardProps { export const InvestorCard: React.FC = ({ investor, - showActions = true + showActions = true, }) => { const navigate = useNavigate(); - + const handleViewProfile = () => { navigate(`/profile/investor/${investor.id}`); }; - + const handleMessage = (e: React.MouseEvent) => { - e.stopPropagation(); // Prevent card click + e.stopPropagation(); navigate(`/chat/${investor.id}`); }; - + return ( - + {/* Header */}
= ({ status={investor.isOnline ? 'online' : 'offline'} className="mr-4" /> - +
-

{investor.name}

-

Investor • {investor.totalInvestments} investments

- +

+ {investor.name} +

+

+ Investor • {investor.totalInvestments} investments +

+
{investor.investmentStage.map((stage, index) => ( - {stage} + + {stage} + ))}
- + + {/* Interests */}
-

Investment Interests

+

+ Investment Interests +

{investor.investmentInterests.map((interest, index) => ( - {interest} + + {interest} + ))}
- + + {/* Bio */}
-

{investor.bio}

+

+ {investor.bio} +

- -
-
- Investment Range -

{investor.minimumInvestment} - {investor.maximumInvestment}

-
+ + {/* Range */} +
+ Investment Range +

+ {investor.minimumInvestment} - {investor.maximumInvestment} +

+
+ + {/* Funding Offer UI (Mock) */} +
e.stopPropagation()} + > + + +