diff --git a/src/app/page.tsx b/src/app/page.tsx index 9a6b3adb..86b30c62 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -47,7 +47,8 @@ export default function Home() { useEffect(() => { const handleScroll = () => { const scrollTop = window.scrollY; - const docHeight = document.documentElement.scrollHeight - window.innerHeight; + const docHeight = + document.documentElement.scrollHeight - window.innerHeight; const progress = docHeight > 0 ? (scrollTop / docHeight) * 100 : 0; setScrollProgress(progress); }; @@ -59,32 +60,38 @@ export default function Home() { const features = [ { title: "Real-time collaborative discussions", - description: "Share questions, answers, and classroom updates instantly across study groups.", + description: + "Share questions, answers, and classroom updates instantly across study groups.", icon: MessageCircle, }, { title: "Smart classroom management", - description: "Organize learning spaces, schedules, and teacher workflows with ease.", + description: + "Organize learning spaces, schedules, and teacher workflows with ease.", icon: LayoutGrid, }, { title: "Notes and resource sharing", - description: "Keep study materials, highlights, and shared guides organized in one hub.", + description: + "Keep study materials, highlights, and shared guides organized in one hub.", icon: Clipboard, }, { title: "Learning roadmaps and guidance", - description: "Follow curated study paths that keep learners focused on milestones.", + description: + "Follow curated study paths that keep learners focused on milestones.", icon: Map, }, { title: "AI-powered doubt solving", - description: "Get instant, context-aware answers to questions with smart AI support.", + description: + "Get instant, context-aware answers to questions with smart AI support.", icon: Activity, }, { title: "Organized study collaboration", - description: "Coordinate projects, peer review, and group work with clear tools and structure.", + description: + "Coordinate projects, peer review, and group work with clear tools and structure.", icon: Users, }, ]; @@ -92,53 +99,61 @@ export default function Home() { const howItWorks = [ { title: "Join or create a classroom", - description: "Teachers set up rooms, students join using invite codes." + description: "Teachers set up rooms, students join using invite codes.", }, { title: "Ask doubts instantly", - description: "Post questions using text or image and get AI + peer help." + description: "Post questions using text or image and get AI + peer help.", }, { title: "Get clear answers & insights", - description: "AI explanations, teacher guidance, and analytics all in one place." - } + description: + "AI explanations, teacher guidance, and analytics all in one place.", + }, ]; const testimonials = [ { name: "Aarav Sharma", role: "B.Tech Student", - text: "DoubtDesk made it so easy to clear my doubts during exam prep. The AI explanations are super clear." + text: "DoubtDesk made it so easy to clear my doubts during exam prep. The AI explanations are super clear.", }, { name: "Neha Verma", role: "CS Student", - text: "No more messy WhatsApp groups. Everything is structured and easy to follow." + text: "No more messy WhatsApp groups. Everything is structured and easy to follow.", }, { name: "Rohit Mehta", role: "Teaching Assistant", - text: "Analytics help me understand where students struggle the most." - } + text: "Analytics help me understand where students struggle the most.", + }, ]; const handleSignOut = async () => { - await signOut({ redirectUrl: '/' }); + await signOut({ redirectUrl: "/" }); }; return ( -
+
{/* Logout Confirmation Dialog */} - Are you sure you want to sign out? + + Are you sure you want to sign out? + - You will need to log in again to access your classroom insights and doubt-solving history. + You will need to log in again to access your classroom insights + and doubt-solving history. - Cancel + + Cancel +
- {/* Primary Header Typography */}

Empower
Your Learning
with{" "} - + Collaborative AI.

{/* Description Subtext Stack */}
-
+
Collaborative classrooms

- Built for collaborative classrooms, instant doubt solving, and smarter learning. + Built for collaborative classrooms, instant doubt solving, and + smarter learning.

@@ -194,17 +213,25 @@ export default function Home() {
- - + - @@ -212,8 +239,12 @@ export default function Home() { - @@ -230,17 +261,25 @@ export default function Home() { {/* Features Section */} -
+
-
+
Features

- Everything your classroom needs to solve doubts, stay aligned, and move faster. + Everything your classroom needs to solve doubts, stay aligned, + and move faster.

- Built for modern study teams, DoubtDesk blends AI-powered doubt solving, shared resources, and smart classroom flows into a single polished platform. + Built for modern study teams, DoubtDesk blends AI-powered doubt + solving, shared resources, and smart classroom flows into a + single polished platform.

@@ -270,10 +309,15 @@ export default function Home() {
{/* How It Works Section */} -
+
-
+
Process

@@ -287,7 +331,7 @@ export default function Home() {
{/* Desktop Connecting Line decoration */}
- + {howItWorks.map((step, index) => (
{/* Testimonials Section */} -
+
-
+
Testimonials

@@ -357,15 +406,22 @@ export default function Home() { className="fixed bottom-6 right-6 z-50 w-12 h-12 flex items-center justify-center group active:scale-95 transition-all duration-300 animate-in fade-in slide-in-from-bottom-4" aria-label="Scroll to top" > - + ); -} \ No newline at end of file +} diff --git a/src/components/TestimonialCard.tsx b/src/components/TestimonialCard.tsx new file mode 100644 index 00000000..367b102d --- /dev/null +++ b/src/components/TestimonialCard.tsx @@ -0,0 +1,35 @@ +/*testimonial cards*/ + +interface Testimonial { + name: string; + role: string; + text: string; + rating?: number; +} + +export default function TestimonialCard({ + testimonial, +}: { + testimonial: Testimonial; +}) { + return ( +
+

+ "{testimonial.text}" +

+ + {testimonial.rating && ( +
+ {Array.from({ length: testimonial.rating }).map((_, i) => ( + + ))} +
+ )} + +
+

{testimonial.name}

+

{testimonial.role}

+
+
+ ); +} diff --git a/src/components/TestimonialsMarquee.tsx b/src/components/TestimonialsMarquee.tsx new file mode 100644 index 00000000..3a1708b0 --- /dev/null +++ b/src/components/TestimonialsMarquee.tsx @@ -0,0 +1,59 @@ +/* testimonial marquee*/ +"use client"; + +import TestimonialCard from "./TestimonialCard"; + +interface Testimonial { + name: string; + role: string; + text: string; + rating?: number; +} + +export default function TestimonialsMarquee({ + testimonials, +}: { + testimonials: Testimonial[]; +}) { + const duplicatedTestimonials = [...testimonials, ...testimonials]; + + return ( + <> + + +
+
+ {duplicatedTestimonials.map((testimonial, index) => ( + + ))} +
+
+ + ); +}