From 3bc0fb5b27b1fe727bdf842bacc07c7c3096b788 Mon Sep 17 00:00:00 2001 From: koppadipranaykumar Date: Sun, 31 Aug 2025 22:20:57 +0530 Subject: [PATCH 1/6] Created the Testimonials for the stockVision --- frontend/app/components/Testimonials.tsx | 229 +++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 frontend/app/components/Testimonials.tsx diff --git a/frontend/app/components/Testimonials.tsx b/frontend/app/components/Testimonials.tsx new file mode 100644 index 0000000..8e5f9d5 --- /dev/null +++ b/frontend/app/components/Testimonials.tsx @@ -0,0 +1,229 @@ +import React, { useState } from 'react'; + +interface Testimonial { + id: number; + name: string; + role: string; + company: string; + content: string; + avatar: string; + rating: number; +} + +interface TestimonialCardProps { + testimonial: Testimonial; +} + +const Testimonials: React.FC = () => { + const [isPaused, setIsPaused] = useState(false); + + const testimonials: Testimonial[] = [ + { + id: 1, + name: "Sarah Chen", + role: "Portfolio Manager", + company: "Goldman Sachs", + content: "StockVision transformed how I analyze market trends. The real-time insights helped me increase portfolio returns by 23% this quarter.", + avatar: "SC", + rating: 5 + }, + { + id: 2, + name: "Michael Rodriguez", + role: "Investment Analyst", + company: "BlackRock", + content: "The data visualization capabilities are incredible. I can spot opportunities and risks faster than ever before.", + avatar: "MR", + rating: 5 + }, + { + id: 3, + name: "Emily Johnson", + role: "Hedge Fund Manager", + company: "Bridgewater", + content: "Finally, a platform that makes complex financial data accessible and actionable. Game-changing for our trading strategies.", + avatar: "EJ", + rating: 5 + }, + { + id: 4, + name: "David Kim", + role: "Quantitative Trader", + company: "Two Sigma", + content: "The algorithmic insights and performance tracking have revolutionized our quantitative models. Exceptional platform.", + avatar: "DK", + rating: 5 + }, + { + id: 5, + name: "Lisa Wang", + role: "Financial Advisor", + company: "Morgan Stanley", + content: "My clients love the portfolio visualization features. It's made client presentations more engaging and informative.", + avatar: "LW", + rating: 5 + }, + { + id: 6, + name: "James Thompson", + role: "Risk Analyst", + company: "JPMorgan Chase", + content: "The risk assessment tools are phenomenal. We've reduced portfolio volatility by 18% using StockVision's insights.", + avatar: "JT", + rating: 5 + } + ]; + + const TestimonialCard: React.FC = ({ testimonial }) => ( +
+
+
+
+ {testimonial.avatar} +
+
+
+
+ {[...Array(testimonial.rating)].map((_, i) => ( + + + + ))} +
+

+ "{testimonial.content}" +

+
+

{testimonial.name}

+

{testimonial.role}

+

{testimonial.company}

+
+
+
+
+ ); + + return ( +
+
+
+

+ Trusted by Financial Professionals +

+

+ Join thousands of investors and analysts who rely on StockVision for data-driven investment decisions +

+
+
+ +
+ {/* Gradient overlays for smooth edges */} +
+
+ + {/* First row - moving right */} +
setIsPaused(true)} + onMouseLeave={() => setIsPaused(false)} + > + {/* First set */} + {testimonials.slice(0, 3).map((testimonial) => ( + + ))} + {/* Duplicate for seamless loop */} + {testimonials.slice(0, 3).map((testimonial) => ( + + ))} +
+ + {/* Second row - moving left */} +
setIsPaused(true)} + onMouseLeave={() => setIsPaused(false)} + > + {/* Second set */} + {testimonials.slice(3).map((testimonial) => ( + + ))} + {/* Duplicate for seamless loop */} + {testimonials.slice(3).map((testimonial) => ( + + ))} +
+
+ + {/* Interactive controls */} +
+ +
+ + +
+ ); +}; + +export default Testimonials; \ No newline at end of file From b2de1889f42dedf64c5dfedb6a40c625077b9561 Mon Sep 17 00:00:00 2001 From: koppadipranaykumar Date: Sun, 31 Aug 2025 22:22:59 +0530 Subject: [PATCH 2/6] imported the Testiminals into the dashboard --- frontend/app/dashboard/page.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/app/dashboard/page.tsx b/frontend/app/dashboard/page.tsx index fe6f0e5..0ab87be 100644 --- a/frontend/app/dashboard/page.tsx +++ b/frontend/app/dashboard/page.tsx @@ -2,6 +2,10 @@ import DashboardPage from "@/components/DashboardPage"; import { getServerSession } from "next-auth"; import { redirect } from "next/navigation"; import authOptions from "../api/auth/[...nextauth]/authOptions"; +import TestimonialMarquee from '../components/TestimonialMarquee'; + + + export const metadata = { title: "Dashboard | Stock Vision - AI/ML Stock Portfolio Analytics", From 9b7e76f321d25bd42f7b86246b240983ac9d1bfb Mon Sep 17 00:00:00 2001 From: koppadi naga sai pranay kumar <154528905+koppadipranaykumar@users.noreply.github.com> Date: Sun, 31 Aug 2025 22:30:12 +0530 Subject: [PATCH 3/6] Update frontend/app/dashboard/page.tsx Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- frontend/app/dashboard/page.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/app/dashboard/page.tsx b/frontend/app/dashboard/page.tsx index 0ab87be..a38dd01 100644 --- a/frontend/app/dashboard/page.tsx +++ b/frontend/app/dashboard/page.tsx @@ -2,10 +2,7 @@ import DashboardPage from "@/components/DashboardPage"; import { getServerSession } from "next-auth"; import { redirect } from "next/navigation"; import authOptions from "../api/auth/[...nextauth]/authOptions"; -import TestimonialMarquee from '../components/TestimonialMarquee'; - - - +import Testimonials from '../components/Testimonials'; export const metadata = { title: "Dashboard | Stock Vision - AI/ML Stock Portfolio Analytics", From 82687fc5967e2bb352cbdbbe4d9acc309d8e48dd Mon Sep 17 00:00:00 2001 From: koppadi naga sai pranay kumar <154528905+koppadipranaykumar@users.noreply.github.com> Date: Sun, 31 Aug 2025 22:30:34 +0530 Subject: [PATCH 4/6] Update frontend/app/components/Testimonials.tsx Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- frontend/app/components/Testimonials.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/app/components/Testimonials.tsx b/frontend/app/components/Testimonials.tsx index 8e5f9d5..ebad778 100644 --- a/frontend/app/components/Testimonials.tsx +++ b/frontend/app/components/Testimonials.tsx @@ -132,12 +132,8 @@ const Testimonials: React.FC = () => { onMouseLeave={() => setIsPaused(false)} > {/* First set */} - {testimonials.slice(0, 3).map((testimonial) => ( - - ))} - {/* Duplicate for seamless loop */} - {testimonials.slice(0, 3).map((testimonial) => ( - + {[...testimonials.slice(0, 3), ...testimonials.slice(0, 3)].map((testimonial, index) => ( + ))} From 9debcf54384edfcd409166f656c8844eecbb3635 Mon Sep 17 00:00:00 2001 From: koppadipranaykumar Date: Mon, 1 Sep 2025 21:10:15 +0530 Subject: [PATCH 5/6] changed the ui of the testimonial component --- frontend/app/components/Testimonials.tsx | 30 ++++++++---------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/frontend/app/components/Testimonials.tsx b/frontend/app/components/Testimonials.tsx index ebad778..ed4204d 100644 --- a/frontend/app/components/Testimonials.tsx +++ b/frontend/app/components/Testimonials.tsx @@ -1,23 +1,9 @@ import React, { useState } from 'react'; -interface Testimonial { - id: number; - name: string; - role: string; - company: string; - content: string; - avatar: string; - rating: number; -} +const Testimonials = () => { + const [isPaused, setIsPaused] = useState(false); -interface TestimonialCardProps { - testimonial: Testimonial; -} - -const Testimonials: React.FC = () => { - const [isPaused, setIsPaused] = useState(false); - - const testimonials: Testimonial[] = [ + const testimonials = [ { id: 1, name: "Sarah Chen", @@ -74,7 +60,7 @@ const Testimonials: React.FC = () => { } ]; - const TestimonialCard: React.FC = ({ testimonial }) => ( + const TestimonialCard = ({ testimonial }) => (
@@ -132,8 +118,12 @@ const Testimonials: React.FC = () => { onMouseLeave={() => setIsPaused(false)} > {/* First set */} - {[...testimonials.slice(0, 3), ...testimonials.slice(0, 3)].map((testimonial, index) => ( - + {testimonials.slice(0, 3).map((testimonial) => ( + + ))} + {/* Duplicate for seamless loop */} + {testimonials.slice(0, 3).map((testimonial) => ( + ))}
From b5ee604ab048c3eeb0af9f182986dfa9d0642c45 Mon Sep 17 00:00:00 2001 From: koppadipranaykumar Date: Mon, 1 Sep 2025 21:11:09 +0530 Subject: [PATCH 6/6] Testimonial is imported in landing.tsx --- frontend/app/components/Landing.tsx | 185 +--------------------------- 1 file changed, 4 insertions(+), 181 deletions(-) diff --git a/frontend/app/components/Landing.tsx b/frontend/app/components/Landing.tsx index f227b8d..0fba5d8 100644 --- a/frontend/app/components/Landing.tsx +++ b/frontend/app/components/Landing.tsx @@ -15,6 +15,7 @@ import { useState } from "react"; import { Sidebar } from "@/components/sidebar"; import { useRouter, usePathname } from "next/navigation"; import { motion, type Variants } from "framer-motion"; +import Testimonials from './Testimonials'; // Declare the global window interface extension declare global { @@ -23,7 +24,6 @@ declare global { } } - export default function Landing() { const marketDataRef = useRef(null); const yieldCurveRef = useRef(null); @@ -429,7 +429,7 @@ export default function Landing() {
- (window.location.href = - "mailto:elevate360marketingcompany@gmail.com?subject=Custom%20Solution%20Inquiry&body=I%20am%20interested%20in%20learning%20more%20about%20custom%20solutions%20for%20my%20investment%20firm.") - } + onClick={() => window.location.href = 'mailto:elevate360marketingcompany@gmail.com?subject=Custom%20Solution%20Inquiry&body=I%20am%20interested%20in%20learning%20more%20about%20custom%20solutions%20for%20my%20investment%20firm.'} > Contact Sales @@ -912,181 +909,7 @@ export default function Landing() { {/* Testimonial Section */} -
-
-

- Trusted by
thousands of investors and traders. -

- - {/* Main Grid */} -
- {/* Left Column */} -
- -

- "I bought the Gold membership of Stock Vision, and it has helped - me a lot in increasing both my portfolio size and profits. This - quarter has been especially beneficial for me." -

-
-

Leslie Alexander

-

@lesliealexander

-
-
- - -

- "The real-time market alerts have saved me from several bad - investment decisions. I've been using StockVision for 6 months - and my portfolio is up 24%. Couldn't be happier." -

-
-

Michael Foster

-

@michaelfoster

-
-
- - -

- "As a day trader, I need reliable data and quick insights. - StockVision's dashboard provides everything I need at a glance. - The Silver plan has paid for itself many times over." -

-
-

Dries Vincent

-

@driesvincent

-
-
-
- - {/* Center Column */} -
- {[ - { - text: `"The AI predictions on StockVision have been remarkably accurate. I was skeptical at first, but after seeing their 87% accuracy rate on tech stocks over three months, I upgraded to the Platinum plan. My investment firm now relies on it daily."`, - name: "Brenna Goyette", - handle: "@brennagoyette" - }, - { - text: `"StockVision's portfolio optimization tool helped me rebalance my investments and reduce risk while maintaining strong returns. Their Gold plan is worth every penny."`, - name: "Lindsay Walton", - handle: "@lindsaywalton" - }, - { - text: `"The visualizations on StockVision make complex market data easy to understand. I've made 31% returns this year thanks to their insights and predictive analytics."`, - name: "Courtney Henry", - handle: "@courtneyhenry" - } - ].map((item, i) => ( - -

{item.text}

-
-

{item.name}

-

{item.handle}

-
-
- ))} -
- - {/* Right Column */} -
- {[ - { - text: `"StockVision alerted me to a market downturn three days before it happened. I was able to adjust my positions and avoid a 15% loss. The Platinum plan's predictive alerts are game-changing."`, - name: "Leonard Krasner", - handle: "@leonardkrasner" - }, - { - text: `"I've tried many stock analysis platforms, but StockVision's ML models are in a league of their own. Their Gold plan has helped me identify undervalued stocks with remarkable accuracy."`, - name: "Floyd Miles", - handle: "@floydmiles" - }, - { - text: `"Since signing up for StockVision's Silver plan, my investment strategy has completely transformed. Their real-time analytics and daily insights have helped me achieve a 28% annual return."`, - name: "Emily Selman", - handle: "@emilyselman" - } - ].map((item, i) => ( - -

{item.text}

-
-

{item.name}

-

{item.handle}

-
-
- ))} -
-
- - {/* Bottom Row */} -
- {[ - { - text: `"StockVision's sector-specific trend forecasting helped our fund identify emerging opportunities in renewable energy. We've seen a 41% return in that sector alone over the past year. Looking forward to their Diamond plan."`, - name: "Tom Cook", - handle: "@tomcook" - }, - { - text: `"As a financial advisor, I need tools I can trust. StockVision's Platinum plan gives me insights that impress my clients and keep their portfolios growing. The ROI has been exceptional."`, - name: "Whitney Francis", - handle: "@whitneyfrancis" - } - ].map((item, i) => ( - -

{item.text}

-
-

{item.name}

-

{item.handle}

-
-
- ))} -
-
- + {/* Footer */}