diff --git a/arrow_upper.png b/arrow_upper.png new file mode 100644 index 00000000..3ca22f21 Binary files /dev/null and b/arrow_upper.png differ diff --git a/auth.html b/auth.html index ee38dc8e..3045c9d3 100644 --- a/auth.html +++ b/auth.html @@ -30,10 +30,10 @@

Sign in

OR
Sign in with social platforms

- + diff --git a/blog.css b/blog.css new file mode 100644 index 00000000..1fea89bd --- /dev/null +++ b/blog.css @@ -0,0 +1,41 @@ +body { + background-color: white; + color: black; + transition: background-color 0.3s, color 0.3s; +} + +body.dark-mode { + background-color: #121212; + color: #ffffff; +} + +header.dark-mode { + background-color: #1f1f1f; +} + +.mode-toggle { + cursor: pointer; + border: none; + background: transparent; + outline: none; + padding: 10px; +} + +.mode-toggle img { + width: 24px; + height: 24px; +} + +.navbar { + background-color: #f0f0f0; + transition: background-color 0.3s; +} + +body.dark-mode .navbar { + background-color: #333; +} + +body.dark-mode .navbar a:hover { + color: #4C51BF; + transform: translateY(-2px); +} diff --git a/blog.html b/blog.html index e513b680..14c312fa 100644 --- a/blog.html +++ b/blog.html @@ -8,6 +8,7 @@ + @@ -741,6 +742,10 @@

BuddyTrail

  • Contact
  • Sign In
  • Blog
  • + @@ -922,10 +927,16 @@

    ${post.title}

    ${post.tags.map(tag => `${tag}`).join('')}

    ${post.content.substring(0, 150)}...

    +
    + +
    + Read More

    Comments (${post.comments.length})

    @@ -944,7 +955,7 @@

    Comments (${post.comments.length})

    `; container.appendChild(article); - }); + }); addEventListeners(); } @@ -1120,6 +1131,182 @@

    Comments (${post.comments.length})

    } } += + }); + + addEventListeners(); + } + + function addEventListeners() { + // Add event listeners for read more links + document.querySelectorAll('.read-more').forEach(link => { + link.addEventListener('click', (e) => { + e.preventDefault(); + const article = e.target.closest('.blog-post'); + const content = article.querySelector('.content'); + const fullContent = article.querySelector('.full-content'); + + if (content.style.display !== 'none') { + content.style.display = 'none'; + fullContent.style.display = 'block'; + e.target.textContent = 'Read Less'; + } else { + content.style.display = 'block'; + fullContent.style.display = 'none'; + e.target.textContent = 'Read More'; + } + }); + }); + + // Add event listeners for comment forms + document.querySelectorAll('.comment-form').forEach(form => { + form.addEventListener('submit', (e) => { + e.preventDefault(); + const postId = parseInt(e.target.getAttribute('data-post-id')); + const comment = e.target.querySelector('textarea').value; + addComment(postId, comment); + e.target.reset(); + }); + }); + } + + function populateFilters() { + const categoryFilter = document.getElementById('categoryFilter'); + const tagFilter = document.getElementById('tagFilter'); + const categories = getLocalData('categories'); + const tags = getLocalData('tags'); + + categoryFilter.innerHTML = ''; + tagFilter.innerHTML = ''; + + categories.forEach(category => { + const option = document.createElement('option'); + option.value = category; + option.textContent = category; + categoryFilter.appendChild(option); + }); + + tags.forEach(tag => { + const option = document.createElement('option'); + option.value = tag; + option.textContent = tag; + tagFilter.appendChild(option); + }); + + // Add event listeners for filters + categoryFilter.addEventListener('change', filterPosts); + tagFilter.addEventListener('change', filterPosts); + } + + function filterPosts() { + const selectedCategory = document.getElementById('categoryFilter').value; + const selectedTag = document.getElementById('tagFilter').value; + const posts = getLocalData('blogPosts'); + + const filteredPosts = posts.filter(post => { + const categoryMatch = !selectedCategory || post.category === selectedCategory; + const tagMatch = !selectedTag || post.tags.includes(selectedTag); + return categoryMatch && tagMatch; + }); + + renderFilteredPosts(filteredPosts); + } + + function renderFilteredPosts(filteredPosts) { + const container = document.querySelector('.blog-container'); + container.innerHTML = ''; + + filteredPosts.forEach(post => { + const article = document.createElement('article'); + article.className = 'blog-post'; + article.innerHTML = ` +

    ${post.title}

    +
    Posted on ${post.date} by ${post.author}
    +
    ${post.category}
    +
    ${post.tags.map(tag => `${tag}`).join('')}
    +
    +

    ${post.content.substring(0, 150)}...

    +
    + + Read More +
    +

    Comments (${post.comments.length})

    +
    + ${post.comments.slice(0, 2).map(comment => ` +
    +

    ${comment.text}

    + ${comment.date} +
    + `).join('')} +
    +
    + + +
    +
    + `; + container.appendChild(article); + }); + + addEventListeners(); + } + + function viewFullPost(postId) { + const posts = getLocalData('blogPosts'); + const post = posts.find(p => p.id === postId); + if (post) { + const modal = document.createElement('div'); + modal.className = 'modal'; + modal.innerHTML = ` + + `; + document.body.appendChild(modal); + + // Close modal when clicking on the close button or outside the modal + modal.querySelector('.close').addEventListener('click', () => { + document.body.removeChild(modal); + }); + modal.addEventListener('click', (e) => { + if (e.target === modal) { + document.body.removeChild(modal); + } + }); + + // Add event listener for comment form in modal + modal.querySelector('.comment-form').addEventListener('submit', (e) => { + e.preventDefault(); + const comment = e.target.querySelector('textarea').value; + addComment(postId, comment); + e.target.reset(); + }); + } + } function addComment(postId, commentText) { const posts = getLocalData('blogPosts'); const postIndex = posts.findIndex(p => p.id === postId); @@ -1152,6 +1339,67 @@

    Comments (${post.comments.length})

    } + + + + diff --git a/contact.html b/contact.html index 628ae610..c5df49cb 100644 --- a/contact.html +++ b/contact.html @@ -204,9 +204,7 @@

    Contact Us

    diff --git a/contributor/contributor.css b/contributor/contributor.css index aa00ec6d..559f7f8d 100644 --- a/contributor/contributor.css +++ b/contributor/contributor.css @@ -1,291 +1,291 @@ * { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -body { - font-family: Arial, sans-serif; - line-height: 1.6; - color: #333; - background-color: #f5f5f5; -} - -.contributor-container { - margin: 0 auto; -} - -/* Hero Section */ -.contributor-hero { - background-image: url('https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&w=2850&q=80'); - background-size: cover; - background-position: center; - height: 70vh; - display: flex; - align-items: center; - justify-content: center; - text-align: center; - position: relative; -} - -.contributor-hero::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.7); -} - -.contributor-hero-content { - position: relative; - z-index: 1; - color: #fff; -} - -.contributor-hero h1 { - font-size: 3.5rem; - margin-bottom: 1rem; -} - -.contributor-hero p { - font-size: 1.5rem; - margin-bottom: 2rem; -} - -/* Buttons */ -.contributor-btn { - display: inline-block; - padding: 0.8rem 1.5rem; - border: none; - border-radius: 5px; - font-size: 1rem; - cursor: pointer; - transition: background-color 0.3s ease; -} - -.contributor-btn-primary { - background-color: #fff; - color: #333; -} - -.contributor-btn-primary:hover { - background-color: #f0f0f0; -} - -.contributor-btn-secondary { - background-color: #333; - color: #fff; -} - -.contributor-btn-secondary:hover { - background-color: #444; -} - -/* Stats Section */ -.contributor-stats { - max-width: 1200px; - margin: 0 auto; - padding: 4rem 0; - text-align: center; -} - -.contributor-stats h2 { - font-size: 2rem; - margin-bottom: 2rem; -} - -.contributor-stats-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 2rem; -} - -.contributor-stat-card { - background-color: #fff; - border: 1px solid #e0e0e0; - border-radius: 10px; - padding: 1.5rem; - text-align: center; -} - -.contributor-stat-card .contributor-icon { - font-size: 2rem; - margin-bottom: 1rem; -} - -.contributor-stat-card h3 { - font-size: 2rem; - margin-bottom: 0.5rem; -} - -.contributor-stat-card p { - color: #666; -} - -/* Contributors Section */ -.contributor-contributors { - max-width: 1200px; - margin: 0 auto; - padding: 4rem 0; - text-align: center; -} - -.contributor-contributors h2 { - font-size: 2rem; - margin-bottom: 2rem; -} - -.contributor-contributors-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; -} - -.contributor-contributor-card { - background-color: #fff; - border: 1px solid #e0e0e0; - border-radius: 10px; - overflow: hidden; - transition: transform 0.3s ease, box-shadow 0.3s ease; -} - -.contributor-contributor-card:hover { - transform: translateY(-5px); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); -} - -.contributor-contributor-card img { - width: 100px; - height: 100px; - border-radius: 50%; - margin: 1.5rem auto; - display: block; - border: 4px solid #f0f0f0; -} - -.contributor-contributor-card h3 { - font-size: 1.2rem; - margin-bottom: 0.5rem; -} - -.contributor-contributor-card p { - color: #666; - margin-bottom: 1rem; -} - -.contributor-contributor-card .contributor-contributions { - background-color: #f0f0f0; - padding: 0.5rem 1rem; - border-radius: 20px; - display: inline-block; - margin-bottom: 1rem; -} - -.contributor-contributor-card .contributor-footer { - background-color: #f9f9f9; - padding: 1rem; - display: flex; - justify-content: space-between; - align-items: center; -} - -.contributor-contributor-card .contributor-footer a { - color: #333; - text-decoration: none; - display: flex; - align-items: center; -} - -.contributor-contributor-card .contributor-footer svg { - margin-right: 0.5rem; -} - -/* Loading Spinner */ -.contributor-loading { - display: flex; - justify-content: center; - align-items: center; - height: 200px; -} - -.contributor-spinner { - border: 4px solid #f3f3f3; - border-top: 4px solid #333; - border-radius: 50%; - width: 40px; - height: 40px; - animation: contributor-spin 1s linear infinite; -} - -@keyframes contributor-spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -/* Call to Action Section */ -.contributor-cta { - background-color: #333; - color: #fff; - padding: 4rem 0; - text-align: center; -} - -.contributor-cta h2 { - font-size: 2rem; - margin-bottom: 1rem; -} - -.contributor-cta p { - font-size: 1.2rem; - margin-bottom: 2rem; -} - -.contributor-cta form { - display: flex; - justify-content: center; - gap: 1rem; - margin-bottom: 1rem; -} - -.contributor-cta input[type="email"] { - padding: 0.8rem; - font-size: 1rem; - border: none; - border-radius: 5px; - width: 300px; -} - -.contributor-notification { - background-color: #4CAF50; - color: white; - padding: 1rem; - border-radius: 5px; - margin-top: 1rem; -} - -.contributor-hidden { - display: none; -} - -/* Responsive Design */ -@media (max-width: 768px) { + box-sizing: border-box; + margin: 0; + padding: 0; + } + + body { + font-family: Arial, sans-serif; + line-height: 1.6; + color: #333; + background-color: #f5f5f5; + } + + .contributor-container { + margin: 0 auto; + } + + /* Hero Section */ + .contributor-hero { + background-image: url('https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&w=2850&q=80'); + background-size: cover; + background-position: center; + height: 70vh; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + position: relative; + } + + .contributor-hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.7); + } + + .contributor-hero-content { + position: relative; + z-index: 1; + color: #fff; + } + .contributor-hero h1 { - font-size: 2.5rem; + font-size: 3.5rem; + margin-bottom: 1rem; } - + .contributor-hero p { - font-size: 1.2rem; + font-size: 1.5rem; + margin-bottom: 2rem; + } + + /* Buttons */ + .contributor-btn { + display: inline-block; + padding: 0.8rem 1.5rem; + border: none; + border-radius: 5px; + font-size: 1rem; + cursor: pointer; + transition: background-color 0.3s ease; + } + + .contributor-btn-primary { + background-color: #fff; + color: #333; + } + + .contributor-btn-primary:hover { + background-color: #f0f0f0; + } + + .contributor-btn-secondary { + background-color: #333; + color: #fff; + } + + .contributor-btn-secondary:hover { + background-color: #444; + } + + /* Stats Section */ + .contributor-stats { + max-width: 1200px; + margin: 0 auto; + padding: 4rem 0; + text-align: center; + } + + .contributor-stats h2 { + font-size: 2rem; + margin-bottom: 2rem; + } + + .contributor-stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; + } + + .contributor-stat-card { + background-color: #fff; + border: 1px solid #e0e0e0; + border-radius: 10px; + padding: 1.5rem; + text-align: center; + } + + .contributor-stat-card .contributor-icon { + font-size: 2rem; + margin-bottom: 1rem; + } + + .contributor-stat-card h3 { + font-size: 2rem; + margin-bottom: 0.5rem; + } + + .contributor-stat-card p { + color: #666; + } + + /* Contributors Section */ + .contributor-contributors { + max-width: 1200px; + margin: 0 auto; + padding: 4rem 0; + text-align: center; } - + + .contributor-contributors h2 { + font-size: 2rem; + margin-bottom: 2rem; + } + + .contributor-contributors-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + } + + .contributor-contributor-card { + background-color: #fff; + border: 1px solid #e0e0e0; + border-radius: 10px; + overflow: hidden; + transition: transform 0.3s ease, box-shadow 0.3s ease; + } + + .contributor-contributor-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + } + + .contributor-contributor-card img { + width: 100px; + height: 100px; + border-radius: 50%; + margin: 1.5rem auto; + display: block; + border: 4px solid #f0f0f0; + } + + .contributor-contributor-card h3 { + font-size: 1.2rem; + margin-bottom: 0.5rem; + } + + .contributor-contributor-card p { + color: #666; + margin-bottom: 1rem; + } + + .contributor-contributor-card .contributor-contributions { + background-color: #f0f0f0; + padding: 0.5rem 1rem; + border-radius: 20px; + display: inline-block; + margin-bottom: 1rem; + } + + .contributor-contributor-card .contributor-footer { + background-color: #f9f9f9; + padding: 1rem; + display: flex; + justify-content: space-between; + align-items: center; + } + + .contributor-contributor-card .contributor-footer a { + color: #333; + text-decoration: none; + display: flex; + align-items: center; + } + + .contributor-contributor-card .contributor-footer svg { + margin-right: 0.5rem; + } + + /* Loading Spinner */ + .contributor-loading { + display: flex; + justify-content: center; + align-items: center; + height: 200px; + } + + .contributor-spinner { + border: 4px solid #f3f3f3; + border-top: 4px solid #333; + border-radius: 50%; + width: 40px; + height: 40px; + animation: contributor-spin 1s linear infinite; + } + + @keyframes contributor-spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + + /* Call to Action Section */ + .contributor-cta { + background-color: #333; + color: #fff; + padding: 4rem 0; + text-align: center; + } + + .contributor-cta h2 { + font-size: 2rem; + margin-bottom: 1rem; + } + + .contributor-cta p { + font-size: 1.2rem; + margin-bottom: 2rem; + } + .contributor-cta form { - flex-direction: column; - align-items: center; + display: flex; + justify-content: center; + gap: 1rem; + margin-bottom: 1rem; } - + .contributor-cta input[type="email"] { - width: 100%; - max-width: 300px; + padding: 0.8rem; + font-size: 1rem; + border: none; + border-radius: 5px; + width: 300px; + } + + .contributor-notification { + background-color: #4CAF50; + color: white; + padding: 1rem; + border-radius: 5px; + margin-top: 1rem; + } + + .contributor-hidden { + display: none; } -} \ No newline at end of file + + /* Responsive Design */ + @media (max-width: 768px) { + .contributor-hero h1 { + font-size: 2.5rem; + } + + .contributor-hero p { + font-size: 1.2rem; + } + + .contributor-cta form { + flex-direction: column; + align-items: center; + } + + .contributor-cta input[type="email"] { + width: 100%; + max-width: 300px; + } + } \ No newline at end of file diff --git a/contributor/contributor.html b/contributor/contributor.html index 4a7cd4c8..30282d4e 100644 --- a/contributor/contributor.html +++ b/contributor/contributor.html @@ -1,3 +1,4 @@ + diff --git a/contributor/contributor.js b/contributor/contributor.js index 6aab8ba0..4ff0ea2e 100644 --- a/contributor/contributor.js +++ b/contributor/contributor.js @@ -1,143 +1,149 @@ // Fetch data from GitHub API async function fetchData() { - try { - const contributorsResponse = await fetch( - "https://api.github.com/repos/PriyaGhosal/BuddyTrail/contributors" - ); - const contributorsData = await contributorsResponse.json(); - - const repoResponse = await fetch( - "https://api.github.com/repos/PriyaGhosal/BuddyTrail" - ); - const repoData = await repoResponse.json(); - - return { contributors: contributorsData, repoStats: repoData }; - } catch (error) { - console.error("Error fetching data:", error); - return { contributors: [], repoStats: {} }; - } +Contributors + try { + const contributors = []; + let page = 1; + let totalContributions = 0; // Initialize total contributions + let moreContributors = true; + + // Fetch contributors in a loop until no more pages + while (moreContributors) { + const response = await fetch(`https://api.github.com/repos/PriyaGhosal/BuddyTrail/contributors?per_page=100&page=${page}`); + + // Check for rate limiting + if (response.status === 403) { + console.warn('Rate limit exceeded. Waiting for reset...'); + const resetTime = response.headers.get('X-RateLimit-Reset') * 1000; // Convert to milliseconds + const waitTime = resetTime - Date.now(); + if (waitTime > 0) { + await new Promise(resolve => setTimeout(resolve, waitTime)); // Wait until rate limit resets + } + continue; // Retry the request after waiting + } + + if (!response.ok) throw new Error('Failed to fetch contributors'); + const data = await response.json(); + + if (data.length > 0) { + contributors.push(...data); + // Accumulate contributions + totalContributions += data.reduce((sum, contributor) => sum + contributor.contributions, 0); + page++; + } else { + moreContributors = false; // No more contributors to fetch + } + } + + const repoResponse = await fetch('https://api.github.com/repos/PriyaGhosal/BuddyTrail'); + if (!repoResponse.ok) throw new Error('Failed to fetch repo data'); + const repoData = await repoResponse.json(); + + return { contributors, repoStats: repoData, totalContributions }; // Return total contributions + } catch (error) { + console.error('Error fetching data:', error); + return { contributors: [], repoStats: {}, totalContributions: 0 }; // Default value + } + main } // Render stats function renderStats(repoStats, contributorsCount, totalContributions) { - const statsGrid = document.getElementById("statsGrid"); - const stats = [ - { label: "Contributors", value: contributorsCount, icon: "users" }, - { - label: "Total Contributions", - value: totalContributions, - icon: "git-commit", - }, - { - label: "GitHub Stars", - value: repoStats.stargazers_count || 0, - icon: "star", - }, - { label: "Forks", value: repoStats.forks_count || 0, icon: "git-branch" }, - ]; - - statsGrid.innerHTML = stats - .map( - (stat) => ` -
    -
    ${getIcon(stat.icon)}
    -

    ${stat.value}

    -

    ${stat.label}

    -
    - ` - ) - .join(""); +Contributors + const statsGrid = document.getElementById('statsGrid'); + const stats = [ + { label: 'Contributors', value: contributorsCount, icon: 'users' }, + { label: 'Total Contributions', value: totalContributions, icon: 'git-commit' }, // Use total contributions + { label: 'GitHub Stars', value: repoStats.stargazers_count || 0, icon: 'star' }, + { label: 'Forks', value: repoStats.forks_count || 0, icon: 'git-branch' } + ]; + + statsGrid.innerHTML = stats.map(stat => ` +
    +
    ${getIcon(stat.icon)}
    +

    ${stat.value}

    +

    ${stat.label}

    +
    + `).join(''); + main } // Render contributors function renderContributors(contributors) { - const contributorsGrid = document.getElementById("contributorsGrid"); - contributorsGrid.innerHTML = contributors - .map( - (contributor) => ` -
    - ${contributor.login} -

    ${contributor.login}

    -

    ${contributor.type}

    -
    ${ - contributor.contributions - } contributions
    - -
    - ` - ) - .join(""); +Contributors + const contributorsGrid = document.getElementById('contributorsGrid'); + contributorsGrid.innerHTML = contributors.map(contributor => ` +
    + ${contributor.login} +

    ${contributor.login}

    +

    ${contributor.type}

    +
    ${contributor.contributions} contributions
    + +
    + `).join(''); +main } // Helper function to get icons (simplified version) function getIcon(name) { - const icons = { - users: - '', - "git-commit": - '', - star: '', - "git-branch": - '', - "external-link": - '', - github: - '', - }; - return icons[name] || ""; + Contributors + const icons = { + 'users': '', + 'git-commit': '', + 'star': '', + 'git-branch': '', + 'external-link': '', + 'github': '' + }; + return icons[name] || ''; +main } // Initialize the page async function init() { - const loading = document.getElementById("loading"); - const contributorsGrid = document.getElementById("contributorsGrid"); +Contributors + const loading = document.getElementById('loading'); + const contributorsGrid = document.getElementById('contributorsGrid'); - loading.style.display = "flex"; - contributorsGrid.style.display = "none"; + loading.style.display = 'flex'; + contributorsGrid.style.display = 'none'; - const { contributors, repoStats } = await fetchData(); - const totalContributions = contributors.reduce( - (sum, contributor) => sum + contributor.contributions, - 0 - ); + const { contributors, repoStats, totalContributions } = await fetchData(); // Get total contributions - renderStats(repoStats, contributors.length, totalContributions); - renderContributors(contributors); + renderStats(repoStats, contributors.length, totalContributions); // Pass total contributions + renderContributors(contributors); - loading.style.display = "none"; - contributorsGrid.style.display = "grid"; + loading.style.display = 'none'; + contributorsGrid.style.display = 'grid'; } // Handle form submission -document - .getElementById("subscribeForm") - .addEventListener("submit", function (e) { +document.getElementById('subscribeForm').addEventListener('submit', function(e) { e.preventDefault(); - const email = document.getElementById("emailInput").value; - const notification = document.getElementById("notification"); - + const email = document.getElementById('emailInput').value; + const notification = document.getElementById('notification'); + notification.textContent = `Thank you for subscribing with ${email}. We'll keep you updated!`; - notification.classList.remove("hidden"); - - document.getElementById("emailInput").value = ""; - + notification.classList.remove('hidden'); + + document.getElementById('emailInput').value = ''; + setTimeout(() => { - notification.classList.add("hidden"); + notification.classList.add('hidden'); }, 5000); - }); +}); // Scroll to contribute section function scrollToContribute() { - document.getElementById("contribute").scrollIntoView({ behavior: "smooth" }); + document.getElementById('contribute').scrollIntoView({ behavior: 'smooth' }); } // Initialize the page when the DOM is loaded -document.addEventListener("DOMContentLoaded", init); +document.addEventListener('DOMContentLoaded', init); +main diff --git a/img/Microsoft_Logo.png b/img/Microsoft_Logo.png new file mode 100644 index 00000000..c9476a74 Binary files /dev/null and b/img/Microsoft_Logo.png differ diff --git a/img/df1.jpg b/img/df1.jpg new file mode 100644 index 00000000..63df83f7 Binary files /dev/null and b/img/df1.jpg differ diff --git a/img/df2.jpg b/img/df2.jpg new file mode 100644 index 00000000..9aa82978 Binary files /dev/null and b/img/df2.jpg differ diff --git a/index.html b/index.html index 43795023..9381455f 100644 --- a/index.html +++ b/index.html @@ -506,8 +506,6 @@

    BuddyTrail

    ×
  • Home
  • - -
  • Map
  • Team
  • Exclusive Deals
  • Blogs
  • @@ -1578,7 +1576,7 @@

    Adventure Trek in Himachal

    .recommendation-item p { color: #555555; - font-size: 1.1rem; + font-size: 1.5rem; margin-bottom: 20px; } @@ -1591,6 +1589,7 @@

    Adventure Trek in Himachal

    border-radius: 6px; cursor: pointer; transition: background-color 0.3s ease, transform 0.3s ease; + font-size: 1.5rem; } .recommendation-item button:hover { @@ -2122,1398 +2121,6 @@

    Travel Discussion Forum

    margin-top: 20px; } } - - - -
    -

    Explore Popular Destinations

    -

    Click on the markers to learn more about each destination.

    -
    -
    - - - - - - - - - ]; - - // Adding markers to the map - locations.forEach(location => { - const marker = new google.maps.Marker({ - position: { lat: location.coords[0], lng: location.coords[1] }, - map: map, - title: location.description.split(' - ')[0], // Use the location name as the title - }); - - // Optional: Add an info window for the marker - const infowindow = new google.maps.InfoWindow({ - content: `
    ${location.description}
    `, - }); - - marker.addListener("click", () => { - infowindow.open(map, marker); - }); - }); - } - - - + + + + - - -
    - - - - - diff --git a/project-structure.md b/project-structure.md index aef890fa..df26aa65 100644 --- a/project-structure.md +++ b/project-structure.md @@ -11,6 +11,7 @@ ├── Travel-Itineraries.html ├── about.css ├── about.html +├── arrow_upper.png ├── auth.css ├── auth.html ├── auth.js @@ -29,6 +30,7 @@ │ │ └── authRoutes.js │ └── utils │ └── authUtils.js +├── blog.css ├── blog.html ├── book.html ├── boy.png @@ -89,6 +91,7 @@ │ ├── HELP-IMG.jpg │ ├── INDIA.jpg │ ├── MALDIVES.jpeg +│ ├── Microsoft_Logo.png │ ├── PROJECT-LEADER.png │ ├── Premium Photo _ Vibrant mesh gradient with magenta and blue colors high quality image for backgrounds and web.jpeg │ ├── Presentation1-removebg-preview.png @@ -99,6 +102,8 @@ │ ├── c3.jpg │ ├── cloud.png │ ├── contact-mountain.png +│ ├── df1.jpg +│ ├── df2.jpg │ ├── download.jpeg │ ├── google.png │ ├── googleLogo.png @@ -131,7 +136,6 @@ │ ├── u4.jpg │ └── u5.jpg ├── index.html -├── map.html ├── moon.png ├── package-lock.json ├── package.json @@ -140,6 +144,7 @@ ├── project_structure.txt ├── rajasthan.css ├── rajasthan.html +├── rajasthan.js ├── reviews.html ├── romantic-gateway.css ├── romantic-gateway.html diff --git a/project_structure.txt b/project_structure.txt index e9a9e46a..33667487 100644 --- a/project_structure.txt +++ b/project_structure.txt @@ -9,6 +9,7 @@ ├── Travel-Itineraries.html ├── about.css ├── about.html +├── arrow_upper.png ├── auth.css ├── auth.html ├── auth.js @@ -27,6 +28,7 @@ │ │ └── authRoutes.js │ └── utils │ └── authUtils.js +├── blog.css ├── blog.html ├── book.html ├── boy.png @@ -87,6 +89,7 @@ │ ├── HELP-IMG.jpg │ ├── INDIA.jpg │ ├── MALDIVES.jpeg +│ ├── Microsoft_Logo.png │ ├── PROJECT-LEADER.png │ ├── Premium Photo _ Vibrant mesh gradient with magenta and blue colors high quality image for backgrounds and web.jpeg │ ├── Presentation1-removebg-preview.png @@ -97,6 +100,8 @@ │ ├── c3.jpg │ ├── cloud.png │ ├── contact-mountain.png +│ ├── df1.jpg +│ ├── df2.jpg │ ├── download.jpeg │ ├── google.png │ ├── googleLogo.png @@ -129,7 +134,6 @@ │ ├── u4.jpg │ └── u5.jpg ├── index.html -├── map.html ├── moon.png ├── package-lock.json ├── package.json @@ -138,6 +142,7 @@ ├── project_structure.txt ├── rajasthan.css ├── rajasthan.html +├── rajasthan.js ├── reviews.html ├── romantic-gateway.css ├── romantic-gateway.html diff --git a/rajasthan.css b/rajasthan.css index 2a35faf2..e55dfa28 100644 --- a/rajasthan.css +++ b/rajasthan.css @@ -1,22 +1,21 @@ body { - background-color: #f8f9fa; + background-color: #f9f9f9; + font-family: 'Arial', sans-serif; } -.tour-card { - transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out; - border-radius: 15px; - overflow: hidden; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +h1, h2 { + font-family: 'Georgia', serif; + font-weight: bold; + font-size: 4rem; } -.tour-card:hover { - transform: translateY(-5px); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); +.tour-card { + transition: transform 0.3s, box-shadow 0.3s; } -.tour-card img { - height: 200px; - object-fit: cover; +.tour-card:hover { + transform: scale(1.05); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); } .card-title { @@ -25,52 +24,38 @@ body { .btn-primary { background-color: #007bff; - border-color: #007bff; - transition: background-color 0.3s ease-in-out; + border: none; } .btn-primary:hover { background-color: #0056b3; - border-color: #0056b3; + transition: background-color 0.3s; +} + +.carousel-inner img { + height: 400px; + object-fit: cover; } .modal-content { - border-radius: 15px; + background-color: #ffffff; + border-radius: 8px; } .modal-header { background-color: #007bff; color: white; - border-top-left-radius: 15px; - border-top-right-radius: 15px; } -.modal-body { - padding: 2rem; +.modal-title { + font-weight: bold; } -@media (max-width: 768px) { - .tour-card { - margin-bottom: 20px; - } +footer { + background-color: #f1f1f1; + border-top: 1px solid #ddd; } -.form-select:focus { - border-color: #007bff; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -#noResults { - text-align: center; - padding: 20px; - font-size: 18px; -} - -@keyframes fadeIn { - from { opacity: 0; } - to { opacity: 1; } -} - -.tour-card { - animation: fadeIn 0.5s ease-in-out; +.alert { + margin-top: 20px; } diff --git a/rajasthan.html b/rajasthan.html index 5b868ee1..bad35980 100644 --- a/rajasthan.html +++ b/rajasthan.html @@ -8,10 +8,53 @@ + + +
    -

    Cultural Tours in Rajasthan

    - -
    +

    Cultural Tours in Rajasthan

    + + + + +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    + + +
    + + +
    + + + - \ No newline at end of file + diff --git a/rajasthan.js b/rajasthan.js new file mode 100644 index 00000000..ac025c8f --- /dev/null +++ b/rajasthan.js @@ -0,0 +1,11 @@ +let currentIndex = 0; + +function moveCarousel(direction) { + const items = document.querySelectorAll('.carousel-item'); + items[currentIndex].classList.remove('active'); + currentIndex = (currentIndex + direction + items.length) % items.length; + items[currentIndex].classList.add('active'); +} + +// Initialize the first image to be visible +document.querySelector('.carousel-item').classList.add('active'); diff --git a/script.js b/script.js index 653afe37..6a9dec79 100644 --- a/script.js +++ b/script.js @@ -316,6 +316,7 @@ // } /*SOS*/ + function sendSOS() { const statusDiv = document.getElementById("sos-status"); diff --git a/service.html b/service.html index 91883fbf..a1c70cfa 100644 --- a/service.html +++ b/service.html @@ -99,14 +99,14 @@
    International Flights
    - Domestic flight + Domestic flight
    Domestic Flights

    Explore your country with our extensive network of domestic flights.

    Book Now
    -
    +
    Private jet @@ -145,7 +145,7 @@
    Luxury Vehicles
    - SUV + SUV
    SUVs & Vans

    Perfect for group travel or those needing extra space.

    diff --git a/servicespage.html b/servicespage.html index 8389f223..d0723782 100644 --- a/servicespage.html +++ b/servicespage.html @@ -259,7 +259,7 @@
    International Flights
    - Domestic flight + Domestic flight
    Domestic Flights

    Explore your country with our extensive network of domestic flights.

    @@ -305,7 +305,7 @@
    Luxury Vehicles
    - SUV + SUV
    SUVs & Vans

    Perfect for group travel or those needing extra space.

    diff --git a/style.css b/style.css index 27bdc4c8..d151c3c0 100644 --- a/style.css +++ b/style.css @@ -262,9 +262,23 @@ input, p { font-size: 1rem; } +.go-top-btn{ + position: fixed; + bottom: 25px; + right: 20px; + border-radius: 50%; + cursor: pointer; + height:70px; + width:70px; + background: #007bff; + border: none; + display: flex; + justify-content: center; + align-content: center; + z-index: 1000; +} button { - padding: 2rem 6rem; background: rgba(255, 255, 255, 0.15); border: none; color: white; @@ -283,7 +297,7 @@ button { transition: background-color 0.3s; } .heading-contributors h2{ - color: transparent; + color: black; } #btn a { diff --git a/team.html b/team.html index 4de75a45..40c45b76 100644 --- a/team.html +++ b/team.html @@ -27,6 +27,7 @@ referrerpolicy="no-referrer" /> + +