Spaces:
Runtime error
Runtime error
Sandra Ashipala
commited on
Commit
·
ca314ba
1
Parent(s):
c190cbc
Frontend Template initialized
Browse files- frontend/index.html +1 -55
- frontend/src/App.tsx +1 -5
- frontend/src/components/About.tsx +0 -40
- frontend/src/components/App.tsx +0 -0
- frontend/src/components/Features.tsx +14 -37
- frontend/src/components/Footer.tsx +22 -88
- frontend/src/components/Hero.tsx +7 -27
- frontend/src/components/HeroCards.tsx +2 -137
- frontend/src/components/Navbar.tsx +9 -18
- frontend/src/components/Statistics.tsx +41 -0
- frontend/src/components/theme-provider.tsx +1 -0
frontend/index.html
CHANGED
|
@@ -12,61 +12,7 @@
|
|
| 12 |
name="viewport"
|
| 13 |
content="width=device-width, initial-scale=1.0"
|
| 14 |
/>
|
| 15 |
-
|
| 16 |
-
<!-- Primary Meta Tags -->
|
| 17 |
-
<title>Shadcn/React - Landing template</title>
|
| 18 |
-
<meta
|
| 19 |
-
name="title"
|
| 20 |
-
content="Shadcn/React - Landing template"
|
| 21 |
-
/>
|
| 22 |
-
<meta
|
| 23 |
-
name="description"
|
| 24 |
-
content="Free Shadcn landing page for React developers"
|
| 25 |
-
/>
|
| 26 |
-
<!-- Open Graph / Facebook -->
|
| 27 |
-
<meta
|
| 28 |
-
property="og:type"
|
| 29 |
-
content="website"
|
| 30 |
-
/>
|
| 31 |
-
<meta
|
| 32 |
-
property="og:url"
|
| 33 |
-
content="https://github.com/leoMirandaa/shadcn-landing-page.git"
|
| 34 |
-
/>
|
| 35 |
-
<meta
|
| 36 |
-
property="og:title"
|
| 37 |
-
content="Shadcn/React - Landing template"
|
| 38 |
-
/>
|
| 39 |
-
<meta
|
| 40 |
-
property="og:description"
|
| 41 |
-
content="Free Shadcn landing page for React developers"
|
| 42 |
-
/>
|
| 43 |
-
<meta
|
| 44 |
-
property="og:image"
|
| 45 |
-
content="https://res.cloudinary.com/dbzv9xfjp/image/upload/v1705560686/og-images/shadc-react_gketpd.jpg"
|
| 46 |
-
/>
|
| 47 |
-
|
| 48 |
-
<!-- Twitter -->
|
| 49 |
-
<meta
|
| 50 |
-
name="twitter:card"
|
| 51 |
-
content="summary_large_image"
|
| 52 |
-
/>
|
| 53 |
-
|
| 54 |
-
<meta
|
| 55 |
-
name="twitter:url"
|
| 56 |
-
content="https://github.com/leoMirandaa/shadcn-landing-page.git"
|
| 57 |
-
/>
|
| 58 |
-
<meta
|
| 59 |
-
name="twitter:title"
|
| 60 |
-
content="Shadcn/React - Landing template"
|
| 61 |
-
/>
|
| 62 |
-
<meta
|
| 63 |
-
name="twitter:description"
|
| 64 |
-
content="Free Shadcn landing page for React developers"
|
| 65 |
-
/>
|
| 66 |
-
<meta
|
| 67 |
-
name="twitter:image"
|
| 68 |
-
content="https://res.cloudinary.com/dbzv9xfjp/image/upload/v1705560686/og-images/shadc-react_gketpd.jpg"
|
| 69 |
-
/>
|
| 70 |
</head>
|
| 71 |
<body>
|
| 72 |
<div id="root"></div>
|
|
|
|
| 12 |
name="viewport"
|
| 13 |
content="width=device-width, initial-scale=1.0"
|
| 14 |
/>
|
| 15 |
+
<title>DocVerifyRAG</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
</head>
|
| 17 |
<body>
|
| 18 |
<div id="root"></div>
|
frontend/src/App.tsx
CHANGED
|
@@ -1,11 +1,9 @@
|
|
| 1 |
-
import { About } from "./components/About";
|
| 2 |
import { Features } from "./components/Features";
|
| 3 |
import { Footer } from "./components/Footer";
|
| 4 |
import { Hero } from "./components/Hero";
|
| 5 |
import { HowItWorks } from "./components/HowItWorks";
|
| 6 |
import { Navbar } from "./components/Navbar";
|
| 7 |
import { ScrollToTop } from "./components/ScrollToTop";
|
| 8 |
-
import { Team } from "./components/Team";
|
| 9 |
import "./App.css";
|
| 10 |
|
| 11 |
function App() {
|
|
@@ -13,10 +11,8 @@ function App() {
|
|
| 13 |
<>
|
| 14 |
<Navbar />
|
| 15 |
<Hero />
|
| 16 |
-
<About />
|
| 17 |
-
<Features />
|
| 18 |
<HowItWorks />
|
| 19 |
-
<
|
| 20 |
<Footer />
|
| 21 |
<ScrollToTop />
|
| 22 |
</>
|
|
|
|
|
|
|
| 1 |
import { Features } from "./components/Features";
|
| 2 |
import { Footer } from "./components/Footer";
|
| 3 |
import { Hero } from "./components/Hero";
|
| 4 |
import { HowItWorks } from "./components/HowItWorks";
|
| 5 |
import { Navbar } from "./components/Navbar";
|
| 6 |
import { ScrollToTop } from "./components/ScrollToTop";
|
|
|
|
| 7 |
import "./App.css";
|
| 8 |
|
| 9 |
function App() {
|
|
|
|
| 11 |
<>
|
| 12 |
<Navbar />
|
| 13 |
<Hero />
|
|
|
|
|
|
|
| 14 |
<HowItWorks />
|
| 15 |
+
<Features />
|
| 16 |
<Footer />
|
| 17 |
<ScrollToTop />
|
| 18 |
</>
|
frontend/src/components/About.tsx
DELETED
|
@@ -1,40 +0,0 @@
|
|
| 1 |
-
import { Statistics } from "./Statistics";
|
| 2 |
-
import pilot from "../assets/pilot.png";
|
| 3 |
-
|
| 4 |
-
export const About = () => {
|
| 5 |
-
return (
|
| 6 |
-
<section
|
| 7 |
-
id="about"
|
| 8 |
-
className="container py-24 sm:py-32"
|
| 9 |
-
>
|
| 10 |
-
<div className="bg-muted/50 border rounded-lg py-12">
|
| 11 |
-
<div className="px-6 flex flex-col-reverse md:flex-row gap-8 md:gap-12">
|
| 12 |
-
<img
|
| 13 |
-
src={pilot}
|
| 14 |
-
alt=""
|
| 15 |
-
className="w-[300px] object-contain rounded-lg"
|
| 16 |
-
/>
|
| 17 |
-
<div className="bg-green-0 flex flex-col justify-between">
|
| 18 |
-
<div className="pb-6">
|
| 19 |
-
<h2 className="text-3xl md:text-4xl font-bold">
|
| 20 |
-
<span className="bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text">
|
| 21 |
-
About{" "}
|
| 22 |
-
</span>
|
| 23 |
-
Company
|
| 24 |
-
</h2>
|
| 25 |
-
<p className="text-xl text-muted-foreground mt-4">
|
| 26 |
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
| 27 |
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
| 28 |
-
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
| 29 |
-
nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit
|
| 30 |
-
amet, consectetur adipiscing elit.
|
| 31 |
-
</p>
|
| 32 |
-
</div>
|
| 33 |
-
|
| 34 |
-
<Statistics />
|
| 35 |
-
</div>
|
| 36 |
-
</div>
|
| 37 |
-
</div>
|
| 38 |
-
</section>
|
| 39 |
-
);
|
| 40 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/src/components/App.tsx
ADDED
|
File without changes
|
frontend/src/components/Features.tsx
CHANGED
|
@@ -1,52 +1,31 @@
|
|
| 1 |
import { Badge } from "./ui/badge";
|
| 2 |
import {
|
| 3 |
Card,
|
|
|
|
| 4 |
CardContent,
|
| 5 |
CardFooter,
|
| 6 |
CardHeader,
|
| 7 |
-
CardTitle,
|
| 8 |
} from "@/components/ui/card";
|
| 9 |
-
import image from "../assets/growth.png";
|
| 10 |
-
import image3 from "../assets/reflecting.png";
|
| 11 |
import image4 from "../assets/looking-ahead.png";
|
| 12 |
|
|
|
|
| 13 |
interface FeatureProps {
|
| 14 |
title: string;
|
| 15 |
-
description: string;
|
| 16 |
image: string;
|
| 17 |
}
|
| 18 |
|
| 19 |
const features: FeatureProps[] = [
|
| 20 |
{
|
| 21 |
-
title: "
|
| 22 |
-
description:
|
| 23 |
-
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi nesciunt est nostrum omnis ab sapiente.",
|
| 24 |
image: image4,
|
| 25 |
},
|
| 26 |
-
{
|
| 27 |
-
title: "Intuitive user interface",
|
| 28 |
-
description:
|
| 29 |
-
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi nesciunt est nostrum omnis ab sapiente.",
|
| 30 |
-
image: image3,
|
| 31 |
-
},
|
| 32 |
-
{
|
| 33 |
-
title: "AI-Powered insights",
|
| 34 |
-
description:
|
| 35 |
-
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi nesciunt est nostrum omnis ab sapiente.",
|
| 36 |
-
image: image,
|
| 37 |
-
},
|
| 38 |
];
|
| 39 |
|
| 40 |
const featureList: string[] = [
|
| 41 |
-
"
|
| 42 |
-
"
|
| 43 |
-
"
|
| 44 |
-
"
|
| 45 |
-
"Contact form",
|
| 46 |
-
"Our team",
|
| 47 |
-
"Responsive design",
|
| 48 |
-
"Newsletter",
|
| 49 |
-
"Minimalist",
|
| 50 |
];
|
| 51 |
|
| 52 |
export const Features = () => {
|
|
@@ -56,10 +35,11 @@ export const Features = () => {
|
|
| 56 |
className="container py-24 sm:py-32 space-y-8"
|
| 57 |
>
|
| 58 |
<h2 className="text-3xl lg:text-4xl font-bold md:text-center">
|
| 59 |
-
|
| 60 |
<span className="bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text">
|
| 61 |
-
|
| 62 |
</span>
|
|
|
|
| 63 |
</h2>
|
| 64 |
|
| 65 |
<div className="flex flex-wrap md:justify-center gap-4">
|
|
@@ -75,20 +55,17 @@ export const Features = () => {
|
|
| 75 |
))}
|
| 76 |
</div>
|
| 77 |
|
| 78 |
-
<div className="grid md:grid-cols-2 lg:grid-cols-
|
| 79 |
-
{features.map(({ title,
|
| 80 |
<Card key={title}>
|
| 81 |
-
|
| 82 |
<CardTitle>{title}</CardTitle>
|
| 83 |
</CardHeader>
|
| 84 |
-
|
| 85 |
-
<CardContent>{description}</CardContent>
|
| 86 |
-
|
| 87 |
<CardFooter>
|
| 88 |
<img
|
| 89 |
src={image}
|
| 90 |
alt="About feature"
|
| 91 |
-
className="w-[
|
| 92 |
/>
|
| 93 |
</CardFooter>
|
| 94 |
</Card>
|
|
|
|
| 1 |
import { Badge } from "./ui/badge";
|
| 2 |
import {
|
| 3 |
Card,
|
| 4 |
+
CardTitle,
|
| 5 |
CardContent,
|
| 6 |
CardFooter,
|
| 7 |
CardHeader,
|
|
|
|
| 8 |
} from "@/components/ui/card";
|
|
|
|
|
|
|
| 9 |
import image4 from "../assets/looking-ahead.png";
|
| 10 |
|
| 11 |
+
|
| 12 |
interface FeatureProps {
|
| 13 |
title: string;
|
|
|
|
| 14 |
image: string;
|
| 15 |
}
|
| 16 |
|
| 17 |
const features: FeatureProps[] = [
|
| 18 |
{
|
| 19 |
+
title: "UPLOAD DOCUMENT",
|
|
|
|
|
|
|
| 20 |
image: image4,
|
| 21 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
];
|
| 23 |
|
| 24 |
const featureList: string[] = [
|
| 25 |
+
"STEP1: Do this",
|
| 26 |
+
"STEP2: Do that that",
|
| 27 |
+
"STEP3: Do that that that",
|
| 28 |
+
"STEP4: Do that that that that",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
];
|
| 30 |
|
| 31 |
export const Features = () => {
|
|
|
|
| 35 |
className="container py-24 sm:py-32 space-y-8"
|
| 36 |
>
|
| 37 |
<h2 className="text-3xl lg:text-4xl font-bold md:text-center">
|
| 38 |
+
Fast and Accurate Document{" "}
|
| 39 |
<span className="bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text">
|
| 40 |
+
Meta Data{" "}
|
| 41 |
</span>
|
| 42 |
+
Verification
|
| 43 |
</h2>
|
| 44 |
|
| 45 |
<div className="flex flex-wrap md:justify-center gap-4">
|
|
|
|
| 55 |
))}
|
| 56 |
</div>
|
| 57 |
|
| 58 |
+
<div className="grid md:grid-cols-2 lg:grid-cols-1">
|
| 59 |
+
{features.map(({ title, image }: FeatureProps) => (
|
| 60 |
<Card key={title}>
|
| 61 |
+
<CardHeader className="text-3xl lg:text-4xl font-bold md:text-center">
|
| 62 |
<CardTitle>{title}</CardTitle>
|
| 63 |
</CardHeader>
|
|
|
|
|
|
|
|
|
|
| 64 |
<CardFooter>
|
| 65 |
<img
|
| 66 |
src={image}
|
| 67 |
alt="About feature"
|
| 68 |
+
className="w-[150px] lg:w-[300px] mx-auto"
|
| 69 |
/>
|
| 70 |
</CardFooter>
|
| 71 |
</Card>
|
frontend/src/components/Footer.tsx
CHANGED
|
@@ -12,140 +12,74 @@ export const Footer = () => {
|
|
| 12 |
className="font-bold text-xl flex"
|
| 13 |
>
|
| 14 |
<LogoIcon />
|
| 15 |
-
|
| 16 |
</a>
|
| 17 |
</div>
|
| 18 |
|
| 19 |
<div className="flex flex-col gap-2">
|
| 20 |
-
<h3 className="font-bold text-lg">
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
href="#"
|
| 24 |
-
className="opacity-60 hover:opacity-100"
|
| 25 |
-
>
|
| 26 |
-
Github
|
| 27 |
-
</a>
|
| 28 |
-
</div>
|
| 29 |
-
|
| 30 |
-
<div>
|
| 31 |
-
<a
|
| 32 |
-
href="#"
|
| 33 |
-
className="opacity-60 hover:opacity-100"
|
| 34 |
-
>
|
| 35 |
-
Twitter
|
| 36 |
-
</a>
|
| 37 |
-
</div>
|
| 38 |
-
|
| 39 |
-
<div>
|
| 40 |
-
<a
|
| 41 |
-
href="#"
|
| 42 |
-
className="opacity-60 hover:opacity-100"
|
| 43 |
-
>
|
| 44 |
-
Dribbble
|
| 45 |
-
</a>
|
| 46 |
-
</div>
|
| 47 |
-
</div>
|
| 48 |
-
|
| 49 |
-
<div className="flex flex-col gap-2">
|
| 50 |
-
<h3 className="font-bold text-lg">Platforms</h3>
|
| 51 |
-
<div>
|
| 52 |
-
<a
|
| 53 |
-
href="#"
|
| 54 |
-
className="opacity-60 hover:opacity-100"
|
| 55 |
-
>
|
| 56 |
-
Web
|
| 57 |
-
</a>
|
| 58 |
-
</div>
|
| 59 |
-
|
| 60 |
-
<div>
|
| 61 |
<a
|
| 62 |
href="#"
|
| 63 |
className="opacity-60 hover:opacity-100"
|
| 64 |
>
|
| 65 |
-
|
| 66 |
</a>
|
| 67 |
</div>
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
-
|
| 70 |
<a
|
| 71 |
href="#"
|
| 72 |
className="opacity-60 hover:opacity-100"
|
| 73 |
>
|
| 74 |
-
|
| 75 |
</a>
|
| 76 |
</div>
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
<div className="flex flex-col gap-2">
|
| 80 |
-
<h3 className="font-bold text-lg">About</h3>
|
| 81 |
-
<div>
|
| 82 |
<a
|
| 83 |
href="#"
|
| 84 |
className="opacity-60 hover:opacity-100"
|
| 85 |
>
|
| 86 |
-
|
| 87 |
</a>
|
| 88 |
</div>
|
| 89 |
-
|
| 90 |
-
<div>
|
| 91 |
<a
|
| 92 |
href="#"
|
| 93 |
className="opacity-60 hover:opacity-100"
|
| 94 |
>
|
| 95 |
-
|
| 96 |
</a>
|
| 97 |
</div>
|
| 98 |
-
|
| 99 |
-
<div>
|
| 100 |
-
<a
|
| 101 |
-
href="#"
|
| 102 |
-
className="opacity-60 hover:opacity-100"
|
| 103 |
-
>
|
| 104 |
-
FAQ
|
| 105 |
-
</a>
|
| 106 |
-
</div>
|
| 107 |
-
</div>
|
| 108 |
-
|
| 109 |
<div className="flex flex-col gap-2">
|
| 110 |
-
<h3 className="font-bold text-lg">
|
| 111 |
-
<div>
|
| 112 |
-
<a
|
| 113 |
-
href="#"
|
| 114 |
-
className="opacity-60 hover:opacity-100"
|
| 115 |
-
>
|
| 116 |
-
Youtube
|
| 117 |
-
</a>
|
| 118 |
-
</div>
|
| 119 |
-
|
| 120 |
<div>
|
| 121 |
<a
|
| 122 |
href="#"
|
| 123 |
className="opacity-60 hover:opacity-100"
|
| 124 |
>
|
| 125 |
-
|
| 126 |
</a>
|
| 127 |
</div>
|
| 128 |
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
href="#"
|
| 132 |
-
className="opacity-60 hover:opacity-100"
|
| 133 |
-
>
|
| 134 |
-
Twitch
|
| 135 |
-
</a>
|
| 136 |
-
</div>
|
| 137 |
-
</div>
|
| 138 |
</section>
|
| 139 |
|
| 140 |
<section className="container pb-14 text-center">
|
| 141 |
<h3>
|
| 142 |
-
© 2024
|
| 143 |
<a
|
| 144 |
target="_blank"
|
| 145 |
-
href="https://github.com/
|
| 146 |
className="text-primary transition-all border-primary hover:border-b-2"
|
| 147 |
>
|
| 148 |
-
|
| 149 |
</a>
|
| 150 |
</h3>
|
| 151 |
</section>
|
|
|
|
| 12 |
className="font-bold text-xl flex"
|
| 13 |
>
|
| 14 |
<LogoIcon />
|
| 15 |
+
DocVerifyRAG
|
| 16 |
</a>
|
| 17 |
</div>
|
| 18 |
|
| 19 |
<div className="flex flex-col gap-2">
|
| 20 |
+
<h3 className="font-bold text-lg">About Us</h3>
|
| 21 |
+
|
| 22 |
+
<div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
<a
|
| 24 |
href="#"
|
| 25 |
className="opacity-60 hover:opacity-100"
|
| 26 |
>
|
| 27 |
+
GitHub
|
| 28 |
</a>
|
| 29 |
</div>
|
| 30 |
+
</div>
|
| 31 |
+
<div className="flex flex-col gap-2">
|
| 32 |
+
<h3 className="font-bold text-lg">Industries</h3>
|
| 33 |
|
| 34 |
+
<div>
|
| 35 |
<a
|
| 36 |
href="#"
|
| 37 |
className="opacity-60 hover:opacity-100"
|
| 38 |
>
|
| 39 |
+
Health
|
| 40 |
</a>
|
| 41 |
</div>
|
| 42 |
+
<div>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
<a
|
| 44 |
href="#"
|
| 45 |
className="opacity-60 hover:opacity-100"
|
| 46 |
>
|
| 47 |
+
FinTech
|
| 48 |
</a>
|
| 49 |
</div>
|
| 50 |
+
<div>
|
|
|
|
| 51 |
<a
|
| 52 |
href="#"
|
| 53 |
className="opacity-60 hover:opacity-100"
|
| 54 |
>
|
| 55 |
+
Banking
|
| 56 |
</a>
|
| 57 |
</div>
|
| 58 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
<div className="flex flex-col gap-2">
|
| 60 |
+
<h3 className="font-bold text-lg">Follow Us</h3>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
<div>
|
| 62 |
<a
|
| 63 |
href="#"
|
| 64 |
className="opacity-60 hover:opacity-100"
|
| 65 |
>
|
| 66 |
+
GitHub
|
| 67 |
</a>
|
| 68 |
</div>
|
| 69 |
|
| 70 |
+
|
| 71 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
</section>
|
| 73 |
|
| 74 |
<section className="container pb-14 text-center">
|
| 75 |
<h3>
|
| 76 |
+
© 2024 Efficient Document Verification by{" "}
|
| 77 |
<a
|
| 78 |
target="_blank"
|
| 79 |
+
href="https://github.com/eliawaefler/DocVerifyRAG"
|
| 80 |
className="text-primary transition-all border-primary hover:border-b-2"
|
| 81 |
>
|
| 82 |
+
DocVerifyRAG
|
| 83 |
</a>
|
| 84 |
</h3>
|
| 85 |
</section>
|
frontend/src/components/Hero.tsx
CHANGED
|
@@ -10,38 +10,18 @@ export const Hero = () => {
|
|
| 10 |
<main className="text-5xl md:text-6xl font-bold">
|
| 11 |
<h1 className="inline">
|
| 12 |
<span className="inline bg-gradient-to-r from-[#F596D3] to-[#D247BF] text-transparent bg-clip-text">
|
| 13 |
-
|
| 14 |
-
</span>
|
| 15 |
-
|
| 16 |
-
</h1>{" "}
|
| 17 |
-
for{" "}
|
| 18 |
-
<h2 className="inline">
|
| 19 |
<span className="inline bg-gradient-to-r from-[#61DAFB] via-[#1fc0f1] to-[#03a3d7] text-transparent bg-clip-text">
|
| 20 |
-
|
| 21 |
-
</span>{" "}
|
| 22 |
-
developers
|
| 23 |
-
</h2>
|
| 24 |
</main>
|
| 25 |
|
| 26 |
<p className="text-xl text-muted-foreground md:w-10/12 mx-auto lg:mx-0">
|
| 27 |
-
|
| 28 |
-
to your project.
|
| 29 |
</p>
|
| 30 |
-
|
| 31 |
-
<div className="space-y-4 md:space-y-0 md:space-x-4">
|
| 32 |
-
<Button className="w-full md:w-1/3">Get Started</Button>
|
| 33 |
-
|
| 34 |
-
<a
|
| 35 |
-
href="https://github.com/leoMirandaa/shadcn-landing-page.git"
|
| 36 |
-
target="_blank"
|
| 37 |
-
className={`w-full md:w-1/3 ${buttonVariants({
|
| 38 |
-
variant: "outline",
|
| 39 |
-
})}`}
|
| 40 |
-
>
|
| 41 |
-
Github Repository
|
| 42 |
-
<GitHubLogoIcon className="ml-2 w-5 h-5" />
|
| 43 |
-
</a>
|
| 44 |
-
</div>
|
| 45 |
</div>
|
| 46 |
|
| 47 |
{/* Hero cards sections */}
|
|
|
|
| 10 |
<main className="text-5xl md:text-6xl font-bold">
|
| 11 |
<h1 className="inline">
|
| 12 |
<span className="inline bg-gradient-to-r from-[#F596D3] to-[#D247BF] text-transparent bg-clip-text">
|
| 13 |
+
Doc
|
| 14 |
+
</span>
|
| 15 |
+
Verify
|
|
|
|
|
|
|
|
|
|
| 16 |
<span className="inline bg-gradient-to-r from-[#61DAFB] via-[#1fc0f1] to-[#03a3d7] text-transparent bg-clip-text">
|
| 17 |
+
RAG
|
| 18 |
+
</span></h1>{" "}
|
|
|
|
|
|
|
| 19 |
</main>
|
| 20 |
|
| 21 |
<p className="text-xl text-muted-foreground md:w-10/12 mx-auto lg:mx-0">
|
| 22 |
+
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Veritatis dolor pariatur sit!
|
|
|
|
| 23 |
</p>
|
| 24 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
</div>
|
| 26 |
|
| 27 |
{/* Hero cards sections */}
|
frontend/src/components/HeroCards.tsx
CHANGED
|
@@ -16,140 +16,6 @@ import { GitHubLogoIcon } from "@radix-ui/react-icons";
|
|
| 16 |
export const HeroCards = () => {
|
| 17 |
return (
|
| 18 |
<div className="hidden lg:flex flex-row flex-wrap gap-8 relative w-[700px] h-[500px]">
|
| 19 |
-
{/* Testimonial */}
|
| 20 |
-
<Card className="absolute w-[340px] -top-[15px] drop-shadow-xl shadow-black/10 dark:shadow-white/10">
|
| 21 |
-
<CardHeader className="flex flex-row items-center gap-4 pb-2">
|
| 22 |
-
<Avatar>
|
| 23 |
-
<AvatarImage
|
| 24 |
-
alt=""
|
| 25 |
-
src="https://github.com/shadcn.png"
|
| 26 |
-
/>
|
| 27 |
-
<AvatarFallback>SH</AvatarFallback>
|
| 28 |
-
</Avatar>
|
| 29 |
-
|
| 30 |
-
<div className="flex flex-col">
|
| 31 |
-
<CardTitle className="text-lg">John Doe React</CardTitle>
|
| 32 |
-
<CardDescription>@john_doe</CardDescription>
|
| 33 |
-
</div>
|
| 34 |
-
</CardHeader>
|
| 35 |
-
|
| 36 |
-
<CardContent>This landig page is awesome!</CardContent>
|
| 37 |
-
</Card>
|
| 38 |
-
|
| 39 |
-
{/* Team */}
|
| 40 |
-
<Card className="absolute right-[20px] top-4 w-80 flex flex-col justify-center items-center drop-shadow-xl shadow-black/10 dark:shadow-white/10">
|
| 41 |
-
<CardHeader className="mt-8 flex justify-center items-center pb-2">
|
| 42 |
-
<img
|
| 43 |
-
src="https://i.pravatar.cc/150?img=58"
|
| 44 |
-
alt="user avatar"
|
| 45 |
-
className="absolute grayscale-[0%] -top-12 rounded-full w-24 h-24 aspect-square object-cover"
|
| 46 |
-
/>
|
| 47 |
-
<CardTitle className="text-center">Leo Miranda</CardTitle>
|
| 48 |
-
<CardDescription className="font-normal text-primary">
|
| 49 |
-
Frontend Developer
|
| 50 |
-
</CardDescription>
|
| 51 |
-
</CardHeader>
|
| 52 |
-
|
| 53 |
-
<CardContent className="text-center pb-2">
|
| 54 |
-
<p>
|
| 55 |
-
I really enjoy transforming ideas into functional software that
|
| 56 |
-
exceeds expectations
|
| 57 |
-
</p>
|
| 58 |
-
</CardContent>
|
| 59 |
-
|
| 60 |
-
<CardFooter>
|
| 61 |
-
<div>
|
| 62 |
-
<a
|
| 63 |
-
href="https://github.com/leoMirandaa"
|
| 64 |
-
target="_blank"
|
| 65 |
-
className={buttonVariants({
|
| 66 |
-
variant: "ghost",
|
| 67 |
-
size: "sm",
|
| 68 |
-
})}
|
| 69 |
-
>
|
| 70 |
-
<span className="sr-only">Github icon</span>
|
| 71 |
-
<GitHubLogoIcon className="w-5 h-5" />
|
| 72 |
-
</a>
|
| 73 |
-
<a
|
| 74 |
-
href="https://twitter.com/leo_mirand4"
|
| 75 |
-
target="_blank"
|
| 76 |
-
className={buttonVariants({
|
| 77 |
-
variant: "ghost",
|
| 78 |
-
size: "sm",
|
| 79 |
-
})}
|
| 80 |
-
>
|
| 81 |
-
<span className="sr-only">X icon</span>
|
| 82 |
-
<svg
|
| 83 |
-
role="img"
|
| 84 |
-
viewBox="0 0 24 24"
|
| 85 |
-
xmlns="http://www.w3.org/2000/svg"
|
| 86 |
-
className="fill-foreground w-5 h-5"
|
| 87 |
-
>
|
| 88 |
-
<title>X</title>
|
| 89 |
-
<path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z" />
|
| 90 |
-
</svg>
|
| 91 |
-
</a>
|
| 92 |
-
|
| 93 |
-
<a
|
| 94 |
-
href="https://www.linkedin.com/"
|
| 95 |
-
target="_blank"
|
| 96 |
-
className={buttonVariants({
|
| 97 |
-
variant: "ghost",
|
| 98 |
-
size: "sm",
|
| 99 |
-
})}
|
| 100 |
-
>
|
| 101 |
-
<span className="sr-only">Linkedin icon</span>
|
| 102 |
-
<Linkedin size="20" />
|
| 103 |
-
</a>
|
| 104 |
-
</div>
|
| 105 |
-
</CardFooter>
|
| 106 |
-
</Card>
|
| 107 |
-
|
| 108 |
-
{/* Pricing */}
|
| 109 |
-
<Card className="absolute top-[150px] left-[50px] w-72 drop-shadow-xl shadow-black/10 dark:shadow-white/10">
|
| 110 |
-
<CardHeader>
|
| 111 |
-
<CardTitle className="flex item-center justify-between">
|
| 112 |
-
Free
|
| 113 |
-
<Badge
|
| 114 |
-
variant="secondary"
|
| 115 |
-
className="text-sm text-primary"
|
| 116 |
-
>
|
| 117 |
-
Most popular
|
| 118 |
-
</Badge>
|
| 119 |
-
</CardTitle>
|
| 120 |
-
<div>
|
| 121 |
-
<span className="text-3xl font-bold">$0</span>
|
| 122 |
-
<span className="text-muted-foreground"> /month</span>
|
| 123 |
-
</div>
|
| 124 |
-
|
| 125 |
-
<CardDescription>
|
| 126 |
-
Lorem ipsum dolor sit, amet ipsum consectetur adipisicing elit.
|
| 127 |
-
</CardDescription>
|
| 128 |
-
</CardHeader>
|
| 129 |
-
|
| 130 |
-
<CardContent>
|
| 131 |
-
<Button className="w-full">Start Free Trial</Button>
|
| 132 |
-
</CardContent>
|
| 133 |
-
|
| 134 |
-
<hr className="w-4/5 m-auto mb-4" />
|
| 135 |
-
|
| 136 |
-
<CardFooter className="flex">
|
| 137 |
-
<div className="space-y-4">
|
| 138 |
-
{["4 Team member", "4 GB Storage", "Upto 6 pages"].map(
|
| 139 |
-
(benefit: string) => (
|
| 140 |
-
<span
|
| 141 |
-
key={benefit}
|
| 142 |
-
className="flex"
|
| 143 |
-
>
|
| 144 |
-
<Check className="text-green-500" />{" "}
|
| 145 |
-
<h3 className="ml-2">{benefit}</h3>
|
| 146 |
-
</span>
|
| 147 |
-
)
|
| 148 |
-
)}
|
| 149 |
-
</div>
|
| 150 |
-
</CardFooter>
|
| 151 |
-
</Card>
|
| 152 |
-
|
| 153 |
{/* Service */}
|
| 154 |
<Card className="absolute w-[350px] -right-[10px] bottom-[35px] drop-shadow-xl shadow-black/10 dark:shadow-white/10">
|
| 155 |
<CardHeader className="space-y-1 flex md:flex-row justify-start items-start gap-4">
|
|
@@ -157,10 +23,9 @@ export const HeroCards = () => {
|
|
| 157 |
<LightBulbIcon />
|
| 158 |
</div>
|
| 159 |
<div>
|
| 160 |
-
<CardTitle>
|
| 161 |
<CardDescription className="text-md mt-2">
|
| 162 |
-
|
| 163 |
-
natusm.
|
| 164 |
</CardDescription>
|
| 165 |
</div>
|
| 166 |
</CardHeader>
|
|
|
|
| 16 |
export const HeroCards = () => {
|
| 17 |
return (
|
| 18 |
<div className="hidden lg:flex flex-row flex-wrap gap-8 relative w-[700px] h-[500px]">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
{/* Service */}
|
| 20 |
<Card className="absolute w-[350px] -right-[10px] bottom-[35px] drop-shadow-xl shadow-black/10 dark:shadow-white/10">
|
| 21 |
<CardHeader className="space-y-1 flex md:flex-row justify-start items-start gap-4">
|
|
|
|
| 23 |
<LightBulbIcon />
|
| 24 |
</div>
|
| 25 |
<div>
|
| 26 |
+
<CardTitle>IMAGE</CardTitle>
|
| 27 |
<CardDescription className="text-md mt-2">
|
| 28 |
+
Some nice image conveying DocVerifyRAG use
|
|
|
|
| 29 |
</CardDescription>
|
| 30 |
</div>
|
| 31 |
</CardHeader>
|
frontend/src/components/Navbar.tsx
CHANGED
|
@@ -11,7 +11,6 @@ import {
|
|
| 11 |
SheetTitle,
|
| 12 |
SheetTrigger,
|
| 13 |
} from "@/components/ui/sheet";
|
| 14 |
-
|
| 15 |
import { GitHubLogoIcon } from "@radix-ui/react-icons";
|
| 16 |
import { buttonVariants } from "./ui/button";
|
| 17 |
import { Menu } from "lucide-react";
|
|
@@ -29,16 +28,8 @@ const routeList: RouteProps[] = [
|
|
| 29 |
label: "Features",
|
| 30 |
},
|
| 31 |
{
|
| 32 |
-
href: "#
|
| 33 |
-
label: "
|
| 34 |
-
},
|
| 35 |
-
{
|
| 36 |
-
href: "#pricing",
|
| 37 |
-
label: "Pricing",
|
| 38 |
-
},
|
| 39 |
-
{
|
| 40 |
-
href: "#faq",
|
| 41 |
-
label: "FAQ",
|
| 42 |
},
|
| 43 |
];
|
| 44 |
|
|
@@ -54,7 +45,7 @@ export const Navbar = () => {
|
|
| 54 |
className="ml-2 font-bold text-xl flex"
|
| 55 |
>
|
| 56 |
<LogoIcon />
|
| 57 |
-
|
| 58 |
</a>
|
| 59 |
</NavigationMenuItem>
|
| 60 |
|
|
@@ -78,7 +69,7 @@ export const Navbar = () => {
|
|
| 78 |
<SheetContent side={"left"}>
|
| 79 |
<SheetHeader>
|
| 80 |
<SheetTitle className="font-bold text-xl">
|
| 81 |
-
|
| 82 |
</SheetTitle>
|
| 83 |
</SheetHeader>
|
| 84 |
<nav className="flex flex-col justify-center items-center gap-2 mt-4">
|
|
@@ -93,14 +84,14 @@ export const Navbar = () => {
|
|
| 93 |
</a>
|
| 94 |
))}
|
| 95 |
<a
|
| 96 |
-
href="
|
| 97 |
target="_blank"
|
| 98 |
className={`w-[110px] border ${buttonVariants({
|
| 99 |
variant: "secondary",
|
| 100 |
})}`}
|
| 101 |
>
|
| 102 |
-
<GitHubLogoIcon className="mr-
|
| 103 |
-
|
| 104 |
</a>
|
| 105 |
</nav>
|
| 106 |
</SheetContent>
|
|
@@ -128,8 +119,8 @@ export const Navbar = () => {
|
|
| 128 |
target="_blank"
|
| 129 |
className={`border ${buttonVariants({ variant: "secondary" })}`}
|
| 130 |
>
|
| 131 |
-
<GitHubLogoIcon className="mr-
|
| 132 |
-
|
| 133 |
</a>
|
| 134 |
|
| 135 |
<ModeToggle />
|
|
|
|
| 11 |
SheetTitle,
|
| 12 |
SheetTrigger,
|
| 13 |
} from "@/components/ui/sheet";
|
|
|
|
| 14 |
import { GitHubLogoIcon } from "@radix-ui/react-icons";
|
| 15 |
import { buttonVariants } from "./ui/button";
|
| 16 |
import { Menu } from "lucide-react";
|
|
|
|
| 28 |
label: "Features",
|
| 29 |
},
|
| 30 |
{
|
| 31 |
+
href: "#upload",
|
| 32 |
+
label: "Upload",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
},
|
| 34 |
];
|
| 35 |
|
|
|
|
| 45 |
className="ml-2 font-bold text-xl flex"
|
| 46 |
>
|
| 47 |
<LogoIcon />
|
| 48 |
+
DocVerifyRAG
|
| 49 |
</a>
|
| 50 |
</NavigationMenuItem>
|
| 51 |
|
|
|
|
| 69 |
<SheetContent side={"left"}>
|
| 70 |
<SheetHeader>
|
| 71 |
<SheetTitle className="font-bold text-xl">
|
| 72 |
+
DocVerifyRAG
|
| 73 |
</SheetTitle>
|
| 74 |
</SheetHeader>
|
| 75 |
<nav className="flex flex-col justify-center items-center gap-2 mt-4">
|
|
|
|
| 84 |
</a>
|
| 85 |
))}
|
| 86 |
<a
|
| 87 |
+
href="#"
|
| 88 |
target="_blank"
|
| 89 |
className={`w-[110px] border ${buttonVariants({
|
| 90 |
variant: "secondary",
|
| 91 |
})}`}
|
| 92 |
>
|
| 93 |
+
<GitHubLogoIcon className="mr-0 w-14 h-5" />
|
| 94 |
+
Join Waitlist
|
| 95 |
</a>
|
| 96 |
</nav>
|
| 97 |
</SheetContent>
|
|
|
|
| 119 |
target="_blank"
|
| 120 |
className={`border ${buttonVariants({ variant: "secondary" })}`}
|
| 121 |
>
|
| 122 |
+
<GitHubLogoIcon className="mr-0 w-8 h-5" />
|
| 123 |
+
Join Waitlist
|
| 124 |
</a>
|
| 125 |
|
| 126 |
<ModeToggle />
|
frontend/src/components/Statistics.tsx
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const Statistics = () => {
|
| 2 |
+
interface statsProps {
|
| 3 |
+
quantity: string;
|
| 4 |
+
description: string;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
const stats: statsProps[] = [
|
| 8 |
+
{
|
| 9 |
+
quantity: "2.7K+",
|
| 10 |
+
description: "Users",
|
| 11 |
+
},
|
| 12 |
+
{
|
| 13 |
+
quantity: "1.8K+",
|
| 14 |
+
description: "Subscribers",
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
quantity: "112",
|
| 18 |
+
description: "Downloads",
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
quantity: "4",
|
| 22 |
+
description: "Products",
|
| 23 |
+
},
|
| 24 |
+
];
|
| 25 |
+
|
| 26 |
+
return (
|
| 27 |
+
<section id="statistics">
|
| 28 |
+
<div className="grid grid-cols-2 lg:grid-cols-4 gap-8">
|
| 29 |
+
{stats.map(({ quantity, description }: statsProps) => (
|
| 30 |
+
<div
|
| 31 |
+
key={description}
|
| 32 |
+
className="space-y-2 text-center"
|
| 33 |
+
>
|
| 34 |
+
<h2 className="text-3xl sm:text-4xl font-bold ">{quantity}</h2>
|
| 35 |
+
<p className="text-xl text-muted-foreground">{description}</p>
|
| 36 |
+
</div>
|
| 37 |
+
))}
|
| 38 |
+
</div>
|
| 39 |
+
</section>
|
| 40 |
+
);
|
| 41 |
+
};
|
frontend/src/components/theme-provider.tsx
CHANGED
|
@@ -18,6 +18,7 @@ const initialState: ThemeProviderState = {
|
|
| 18 |
setTheme: () => null,
|
| 19 |
};
|
| 20 |
|
|
|
|
| 21 |
const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
|
| 22 |
|
| 23 |
export function ThemeProvider({
|
|
|
|
| 18 |
setTheme: () => null,
|
| 19 |
};
|
| 20 |
|
| 21 |
+
|
| 22 |
const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
|
| 23 |
|
| 24 |
export function ThemeProvider({
|