@@ -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
+
@@ -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.
diff --git a/site/pages/contributor.js b/site/pages/contributor.js
new file mode 100644
index 0000000..ddd0417
--- /dev/null
+++ b/site/pages/contributor.js
@@ -0,0 +1,230 @@
+import React, { useEffect, useState } from 'react';
+import { motion, AnimatePresence } from 'framer-motion';
+
+const ContributorCard = ({ login, avatar_url, html_url, contributions, type }) => (
+
+
+
+
{login}
+
{type}
+
+ {contributions} contributions
+
+
+
+
+);
+
+const StatCard = ({ label, value, icon }) => (
+
+
+ {icon}
+
+
+
+);
+
+export default function Contributor() {
+ const [contributors, setContributors] = useState([]);
+ const [repoStats, setRepoStats] = useState({ stars: 0, forks: 0, openIssues: 0 });
+ const [loading, setLoading] = useState(true);
+ const [email, setEmail] = useState('');
+ const [notification, setNotification] = useState({ show: false, message: '' });
+
+ useEffect(() => {
+ const fetchData = async () => {
+ try {
+ const contributorsResponse = await fetch('https://api.github.com/repos/subhadipbhowmik/bio-branch/contributors');
+ const contributorsData = await contributorsResponse.json();
+ setContributors(contributorsData);
+
+ const repoResponse = await fetch('https://api.github.com/repos/subhadipbhowmik/bio-branch');
+ const repoData = await repoResponse.json();
+ setRepoStats({
+ stars: repoData.stargazers_count,
+ forks: repoData.forks_count,
+ openIssues: repoData.open_issues_count,
+ });
+ } catch (error) {
+ console.error('Error fetching data:', error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ fetchData();
+ }, []);
+
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ setNotification({ show: true, message: `Thank you for subscribing with ${email}. We'll keep you updated!` });
+ setEmail('');
+ setTimeout(() => setNotification({ show: false, message: '' }), 5000);
+ };
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+ Welcome to Biotree
+
+
+ Empowering writers, one commit at a time
+
+
+ document.getElementById('contribute').scrollIntoView({ behavior: 'smooth' })}
+ >
+ Become a Contributor
+
+
+
+
+
+ {/* Stats Section */}
+
+
+
Project Statistics
+
+
+
+ }
+ />
+ sum + contributor.contributions, 0)}
+ icon={
+
+ }
+ />
+
+
+ }
+ />
+
+
+ }
+ />
+
+
+
+
+ {/* Contributors Grid */}
+
+
+
Meet Our Contributors
+
+ {loading ? (
+
+
+
+ ) : (
+
+ {contributors.map((contributor) => (
+
+ ))}
+
+ )}
+
+
+
+
+ {/* Call to Action */}
+
+
+
Ready to Make an Impact?
+
+ Join our community and help shape the future of Biotree.
+
+
+ setEmail(e.target.value)}
+ className="px-4 py-2 rounded-md text-gray-800 w-full sm:w-auto"
+ />
+
+ Get Started
+
+
+ {notification.show && (
+
+ {notification.message}
+
+ )}
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/site/pages/index.js b/site/pages/index.js
index 6055254..ca5e15f 100644
--- a/site/pages/index.js
+++ b/site/pages/index.js
@@ -4,8 +4,19 @@ import Creators from '@/components/Creators'
import DetailsCard from '@/components/DetailsCard'
import Faq from '@/components/Faq'
import Process from '@/components/Process'
+import { useRef } from 'react';
+import { ChevronDoubleDownIcon } from '@heroicons/react/24/solid';
export default function Home() {
+
+ // Scroll to the next section
+ const scrollToNextSection = () => {
+ window.scrollBy({
+ top: window.innerHeight,
+ behavior: 'smooth',
+ });
+ };
+
return (
<>
+ {/* Scroll down button */}
+
+ {/* Double arrow icon */}
+
+
diff --git a/site/styles/globals.css b/site/styles/globals.css
index 6d4761a..a511a05 100644
--- a/site/styles/globals.css
+++ b/site/styles/globals.css
@@ -54,6 +54,18 @@ img{
-webkit-user-drag: none;
}
+nav{
+ position:fixed; /*making topnav bar fixed*/
+ top:0;
+ width:100%;
+ z-index: 1000; /* Make sure it stays above other elements */
+}
+
+/*adding space between topnavbar and creator list section*/
+.py-12{
+ margin-top:130px;
+}
+
/* @media (prefers-color-scheme: dark) {
html {
color-scheme: dark;
diff --git a/site/styles/scrollToTopButton.css b/site/styles/scrollToTopButton.css
new file mode 100644
index 0000000..468f5c8
--- /dev/null
+++ b/site/styles/scrollToTopButton.css
@@ -0,0 +1,30 @@
+/* styles.css */
+.scroll-to-top {
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ z-index: 1000;
+}
+
+.scroll-btn {
+ /* background-color: #007bff; */
+ background-color: #723aeb;
+ color: white;
+ border: none;
+ padding: 10px 20px;
+ border-radius: 5px;
+ cursor: pointer;
+ font-size: 20px;
+ font-weight: bold;
+ box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.4);
+ opacity: 0.9;
+}
+
+.scroll-btn:hover {
+ opacity: 1;
+}
+
+.scroll-btn:focus {
+ outline: none;
+}
+
\ No newline at end of file
diff --git a/site/tailwind.config.js b/site/tailwind.config.js
index 16316d7..728e8c1 100644
--- a/site/tailwind.config.js
+++ b/site/tailwind.config.js
@@ -6,7 +6,13 @@ module.exports = {
"./components/**/*.{js,ts,jsx,tsx}",
],
theme: {
- extend: {},
+ extend: {
+ colors: {
+ gray: {
+ 900: 'rgb(7, 56, 65)', // Custom color for footer section
+ }
+ }
+ },
},
plugins: [],
safelist: [