diff --git a/contributors/contributor.css b/contributors/contributor.css new file mode 100644 index 0000000..617f5e2 --- /dev/null +++ b/contributors/contributor.css @@ -0,0 +1,171 @@ +body { + margin: 0; + padding: 0; + font-family: 'Poppins', sans-serif; + color: #fff; + background: #edeef1; + overflow-x: hidden; + } + + /* Navbar */ + + + h1 { + text-align: center; + + justify-content: center; + font-size: 3rem; + color: #fff; + margin-bottom: 40px; + font-weight: bold; + letter-spacing: 2px; + } + + + h2{ + + text-align: center; + justify-content: center; + font-size: 3rem; + color: #fff; + margin: 40px; + font-weight: bold; + letter-spacing: 2px; + + } + + /* Contributor Card Grid */ + .contributors-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: calc(10px + 1vw); + justify-items: center; + align-items: center; + width: 100%; + } + + /* Contributor Card Styling */ + .contributor-card { + border:red 8px double; + background: #f8e6e6; + color: #333; + border-radius: 15px; + padding: 20px; + width: 250px; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); + text-align: center; + transition: transform 0.3s ease, box-shadow 0.3s ease; + position: relative; + margin: 30px; + } + + .contributor-card:hover { + + transform: translateY(-10px); + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2); + + } + + .contributor-card img { + width: 100px; + height: 100px; + border-radius: 50%; + border: 3px solid #121115; + margin-bottom: 15px; + } + + .contributor-card h3 { + font-size: 1.4rem; + font-weight: bold; + margin: 10px 0; + } + + + .container { + margin-top: 100px; + padding: 20px; + } + .contributor-card a { + display: inline-block; + margin: 5px 0; + color: #d82de7; + font-weight: bold; + text-decoration: none; + transition: color 0.3s ease; + border-radius: 10px; + border: #f5cbcb 2px solid; + padding: 4px; + } + + .contributor-card a:hover { + color: #004e64; + text-decoration: none; + } + + /* Animated Button */ + .button { + background: #004e64; + color: #fff; + padding: 12px 24px; + font-size: 1rem; + border: none; + border-radius: 30px; + cursor: pointer; + margin-top: 30px; + transition: transform 0.2s ease, background 0.3s ease; + text-transform: uppercase; + } + + .button:hover { + transform: scale(1.05); + background: #004e64; + } + + .button:focus { + outline: none; + } + + /* Hamburger Menu */ + .hamburger { + display: none; + flex-direction: column; + cursor: pointer; + gap: 5px; + } + + .hamburger span { + display: block; + width: 25px; + height: 3px; + background-color: #fff; + border-radius: 5px; + } + + /* Responsive Design for Mobile */ + @media (max-width: 768px) { + + + .container { + padding: 20px; + } + + h1 { + font-size: 2rem; + margin-bottom: 20px; + } + + /* Adjust the grid gap for mobile */ + .contributors-grid { + gap: calc(10px + 2vw); + } + } + + /* Responsive Design for Tablet/Desktop */ + @media (min-width: 768px) { + .contributors-grid { + gap: calc(10px + 1.5vw); + } + } + + + diff --git a/contributors/contributor.html b/contributors/contributor.html new file mode 100644 index 0000000..f514ac4 --- /dev/null +++ b/contributors/contributor.html @@ -0,0 +1,162 @@ + + + + + + + Contributors Page + + + + + + + + + + + + +
+ + +
+ +
+

Meet Our Contributors

+

Admin/Mentor


+
+

Top 3 Contributors


+
+

remaining-contributors


+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/contributors/contributor.js b/contributors/contributor.js new file mode 100644 index 0000000..4c5bda2 --- /dev/null +++ b/contributors/contributor.js @@ -0,0 +1,95 @@ +const REPO_OWNER = "Anjaliavv51"; +const REPO_NAME = "Matrubodhah"; +const GITHUB_TOKEN = ""; // Optional: Add your GitHub personal access token to avoid rate limits + +// Replace with actual GitHub usernames for Admin and Mentor +const ADMIN_USERNAME = REPO_OWNER; +const MENTOR_USERNAME = "mentor_username"; + +async function fetchContributors() { + const adminMentorContainer = document.getElementById("admin-mentor"); + const topContributorsContainer = document.getElementById("top-contributors"); + const remainingContributorsContainer = document.getElementById("remaining-contributors"); + + try { + // Fetch contributors from the GitHub API + const response = await fetch( + `https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contributors`, + { + headers: GITHUB_TOKEN ? { Authorization: `token ${GITHUB_TOKEN}` } : {}, + } + ); + + if (!response.ok) throw new Error("Failed to fetch contributors"); + + const contributors = await response.json(); + + contributors.forEach((contributor, index) => { + // Create a card for each contributor + const card = document.createElement("div"); + card.className = "contributor-card"; + + // Profile image + const img = document.createElement("img"); + img.src = contributor.avatar_url; + img.alt = contributor.login; + + // GitHub username + const name = document.createElement("h3"); + name.textContent = contributor.login; + + // GitHub profile link + const githubLink = document.createElement("a"); + githubLink.href = contributor.html_url; + githubLink.target = "_blank"; + githubLink.textContent = "GitHub Profile"; + + // Append elements to card + card.appendChild(img); + card.appendChild(name); + card.appendChild(githubLink); + + // Admin/Mentor Section + if (contributor.login === ADMIN_USERNAME || contributor.login === MENTOR_USERNAME) { + if (adminMentorContainer.children.length === -1) { + + adminMentorContainer.appendChild(adminMentorHeader); + } + adminMentorContainer.appendChild(card); + } + // Top 3 Contributors + else if (index <= 3) { + if (topContributorsContainer.children.length === -1) { + + + topContributorsContainer.appendChild(topContributorsHeader); + } + topContributorsContainer.appendChild(card); + } + // Remaining Contributors + else { + if (remainingContributorsContainer.children.length === -1) { + + remainingContributorsContainer.appendChild(remainingContributorsHeader); + } + remainingContributorsContainer.appendChild(card); + } + }); + } catch (error) { + console.error("Error fetching contributors:", error); + + // Show error message on the page + const errorMessage = document.createElement("p"); + errorMessage.textContent = "Failed to load contributors. Please try again."; + adminMentorContainer.appendChild(errorMessage); + } +} + +// Fetch and render contributors on page load +fetchContributors(); + +// Hamburger menu toggle +document.querySelector('.hamburger').addEventListener('click', () => { + const navLinks = document.querySelector('.navbar-links'); + navLinks.classList.toggle('show'); +}); \ No newline at end of file diff --git a/counting.html b/counting.html index 01916e1..eaec92e 100644 --- a/counting.html +++ b/counting.html @@ -20,6 +20,7 @@