Skip to content

Commit

Permalink
Optimise and dynamic route
Browse files Browse the repository at this point in the history
  • Loading branch information
dev129 committed Dec 16, 2024
1 parent d93c48e commit 73e6a0f
Show file tree
Hide file tree
Showing 18 changed files with 188 additions and 107 deletions.
85 changes: 42 additions & 43 deletions app/components/AboutUs.jsx
Original file line number Diff line number Diff line change
@@ -1,49 +1,48 @@
const AboutUs = () => {
return (
<section className="py-16 bg-[#1D232A] text-white min-h-screen">
<div className="max-w-6xl mx-auto text-center px-6">
{/* Section Title */}
<h2 className="text-4xl font-bold text-white mb-8">Who are we ?</h2>

<p className="text-lg text-white mb-8">
We are a passionate team of blockchain and cryptocurrency enthusiasts dedicated to helping you manage your crypto investments with ease and security. Our platform is built on the principles of decentralization, security, and user empowerment.
return (
<section className="py-16 bg-[#1D232A] text-white " >
<div className="max-w-6xl mx-auto text-center px-6">
{/* Section Title */}
<h2 className="text-4xl font-bold text-white mb-8">Who are we?</h2>

<p className="text-lg text-white mb-8">
We are a dedicated team passionate about solving parking challenges. Our goal is to simplify the parking experience for drivers by providing an easy, automated system that helps you find available parking spots quickly and efficiently.
</p>

{/* Mission Statement */}
<div className="mb-16">
<h3 className="text-2xl font-semibold text-white mb-4">Our Mission</h3>
<p className="text-lg text-white">
At ParkMate, our mission is to create a seamless parking experience for everyone. We aim to reduce the time spent searching for parking and make the process as convenient as possible. With the power of automation, our system helps drivers find and pay for available parking spots with ease.
</p>

{/* Mission Statement */}
<div className="mb-16">
<h3 className="text-2xl font-semibold text-white mb-4">Our Mission</h3>
<p className="text-lg text-white">
Our mission is simple: to provide a secure, easy-to-use platform that helps you track your crypto investments in real-time. Whether you're a seasoned investor or a beginner, our web3-based system allows you to access your data securely and make informed decisions about your portfolio.
</div>

{/* Features List */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12">
<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Automated Parking Spot Detection</h4>
<p className="text-gray-600">
Our system uses advanced <strong>computer vision</strong> and <strong>sensors</strong> to detect available parking spots. This ensures that drivers have access to accurate information about open spaces.
</p>
</div>

<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Easy Payment Options</h4>
<p className="text-gray-600">
Pay for parking seamlessly using <strong>MetaMask</strong> for cryptocurrency payments or <strong>UPI</strong> for traditional methods. Our payment options are secure and user-friendly.
</p>
</div>

{/* Features List */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12">
<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Web3-Based Security</h4>
<p className="text-gray-600">
Our platform leverages the power of web3 technology to ensure that your wallet data is safe and secure, with no need to store sensitive information on centralized servers.
</p>
</div>

<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Real-Time Portfolio Tracking</h4>
<p className="text-gray-600">
Track your crypto assets and DeFi positions in real-time, allowing you to see how your investments are performing across various blockchains.
</p>
</div>

<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Multi-Wallet Support</h4>
<p className="text-gray-600">
Log in seamlessly using popular wallets like Coinbase Wallet, MetaMask, or OKX Wallet, and easily manage your crypto portfolio in one place.
</p>
</div>

<div className="bg-white p-6 rounded-lg shadow-md">
<h4 className="text-xl font-semibold text-gray-800 mb-4">Available in Commercial Spaces</h4>
<p className="text-gray-600">
ParkMate is designed to work in <strong>closed area spaces</strong> like malls and commercial parking lots. Our platform helps businesses manage parking efficiently and provides drivers with easy access to available spots.
</p>
</div>
</div>
</section>
);
};
export default AboutUs;
</div>
</section>
);
};

export default AboutUs;
75 changes: 42 additions & 33 deletions app/components/CTA.jsx
Original file line number Diff line number Diff line change
@@ -1,37 +1,46 @@
'use client'
import { SignedIn, SignedOut, SignInButton, UserButton } from "@clerk/nextjs";
import Link from "next/link";
import { useRef } from "react";

const CTA = () => {
return (
<section className="bg-gradient-to-r from-blue-500 to-indigo-600 py-16 text-white text-center">
<div className="max-w-4xl mx-auto px-6">
<h2 className="text-4xl font-bold mb-4">
So, What Are You Waiting For? Join Now and Start Tracking Your Crypto!
</h2>
<p className="text-xl mb-8">
Unlock the full potential of your crypto investments with real-time tracking, secure Web3 login, and multi-wallet support. Don’t miss out!
</p>
<div>
<Link
href="#" // Link to your signup page or wallet login page
className="inline-block px-8 py-3 bg-yellow-500 text-gray-900 font-semibold text-lg rounded-lg shadow-md hover:bg-yellow-400 transition-all duration-300"
>
<SignedOut>
<SignInButton >
Get Started Now
</SignInButton>
{/* Before login user button*/ }
</SignedOut>
<SignedIn>
<UserButton />
</SignedIn>

</Link>
</div>
</div>
</section>
);
// Create a ref to target the section you want to scroll to (e.g., "AboutUs" or "Parking Features")
const aboutUsRef = useRef(null);

// Function to handle scroll
const handleScrollToAboutUs = () => {
if (aboutUsRef.current) {
aboutUsRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
};

export default CTA;


return (
<section className="bg-gradient-to-r from-green-500 to-teal-600 py-16 text-white text-center">
<div className="max-w-4xl mx-auto px-6">
<h2 className="text-4xl font-bold mb-4">
Ready to Find Your Parking Spot? Get Started Now!
</h2>
<p className="text-xl mb-8">
With our smart parking system, you can easily find and book available parking slots, secure EV charging stations, and enjoy seamless payments with MetaMask or UPI.
</p>
<div>
{/* Button to trigger scroll action */}
<button
onClick={handleScrollToAboutUs}
className="inline-block px-8 py-3 bg-yellow-500 text-gray-900 font-semibold text-lg rounded-lg shadow-md hover:bg-yellow-400 transition-all duration-300"
>
<SignedOut>
<SignInButton>
Get Started Now
</SignInButton>
</SignedOut>
<SignedIn>
<UserButton />
</SignedIn>
</button>
</div>
</div>
</section>
);
};

export default CTA;
39 changes: 27 additions & 12 deletions app/components/FAQ.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ const FAQ = () => {
return (
<section className="py-12 px-6 bg-[#1D232A] min-h-screen">
<div className="max-w-4xl mx-auto text-center">
<h2 className="text-3xl font-semibold mb-8">Frequently Asked Questions</h2>
<h2 className="text-3xl font-semibold mb-8">Frequently Asked Questions</h2>

<div className="space-y-6 text-left">
{faqData.map((faq, index) => (
<div key={index} className="border-b border-gray-200">
<button
onClick={() => toggleQuestion(index)}
className="w-full text-left py-4 px-6 flex justify-between items-center text-lg font-medium text-white focus:outline-none"
className="w-full text-left py-4 px-6 flex justify-between items-center text-lg font-medium text-white focus:outline-none"
>
<span>{faq.question}</span>
<svg
Expand Down Expand Up @@ -50,29 +50,44 @@ const FAQ = () => {

const faqData = [
{
question: 'How do I log in to my account?',
question: 'How accurate is the availability information for parking spots?',
answer:
'You can log in using your web3 wallet. We support Coinbase Wallet, MetaMask, and OKX Wallet. Simply connect your wallet and access your account to start tracking your crypto investments.',
'The parking availability information is updated every 5 minutes to ensure you get real-time data. However, please be aware that the status of parking spots may change rapidly, so it\'s always a good idea to check before you head to a location.',
},
{
question: 'Is my data secure?',
question: 'How can I pay for parking?',
answer:
'Yes, your data is secure. Our platform is based on web3 technology, ensuring that your wallet and investment data remain private and encrypted. We do not store your private keys or sensitive information.',
'You can make payments using either your MetaMask wallet for cryptocurrency payments or UPI for traditional payments. Both methods are secure and easy to use.',
},
{
question: 'Can I track my crypto investments?',
question: 'Can I cancel or modify my reservation?',
answer:
'Yes, our platform allows you to track your crypto portfolio, see your profit and loss, and analyze your investment performance over time. You can view your transaction history and wallet statistics.',
'Currently, ParkMate does not support the ability to change or cancel a parking reservation. Once you enter a parking spot, the process is completed, and no modifications can be made. Refunds are also not available at this time.',
},
{
question: 'What are DeFi positions and how can I check them?',
question: 'Are there electric vehicle (EV) charging stations available?',
answer:
'DeFi (Decentralized Finance) positions represent your investments in decentralized finance protocols. You can check your active DeFi positions and track their performance directly from your dashboard.',
'EV charging stations are available depending on the location. For areas with EV charging infrastructure, you’ll be able to see charging options in the app. Availability may vary by place.',
},
{
question: 'What are active chains?',
question: 'How can I report an issue with a parking space or app feature?',
answer:
'Active chains refer to the blockchains on which your assets are being tracked. Our platform supports multiple blockchains, and you can monitor your assets across different chains simultaneously.',
'If you encounter any issues, you can report them easily by visiting our "Contact Us" page within the app or on the website. Our support team will address your concerns promptly.',
},
{
question: 'Is ParkMate available for businesses or commercial parking lots?',
answer:
'Yes, ParkMate is available for closed area spaces like malls and commercial properties. We help manage parking in such locations by providing real-time availability and easy payment methods.',
},
{
question: 'How does ParkMate detect available parking spots?',
answer:
'ParkMate uses computer vision and sensors to detect available parking spaces. This technology ensures accurate and up-to-date information for users, making it easy to find a parking spot in crowded areas.',
},
{
question: 'Can I view my parking history or receipts in the app?',
answer:
'Currently, ParkMate does not provide historical data or receipts through the app. We are considering adding this feature in the future, but for now, users can track only current parking availability.',
},
];

Expand Down
14 changes: 6 additions & 8 deletions app/components/RemoveBackground.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ import TeamIcon from '../public/Logo.png';
import LandingPage from '../public/LandingPark.png';
import Image from 'next/image';
import { SignedOut, SignInButton } from '@clerk/nextjs';
import TellMeMore from '../components/TellMeMore'

const RemoveBackground = () => {
// Function to handle scroll when the "Tell Me More" button is clicked

return (
<div className="relative w-full h-screen">
{/* Background Image - Full Cover */}
Expand All @@ -14,7 +17,7 @@ const RemoveBackground = () => {
src={LandingPage}
alt="Background"
layout="fill"
objectFit="cover"
style={{objectFit:'cover'}}
quality={100}
priority
/>
Expand All @@ -28,7 +31,7 @@ const RemoveBackground = () => {
<div className="flex justify-center mb-4">
<Image src={TeamIcon} alt="Team Logo" height={300} width={300} />
</div>

<div className="flex gap-4">
<a
href="#"
Expand All @@ -50,12 +53,7 @@ const RemoveBackground = () => {
></path>
</svg>
</a>
<a
href="#"
className="inline-flex items-center justify-center px-5 py-3 text-base font-medium text-center text-gray-900 border border-gray-300 rounded-lg hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Tell Me More
</a>
<TellMeMore/>
</div>
</div>
</div>
Expand Down
13 changes: 5 additions & 8 deletions app/components/Review.jsx
Original file line number Diff line number Diff line change
@@ -1,33 +1,30 @@
'use client'
import { useState } from 'react';

const Reviews = () => {
const reviews = [
{
name: 'Alice Johnson',
rating: 5,
review: 'This platform has completely transformed the way I track my crypto investments. The web3 integration makes it seamless to check my profits and losses in real time. Highly recommend!',
avatar: 'https://randomuser.me/api/portraits/thumb/women/75.jpg',
review: 'ParkMate has completely transformed how I find parking. The automated system makes it so easy to find available spots, and the payment options are seamless. Highly recommend this service!',
avatar: 'https://randomuser.me/api/portraits/thumb/women/75.jpg',
},
{
name: 'Bob Smith',
rating: 4,
review: 'I love how easy it is to log in with my MetaMask wallet. The transaction history feature helps me stay on top of all my investments.',
review: 'I love how easy it is to find and reserve parking using ParkMate. The integration with MetaMask for payments was a nice surprise, making it even more convenient!',
avatar: 'https://randomuser.me/api/portraits/thumb/men/7.jpg',
},
{
name: 'Charlie Lee',
rating: 5,
review: 'A must-have for crypto enthusiasts! It tracks my DeFi positions effortlessly, and the multi-chain support is a game changer.',
review: 'A real game-changer for busy areas like malls. The system detects parking spots instantly, and the payment process is fast and secure. I never have to waste time looking for parking anymore!',
avatar: 'https://randomuser.me/api/portraits/thumb/men/75.jpg',
},
];

return (
<section className="py-12 px-6 bg-[#1D232A] min-h-screen">
<div className="max-w-4xl mx-auto text-left">
<h2 className="text-3xl font-semibold text-white mb-8">What Our Users Say</h2>

<h2 className="text-3xl font-semibold text-white text-center mb-8">Reviews</h2>
<div className="space-y-8">
{reviews.map((review, index) => (
<div key={index} className="bg-white p-6 rounded-lg shadow-md">
Expand Down
2 changes: 1 addition & 1 deletion app/components/SignedOut.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const SignedOut = () => {
<RemoveBackground />
</div>

<div className="min-h-screen">
<div className="min-h-screen" id='AboutUs'>
<AboutUs />
</div>

Expand Down
21 changes: 21 additions & 0 deletions app/components/TellMeMore.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'use client'
import React from 'react'
const TellMeMore = () => {
const handleScrollToAboutUs = () => {
const aboutUsSection = document.getElementById("AboutUs");
if (aboutUsSection) {
aboutUsSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
};

return(

<button
onClick={handleScrollToAboutUs} // Trigger scroll
className="inline-flex items-center justify-center px-5 py-3 text-base font-medium text-center text-gray-900 border border-gray-300 rounded-lg hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Tell Me More
</button>
)
}
export default TellMeMore;
1 change: 1 addition & 0 deletions app/layout.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import Navbar from './components/Navbar'
import backgroundImage from '../app/public/LandingPark.png' // Replace with your actual background image



export default function RootLayout({ children }) {
return (
<ClerkProvider>
Expand Down
Loading

0 comments on commit 73e6a0f

Please sign in to comment.