diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f046cef..65ce367 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,7 +73,8 @@ Thank you for your interest in contributing to BioBranch! This guide will help y npm install npm start ``` - - For frontend changes: + - For frontend changes:cd server + ```bash cd site npm install diff --git a/package-lock.json b/package-lock.json index bc57870..a39f145 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,13 @@ { "name": "bio-branch", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, - "packages": {} + "packages": { + "": { + "name": "bio-branch", + "version": "1.0.0", + "license": "ISC" + } + } } diff --git a/site/components/Faq.js b/site/components/Faq.js index 7cac793..c514266 100644 --- a/site/components/Faq.js +++ b/site/components/Faq.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { HelpCircle, Info, CheckCircle, XCircle } from 'lucide-react'; +import { HelpCircle, Info, CheckCircle, Settings } from 'lucide-react'; const Faq = () => { const [activeIndex, setActiveIndex] = useState(null); @@ -20,7 +20,7 @@ const Faq = () => { }, { question: 'How can I create a BioTree?', - answer: 'To create your BioTree, simply sign up, create an account, and start adding your social media links to your profile. It’s quick and easy!', + answer: 'To create your BioTree, simply sign up, create an account, and start adding your social media links to your profile. It\'s quick and easy!', icon: }, { @@ -31,7 +31,7 @@ const Faq = () => { { question: 'Can I customize my BioTree?', answer: 'Absolutely! You can customize the appearance of your BioTree by selecting from various themes and layouts to match your personal style or brand.', - icon: + icon: } ]; @@ -40,44 +40,45 @@ const Faq = () => {

Frequently Asked Questions

{faqData.map((faq, index) => ( -
handleMouseEnter(index)} - onMouseLeave={handleMouseLeave} - > -
-
- {/* Inline style for 360-degree rotation */} - - {faq.icon} - -
-
-

{faq.question}

-
-
-
-

{faq.answer}

-
- {activeIndex === index ? 'Hide' : 'Show'} Answer -
+
handleMouseEnter(index)} + onMouseLeave={handleMouseLeave} + onClick={() => setActiveIndex(activeIndex === index ? null : index)} // Add this line +> +
+
+
+ + {faq.icon} + +
+ +

{faq.question}

+
+ {activeIndex === index ? 'Hide' : 'Show'} Answer +
+
+

{faq.answer}

+
+
))}
); }; -export default Faq; +export default Faq; \ No newline at end of file diff --git a/site/components/Footer.js b/site/components/Footer.js index f3b6120..9815690 100644 --- a/site/components/Footer.js +++ b/site/components/Footer.js @@ -5,6 +5,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faInstagram, faDiscord, faFacebook, faTwitter, faWhatsapp } from '@fortawesome/free-brands-svg-icons' import '@fortawesome/fontawesome-free/css/all.min.css' + const Footer = () => { const iconStyle = { @@ -19,13 +20,18 @@ const Footer = () => { transform: 'scale(1.2)', }; +const Footer = () => { + return (
{/* Wave Effect (You can add SVG wave here for a design touch) */} - + +
@@ -33,9 +39,9 @@ const Footer = () => { {/* Left Section: Logo & Copyright */}
- HireHUB + BioTree -

© {new Date().getFullYear()} Your Company. All rights reserved.

+

© {new Date().getFullYear()} BioTree. All rights reserved.

@@ -133,19 +139,82 @@ const Footer = () => { {/* Right Section: Social Media Links */}
- - - {/* Add Twitter SVG Path */} + {/* NEW LOGOS with hover animation: Color change + Bouncing effect on Hover */} + + {/* New Twitter Logo */} + {/* Added: Hover Change -> COLOR + Bouncing Effect on Hover */} + + + {/* Adjusted size of the circle here */} + + + + {/* On Hover: Icon color changes to white and circle changes to logo color */} + + {/* Added Twitter SVG Path */} + - - - {/* Add LinkedIn SVG Path */} + + {/* New GitHub Logo */} + {/* Added: Hover Change -> COLOR + Bouncing Effect on Hover */} + + + {/* Adjusted size of the circle here */} + + + + {/* On Hover: Icon color changes to white and circle changes to logo color */} + + {/* Added GitHub SVG Path */} + - - - {/* Add GitHub SVG Path */} + + {/* New LinkedIn Logo */} + {/* Added: Hover Change -> COLOR + Bouncing Effect on Hover */} + + + {/* Adjusted size of the circle here */} + + + + {/* On Hover: Icon color changes to white and circle changes to logo color */} + + {/* Added LinkedIn SVG Path */} + + + + + {/* New Instagram Logo */} + {/* Added: Hover Change -> COLOR + Bouncing Effect on Hover */} + + + {/* Adjusted size of the circle here */} + + + + {/* On Hover: Icon color changes to white and circle changes to logo color */} + + {/* Added Instagram SVG Path */} +
@@ -153,7 +222,7 @@ const Footer = () => { {/* Bottom Text */}
-

© 2024 Shubhadip Bhowmik. All rights reserved.

+

© {new Date().getFullYear()} Shubhadip Bhowmik. All rights reserved.

) diff --git a/site/components/Navbar.js b/site/components/Navbar.js index 36c05d0..a44038e 100644 --- a/site/components/Navbar.js +++ b/site/components/Navbar.js @@ -42,6 +42,9 @@ const NavBar = () => {
  • Apply
  • +
  • + Contributors +
  • Login
  • diff --git a/site/components/ScrollToTopButton.js b/site/components/ScrollToTopButton.js new file mode 100644 index 0000000..42cd589 --- /dev/null +++ b/site/components/ScrollToTopButton.js @@ -0,0 +1,41 @@ +import React, { useState, useEffect } from 'react'; + +const ScrollToTopButton = () => { + const [isVisible, setIsVisible] = useState(false); + + // Show or hide the button based on scroll position + const toggleVisibility = () => { + if (window.scrollY > 200) { + setIsVisible(true); + } else { + setIsVisible(false); + } + }; + + // Scroll the window back to the top + const scrollToTop = () => { + window.scrollTo({ + top: 0, + behavior: 'smooth' + }); + }; + + useEffect(() => { + window.addEventListener('scroll', toggleVisibility); + return () => { + window.removeEventListener('scroll', toggleVisibility); + }; + }, []); + + return ( +
    + {isVisible && ( + + )} +
    + ); +}; + +export default ScrollToTopButton; \ No newline at end of file diff --git a/site/package-lock.json b/site/package-lock.json index 7f532db..5539d84 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -9,9 +9,12 @@ "version": "0.1.0", "license": "ISC", "dependencies": { + "@fortawesome/fontawesome-free": "^6.6.0", "@fortawesome/free-brands-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", + "@heroicons/react": "^2.1.5", + "eslint": "8.37.0", "eslint-config-next": "13.2.4", "framer-motion": "^11.5.4", @@ -91,6 +94,7 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", @@ -140,6 +144,14 @@ "peerDependencies": { "@fortawesome/fontawesome-svg-core": "~1 || ~6", "react": ">=16.3" + + "node_modules/@heroicons/react": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz", + "integrity": "sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==", + "peerDependencies": { + "react": ">= 16" + } }, "node_modules/@humanwhocodes/config-array": { @@ -3889,19 +3901,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -4100,6 +4099,7 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz", "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==" }, + "@fortawesome/fontawesome-common-types": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", @@ -4134,6 +4134,11 @@ "requires": { "prop-types": "^15.8.1" } + + "@heroicons/react": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz", + "integrity": "sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA== }, "@humanwhocodes/config-array": { "version": "0.11.8", @@ -4356,8 +4361,7 @@ "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" }, "ajv": { "version": "6.12.6", @@ -4639,6 +4643,7 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -5125,8 +5130,7 @@ "eslint-plugin-react-hooks": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": {} + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" }, "eslint-scope": { "version": "7.1.1", @@ -5730,8 +5734,9 @@ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" - } + }, }, + "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5825,8 +5830,7 @@ "lucide-react": { "version": "0.439.0", "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.439.0.tgz", - "integrity": "sha512-PafSWvDTpxdtNEndS2HIHxcNAbd54OaqSYJO90/b63rab2HWYqDbH194j0i82ZFdWOAcf0AHinRykXRRK2PJbw==", - "requires": {} + "integrity": "sha512-PafSWvDTpxdtNEndS2HIHxcNAbd54OaqSYJO90/b63rab2HWYqDbH194j0i82ZFdWOAcf0AHinRykXRRK2PJbw==" }, "merge2": { "version": "1.4.1", @@ -6646,12 +6650,6 @@ "is-typed-array": "^1.1.9" } }, - "typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", - "peer": true - }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", diff --git a/site/package.json b/site/package.json index f1d59cf..60da82c 100644 --- a/site/package.json +++ b/site/package.json @@ -9,9 +9,12 @@ "lint": "next lint" }, "dependencies": { + "@fortawesome/fontawesome-free": "^6.6.0", "@fortawesome/free-brands-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", + + "@heroicons/react": "^2.1.5", "eslint": "8.37.0", "eslint-config-next": "13.2.4", "framer-motion": "^11.5.4", diff --git a/site/pages/_app.js b/site/pages/_app.js index 802cf94..cc3dc51 100644 --- a/site/pages/_app.js +++ b/site/pages/_app.js @@ -1,8 +1,10 @@ import "../styles/globals.css"; +import "../styles/scrollToTopButton.css"; import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import Footer from "../components/Footer"; import NavBar from "../components/Navbar"; +import ScrollToTopButton from "../components/ScrollToTopButton"; import NProgress from 'nprogress'; import '../public/nprogress.css'; import { ToastContainer } from 'react-toastify'; @@ -108,5 +110,5 @@ export default function App({ Component, pageProps }) { )} - ) + ); } diff --git a/site/pages/contact.js b/site/pages/contact.js index 02fad00..d0fc6a5 100644 --- a/site/pages/contact.js +++ b/site/pages/contact.js @@ -32,13 +32,12 @@ const Contact = () => { return (
    -

    +

    How would you like to contact Bio-branch?

    {/* Center the boxes with gap */} {/* Request a Call Box */} -
    -

    Request a Call

    +
    { className="border rounded p-2" required /> -
    @@ -95,14 +94,14 @@ const Contact = () => { {/* Support and Feedback Box */}
    -
    -

    Support

    +
    +

    Support

    Phone: (123) 456-7890

    Email: support@bio-branch.com

    -

    Feedback

    -

    Your feedback is important to us! Please let us know your thoughts.

    +

    Feedback

    +

    Your feedback is important to us! Please let us know your thoughts.