diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..9fded1e --- /dev/null +++ b/.htaccess @@ -0,0 +1 @@ +ErrorDocument 404 /404.html \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000..fffc865 --- /dev/null +++ b/404.html @@ -0,0 +1,74 @@ + + + + + + 404 PAGE + + + + + + + + + +
+
+
+
+
+
+

404

+ + +
+ +
+

+ Look like you're lost +

+ +

The page you are looking for not available!

+ + Go to Home +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/Contactus.html b/Contactus.html index 6496b2f..62e13af 100644 --- a/Contactus.html +++ b/Contactus.html @@ -363,6 +363,7 @@

+

Contact Info

@@ -399,6 +400,30 @@

+ +
+

Follow Us

+ Facebook
+ Twitter
+ Instagram
+
+

+

© 2024 Nursing Tomorrow's Smile. All rights reserved.

+ + + +
+ +
+
+ +
+ + \ No newline at end of file diff --git a/contributors/contributors.css b/contributors/contributors.css index 9ba84a2..8306152 100644 --- a/contributors/contributors.css +++ b/contributors/contributors.css @@ -460,7 +460,6 @@ margin: 0 auto; padding: 2rem 2rem; text-align: center; - background-color: rgba(255,255,255,0.3); border-radius: 25px; margin-top: 60px; } @@ -477,10 +476,12 @@ } .contributor-stat-card { - background-color: rgba(0,0,0,0.4); - border-radius: 10px; - padding: 1.5rem; - text-align: center; + + background-color: rgb(37 55 69); + border-radius: 10px; + padding: 1.5rem; + text-align: center; + } .contributor-stat-card .contributor-icon { diff --git a/contributors/contributors.js b/contributors/contributors.js index e453ab7..6ffb5f7 100644 --- a/contributors/contributors.js +++ b/contributors/contributors.js @@ -1,29 +1,75 @@ const repoOwner = "mansiruhil13"; const repoName = "Bobble-AI"; -const contributorsUrl = `https://api.github.com/repos/${repoOwner}/${repoName}/contributors`; +const contributorsUrl = `https://api.github.com/repos/${repoOwner}/${repoName}/contributors?per_page=100&page=`; // Set per_page to 100 (max allowed) and use pagination const repoUrl = `https://api.github.com/repos/${repoOwner}/${repoName}`; async function fetchContributorData() { try { - const [contributorsRes, repoRes] = await Promise.all([ - fetch(contributorsUrl), - fetch(repoUrl) - ]); - const contributors = await contributorsRes.json(); + // Fetch all contributors using pagination + const contributors = await fetchAllContributors(); + + // Fetch repository data (stars, forks, etc.) + const repoRes = await fetch(repoUrl); const repoData = await repoRes.json(); - const statsGrid = document.getElementById("statsGrid"); + // Render stats + renderStats(repoData, contributors); + + // Render contributors + renderContributors(contributors); + + + // Fetch repository data to get star and fork counts + const repoRes = await fetch(repoUrl); + const repoData = await repoRes.json(); + + + // Initialize variables + let allContributors = []; + let totalContributions = 0; + let page = 1; + + + // Fetch contributors in a loop to handle pagination + while (true) { + const contributorsRes = await fetch(contributorsUrl + page); + const contributors = await contributorsRes.json(); + + + // If no more contributors, break the loop + if (contributors.length === 0) { + break; + } + + + // Add the current page's contributors to the allContributors array + allContributors = [...allContributors, ...contributors]; + + + // Update total contributions + totalContributions += contributors.reduce((sum, { contributions }) => sum + contributions, 0); + + + // Move to the next page + page++; + + } + + // Update the stats grid + const statsGrid = document.getElementById("statsGrid"); statsGrid.innerHTML = ` -

${contributors.length}

Contributors

-

${contributors.reduce((sum, { contributions }) => sum + contributions, 0)}

Total Contributions

+

${allContributors.length}

Contributors

+

${totalContributions}

Total Contributions

${repoData.stargazers_count}

GitHub Stars

${repoData.forks_count}

Forks

`; + + // Display all contributors const contributorsContainer = document.getElementById("contributors"); - contributorsContainer.innerHTML = contributors.map(({ login, contributions, avatar_url, html_url }) => ` + contributorsContainer.innerHTML = allContributors.map(({ login, contributions, avatar_url, html_url }) => `
${login}'s avatar

${login}

@@ -31,9 +77,65 @@ async function fetchContributorData() { GitHub Profile
`).join(''); + + + } catch (error) { console.error("Error fetching data:", error); } + +} + + +// Fetch all contributors across multiple pages +async function fetchAllContributors() { + let contributors = []; + let page = 1; + let response; + + do { + response = await fetch(`${contributorsUrl}?page=${page}&per_page=100`); + const contributorsData = await response.json(); + contributors.push(...contributorsData); + page++; + } while (response.headers.get('link') && response.headers.get('link').includes('rel="next"')); // Check for "next" link in the header + + return contributors; } +// Render stats like total contributions, stars, forks, etc. +function renderStats(repoData, contributors) { + const statsGrid = document.getElementById("statsGrid"); + + statsGrid.innerHTML = ` +

${contributors.length}

Contributors

+

${contributors.reduce((sum, { contributions }) => sum + contributions, 0)}

Total Contributions

+

${repoData.stargazers_count}

GitHub Stars

+

${repoData.forks_count}

Forks

+ `; +} + +// Render the list of contributors +function renderContributors(contributors) { + const contributorsContainer = document.getElementById("contributors"); + + contributorsContainer.innerHTML = contributors.map(({ login, contributions, avatar_url, html_url }) => ` +
+ ${login}'s avatar +

${login}

+

Contributions: ${contributions}

+ GitHub Profile +
+ `).join(''); +} + +// Call the function to fetch and display data +fetchContributorData(); + +// Initialize the page when the DOM is loaded +document.addEventListener('DOMContentLoaded', function () { + // Your initialization code here if needed +}); + + fetchContributorData(); diff --git a/features.html b/features.html index b263f49..36bdf1b 100644 --- a/features.html +++ b/features.html @@ -698,6 +698,153 @@

Subscribe to document.getElementById('emailInput').value = ''; }); + + + diff --git a/homepage.html b/homepage.html index bd7b7fb..bae1df9 100644 --- a/homepage.html +++ b/homepage.html @@ -593,10 +593,10 @@

Contact Info

Follow Us

- Facebook
- Twitter
- Instagram
- LinkedIn + Facebook
+ Twitter
+ Instagram
+ LinkedIn
diff --git a/index.html b/index.html index e91953f..b71c811 100644 --- a/index.html +++ b/index.html @@ -140,16 +140,20 @@ footer { background-color: #C4D7FF; - color: #f3f4f6; + color: white; text-align: center; - padding: 15px 0; + padding: 10px 0; + position: relative; + bottom: 0; width: 100%; } - footer a{ - text-decoration: none; - color: #f3f4f6; + + .social-icon { + transition: transform 0.3s ease; + /* Smooth transition effect */ } + .checkbtn { font-size: 30px; color: #333; @@ -191,11 +195,15 @@ /* Icon color change to orangered on hover */ } - .fa-linkedin-in:hover { - color: rgb(16, 13, 195); + .fa-linkedin:hover { + color: darkblue; /* Icon color change to rgb(16, 13, 195) on hover */ } + .fa-pinterest:hover{ + color: red; + } + .feature p { color: #555; } @@ -400,6 +408,186 @@ padding: 20px; /* Optional: add padding for better spacing */ } + + /* Dark mode for profile icon */ +.dark-mode .profile-icon { + border: 1px solid #ccc; +} + +/* Dark mode dropdown menu */ +.dark-mode .dropdown-menu { + background-color: #333; + color: #f3f4f6; + border: 1px solid #555; +} + +.dark-mode .dropdown-menu a { + color: #f3f4f6; +} + +.dark-mode .dropdown-menu a:hover { + background-color: #444; +} + +/* Dark mode for content */ +.dark-mode .content { + background-color: #333; + color: #f3f4f6; +} + +/* Dark mode for h1 */ +.dark-mode h1 { + color: #f3f4f6; +} + +/* Dark mode for feature */ +.dark-mode .feature { + background-color: #444; + color: #f3f4f6; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5); +} + +/* Dark mode for feature images */ +.dark-mode .feature img { + border-color: #555; +} + +/* Dark mode for feature titles and paragraphs */ +.dark-mode .feature h2 { + color: #8ab4f8; +} + +.dark-mode .feature p { + color: #d1d5db; +} + +/* Dark mode for team-feature and contact-feature */ +.dark-mode .team-feature, +.dark-mode .contact-feature { + background-color: #333; + color: #e0e0e0; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5); +} + +/* Dark mode for FAQ section */ +.dark-mode .faq-section { + background-color: #333; +} + +.dark-mode .faq-h2 { + color: #f3f4f6; +} + +.dark-mode .faq { + background-color: #444; + border-color: #555; +} + +.dark-mode .faq-question { + background-color: #555; + color: #f3f4f6; +} + +.dark-mode .faq-question:hover { + background-color: #666; + color: #8ab4f8; +} + +.dark-mode .faq-answer { + background-color: #333; + color: #d1d5db; + border-top: 1px solid #555; +} + +/* Dark mode for footer */ +.dark-mode footer { + background-color: #222; + color: #f3f4f6; +} + +.dark-mode footer a { + color: #8ab4f8; +} + +/* Dark mode for social icons */ +.dark-mode .social-icon:hover { + color: #8ab4f8; +} + + + + .search-box { + display: flex; + align-items: center; /* Center vertically */ + gap: 3px; /* Space between input and button */ + max-width: 400px; /* Optional: Set a max-width for the container */ + margin: 0 auto; /* Optional: Center the search box container */ + } + .search-box input { + width: 70%; + padding: 10px 15px; + border: 2px solid #007BFF; + margin-bottom: 25px; + border-top-left-radius: 25px; + border-bottom-left-radius: 25px; + outline: none; + transition: 0.3s; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + font-size: 16px; + color: #333; + } + .search-box input:focus { + border-color: #0056b3; /* Darker border color on focus */ + box-shadow: 0 4px 12px rgba(0, 91, 187, 0.3); /* Slightly darker shadow */ + } + .search-box input::placeholder { + color: #999; + } + + .btn { + padding: 10px 20px; + background: linear-gradient(135deg, #007BFF, #0056b3); + color: white; + border: none; + border-top-right-radius: 25px; + border-bottom-right-radius: 25px; + margin-bottom: 25px; + cursor: pointer; + font-size: 16px; + font-weight: bold; + transition: all 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + } + + .btn:hover { + background: linear-gradient(135deg, #0056b3, #004080); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); + transform: scale(1.05); + } + + .btn:active { + background: linear-gradient(135deg, #004080, #003366); + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2); + transform: scale(0.98); + } + + .footer-column h2{ + margin-bottom: 20px; + } + + .footer-column .social-icons a{ + border-radius: 50%; + } + + .use{ + text-align: center; + } + + .l3{ + margin-right: 50px; + } + + @@ -472,6 +660,10 @@ Nearby +
  • + + Signup/Register +
  • @@ -519,7 +711,7 @@

    Start Saving lives with

    -

    एमबुफलो...

    +

    AmbuFlow...

    AmbuFlow is ambulance tracking site which helps you to find the nearest hospitals and get access to nearest ambulances and save lives

    @@ -575,6 +767,15 @@

    Resource Management

    critical information and analytics.

    +
    + Driver Performance Monitoring +

    Driver Performance Management

    +

    + Looks after the behaviour of driver and performance + on the road, live tracking is done to avoid any kind of traffic problems +

    +
    +
    @@ -703,9 +904,53 @@

    Contact Us

    -