From 29c5691f814c51f0d84e6ea7cb70aee05f494c4f Mon Sep 17 00:00:00 2001 From: MinavKaria Date: Wed, 27 Aug 2025 23:49:30 +0530 Subject: [PATCH 1/3] init notes-aid v2 --- notes-aid/src/app/home/page.tsx | 844 ++++++++++++++++++++++ notes-aid/src/app/layout.tsx | 8 +- notes-aid/src/hooks/useCountAnimation.tsx | 28 + 3 files changed, 876 insertions(+), 4 deletions(-) create mode 100644 notes-aid/src/app/home/page.tsx create mode 100644 notes-aid/src/hooks/useCountAnimation.tsx diff --git a/notes-aid/src/app/home/page.tsx b/notes-aid/src/app/home/page.tsx new file mode 100644 index 0000000..2d5779e --- /dev/null +++ b/notes-aid/src/app/home/page.tsx @@ -0,0 +1,844 @@ +"use client"; +import React, { useState, useEffect, useRef } from "react"; +import { + BookOpen, + Users, + Clock, + Shield, + ArrowRight, + Menu, + X, + Eye, + Timer, +} from "lucide-react"; +import useCountAnimation from "@/hooks/useCountAnimation"; + +const CountingNumber = ({ + value, + suffix = "", +}: { + value: number; + suffix?: string; +}) => { + const targetRef = useRef(null); + const [count, setIsVisible] = useCountAnimation(value); + + useEffect(() => { + const observer = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setIsVisible(true); + observer.disconnect(); + } + }, + { threshold: 0.1 } + ); + + if (targetRef.current) { + observer.observe(targetRef.current); + } + + return () => observer.disconnect(); + }, [setIsVisible]); + + return ( +
+ {count} + {suffix} +
+ ); +}; + +const NotesAidLanding = () => { + const [isMenuOpen, setIsMenuOpen] = useState(false); + const [scrollY] = useState(0); + + // useEffect(() => { + // const handleScroll = () => setScrollY(window.scrollY); + // window.addEventListener('scroll', handleScroll); + // return () => window.removeEventListener('scroll', handleScroll); + // }, []); + + const features = [ + { + icon: , + title: "Comprehensive Notes", + description: + "Access detailed notes for all subjects across different courses and semesters, organized and ready to use.", + }, + { + icon: , + title: "Community Driven", + description: + "Built by students, for students. Share knowledge and contribute to a growing educational community.", + }, + { + icon: , + title: "Always Available", + description: + "24/7 access to your study materials. Study anywhere, anytime, on any device with internet connection.", + }, + { + icon: , + title: "Quality Assured", + description: + "All notes are reviewed and verified by academic experts to ensure accuracy and completeness.", + }, + ]; + + + + return ( +
+
+ {[...Array(20)].map((_, i) => ( +
+ ))} +
+ + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +

+ NotesAid +

+ +

+ All subjects for your course, semester, and branch. Centralized and + free. +

+ + +
+ + +
+
+ +
+
+
+
+
+
+ +
+
+
+

+ Why Choose NotesAid? +

+

+ Discover the features that make NotesAid the ultimate study + companion for students worldwide +

+
+ +
+ {features.map((feature, index) => ( +
+
+ {feature.icon} +
+

+ {feature.title} +

+

+ {feature.description} +

+
+ ))} +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ Our Growth +
+

+ Growing Together +

+

+ Join thousands of students who have transformed their academic + journey with NotesAid +

+
+ +
+
+
+
+
+
+ +
+
+
+ + + +

+ Total Views +

+

+ All time +

+
+
+
+ +
+
+
+
+
+ +
+
+
+ + + +

+ Active Hours +

+

+ Learning content +

+
+
+
+ +
+
+
+
+
+ +
+
+
+ + + +

+ Active Users +

+

+ Monthly learners +

+
+
+
+
+
+
+ +
+
+

+ Ready to Transform Your Studies? +

+

+ Join thousands of students who are already using NotesAid to achieve + academic excellence +

+ +
+
+ + + + +
+ ); +}; + +export default NotesAidLanding; diff --git a/notes-aid/src/app/layout.tsx b/notes-aid/src/app/layout.tsx index ac3f86f..0d148ca 100644 --- a/notes-aid/src/app/layout.tsx +++ b/notes-aid/src/app/layout.tsx @@ -2,8 +2,8 @@ import type { Metadata, Viewport } from "next"; // import { ThemeProvider } from "next-themes"; import "./globals.css"; import Metrics from "../metrics"; -import Footer from "../components/Footer"; -import Navbar from "../components/Navbar"; +// import Footer from "../components/Footer"; +// import Navbar from "../components/Navbar"; import { Inter, Poppins, JetBrains_Mono } from "next/font/google"; import SessionProvider from "../components/SessionProvider"; @@ -118,10 +118,10 @@ export default function RootLayout({ {/* */} - + {/* */} {children} -