diff --git a/.env.example b/.env.example deleted file mode 100644 index aaafb24..0000000 --- a/.env.example +++ /dev/null @@ -1,16 +0,0 @@ -# Example environment variables for contributors -# Copy this file to .env and update with your values - -# Backend Configuration (use hosted backend or local backend running on port 5000) -VITE_BACKEND_URL=http://localhost:3000/ - -# Google Maps API (optional - will use mock map if not provided) -VITE_GOOGLE_MAPS_API_KEY=your_google_maps_key_here - -# Firebase Configuration (optional - will use mock firebase if not provided) -VITE_FIREBASE_API_KEY=your_firebase_api_key -VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain -VITE_FIREBASE_PROJECT_ID=your_firebase_project_id -VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket -VITE_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id -VITE_FIREBASE_APP_ID=your_firebase_app_id \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f38f3fe..8e225ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -130,7 +130,6 @@ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -1917,7 +1916,6 @@ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "license": "MIT", - "peer": true, "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -2576,7 +2574,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.13.1.tgz", "integrity": "sha512-0O33PKrXLoIWkoOO5ByFaLjZehBctSYWnb+xJkIdx2SKP/K9l1UPFXPwASyrOIqyY3ws+7orF/1j7wI5EKzPYQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", @@ -2643,7 +2640,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.4.1.tgz", "integrity": "sha512-9VGjnY23Gc1XryoF/ABWtZVJYnaPOnjHM7dsqq9YALgKRtxI1FryvELUVkDaEIUf4In2bfkb9ZENF1S9M273Dw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/app": "0.13.1", "@firebase/component": "0.6.17", @@ -2659,8 +2655,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@firebase/auth-compat": { "version": "0.5.27", @@ -3111,7 +3106,6 @@ "integrity": "sha512-Z4rK23xBCwgKDqmzGVMef+Vb4xso2j5Q8OG0vVL4m4fA5ZjPMYQazu8OJJC3vtQRC3SQ/Pgx/6TPNVsCd70QRw==", "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" }, @@ -5010,7 +5004,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -5108,7 +5101,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5713,7 +5705,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -5964,7 +5955,6 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz", "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==", "license": "MIT", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -6372,8 +6362,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/culori": { "version": "3.3.0", @@ -6992,7 +6981,6 @@ "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -9622,7 +9610,6 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -9816,8 +9803,7 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/leven": { "version": "3.1.0", @@ -11323,7 +11309,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -11678,7 +11663,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -11722,7 +11706,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -13361,7 +13344,6 @@ "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -13500,7 +13482,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -13981,7 +13962,6 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -14103,7 +14083,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -14449,7 +14428,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -14516,7 +14494,6 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, diff --git a/src/components/Footer/ContributorsFooter.jsx b/src/components/Footer/ContributorsFooter.jsx index 202f16e..f158f5e 100644 --- a/src/components/Footer/ContributorsFooter.jsx +++ b/src/components/Footer/ContributorsFooter.jsx @@ -1,9 +1,12 @@ -import React from 'react'; -import { motion } from 'framer-motion'; -import { FaGithub, FaLinkedin, FaXTwitter, FaHeart, FaCode, FaUsers, FaBook, FaEnvelope } from 'react-icons/fa'; -import { BiCopyright, BiLink } from 'react-icons/bi'; +import React, { useState, useEffect } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { + FaGithub, FaLinkedin, FaHeart, FaCode, + FaUsers, FaBook, FaGlobe, FaRocket +} from 'react-icons/fa'; +import { FaXTwitter } from 'react-icons/fa6'; +import { BiCopyright, BiChevronRight } from 'react-icons/bi'; import { useNavigate } from 'react-router-dom'; -import { useState, useEffect } from 'react'; import axiosInstance from '../../utils/axiosInstance'; import logo from '../../assets/images/logo.png'; @@ -14,7 +17,6 @@ const ContributorsFooter = ({ contributorsCount = 0 }) => { const [storiesCount, setStoriesCount] = useState('200+'); useEffect(() => { - // Fetch commits count from GitHub const fetchCommitsCount = async () => { try { const response = await fetch('https://api.github.com/repos/Sahilll94/Travel-Book/commits?per_page=1'); @@ -30,7 +32,6 @@ const ContributorsFooter = ({ contributorsCount = 0 }) => { } }; - // Fetch stories count from database const fetchStoriesCount = async () => { try { const response = await axiosInstance.get('/total-stories'); @@ -51,29 +52,26 @@ const ContributorsFooter = ({ contributorsCount = 0 }) => { { name: 'Home', path: '/' }, { name: 'Dashboard', path: '/dashboard' }, { name: 'Contributors', path: '/contributors' }, - { name: 'Apply to Contribute', path: '/contribute' } + { name: 'Apply Now', path: '/contribute' } ], community: [ - { name: 'GitHub Repository', url: 'https://github.com/Sahilll94/Travel-Book' }, - { name: 'Issues & Bugs', url: 'https://github.com/Sahilll94/Travel-Book/issues' }, - { name: 'Feature Requests', url: 'https://github.com/Sahilll94/Travel-Book/discussions' }, - { name: 'Contributing Guide', url: 'https://github.com/Sahilll94/Travel-Book/blob/main/CONTRIBUTING.md' } + { name: 'Source Code', url: 'https://github.com/Sahilll94/Travel-Book' }, + { name: 'Report Issue', url: 'https://github.com/Sahilll94/Travel-Book/issues' }, + { name: 'Discussions', url: 'https://github.com/Sahilll94/Travel-Book/discussions' }, + { name: 'Contribution Guide', url: 'https://github.com/Sahilll94/Travel-Book/blob/main/CONTRIBUTING.md' } ], - resources: [ - { name: 'Documentation', url: 'https://github.com/Sahilll94/Travel-Book/blob/main/QUICKSTART.md' }, - { name: 'API Reference', url: 'https://travel-book-api-docs.hashnode.dev/travel-book-api-documentation' }, - { name: 'Code of Conduct', url: 'https://github.com/Sahilll94/Travel-Book/blob/main/CODE_OF_CONDUCT.md' }, + legal: [ + { name: 'Privacy Policy', path: '/privacy' }, + { name: 'Terms of Service', path: '/terms' }, { name: 'License', url: 'https://github.com/Sahilll94/Travel-Book/blob/main/LICENSE' } ] }; const socialLinks = [ - { - name: 'GitHub', - icon: FaGithub, - url: 'https://github.com/Sahilll94/Travel-Book', - color: 'hover:text-gray-900 dark:hover:text-white' - } + { name: 'GitHub', icon: FaGithub, url: 'https://github.com/Sahilll94/Travel-Book', color: '#333' }, + { name: 'LinkedIn', icon: FaLinkedin, url: '#', color: '#0077b5' }, + { name: 'X', icon: FaXTwitter, url: '#', color: '#000000' }, + { name: 'Website', icon: FaGlobe, url: '#', color: '#0891b2' } ]; const stats = [ @@ -83,201 +81,133 @@ const ContributorsFooter = ({ contributorsCount = 0 }) => { ]; return ( - ); }; -export default ContributorsFooter; +export default ContributorsFooter; \ No newline at end of file diff --git a/src/pages/hero/Footer.jsx b/src/pages/hero/Footer.jsx index 18ace68..04255d0 100644 --- a/src/pages/hero/Footer.jsx +++ b/src/pages/hero/Footer.jsx @@ -1,148 +1,141 @@ - +import React from 'react'; +import { motion } from 'framer-motion'; +import { + FaGithub, FaLinkedin, FaHeart, FaCode, + FaUsers, FaBook, FaGlobe, FaRocket +} from 'react-icons/fa'; +import { FaXTwitter } from 'react-icons/fa6'; +import { BiCopyright, BiChevronRight } from 'react-icons/bi'; +import { useNavigate } from 'react-router-dom'; import logo from "../../assets/images/logo.png"; -import { Globe } from "lucide-react"; -import { FaXTwitter } from "react-icons/fa6"; -import { LuLinkedin, LuGithub } from "react-icons/lu"; - const Footer = () => { - return ( -