{"id":80,"date":"2026-03-30T23:21:31","date_gmt":"2026-03-30T23:21:31","guid":{"rendered":"https:\/\/ramyasree.co.uk\/?page_id=80"},"modified":"2026-03-31T00:26:15","modified_gmt":"2026-03-31T00:26:15","slug":"projects","status":"publish","type":"page","link":"https:\/\/ramyasree.co.uk\/?page_id=80","title":{"rendered":"Projects"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"80\" class=\"elementor elementor-80\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ac8e81 e-flex e-con-boxed e-con e-parent\" data-id=\"2ac8e81\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a6755cc elementor-widget elementor-widget-html\" data-id=\"a6755cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>My GitHub Repositories<\/title>\r\n\r\n<style>\r\nbody {\r\n  font-family: Arial, sans-serif;\r\n  background: #f6f8fa;\r\n  margin: 0;\r\n}\r\n\r\n.repo-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(3, 1fr);\r\n  gap: 20px;\r\n  padding: 20px;\r\n}\r\n\r\n.repo-card {\r\n  border: 1px solid #e1e4e8;\r\n  border-radius: 12px;\r\n  padding: 16px;\r\n  background: #ffffff;\r\n  transition: all 0.25s ease;\r\n}\r\n\r\n.repo-card:hover {\r\n  transform: translateY(-6px);\r\n  box-shadow: 0 6px 18px rgba(0,0,0,0.08);\r\n}\r\n\r\n.repo-header {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 10px;\r\n}\r\n\r\n.repo-header img {\r\n  width: 22px;\r\n}\r\n\r\n.repo-title {\r\n  font-size: 16px;\r\n  font-weight: 600;\r\n  text-decoration: none;\r\n  color: #24292f;\r\n}\r\n\r\n.repo-title:hover {\r\n  color: #0969da;\r\n}\r\n\r\n.repo-desc {\r\n  margin-top: 10px;\r\n  font-size: 14px;\r\n  color: #57606a;\r\n}\r\n\r\n\/* Responsive *\/\r\n@media (max-width: 900px) {\r\n  .repo-grid {\r\n    grid-template-columns: repeat(2, 1fr);\r\n  }\r\n}\r\n\r\n@media (max-width: 500px) {\r\n  .repo-grid {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n<\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n<h2 style=\"text-align:center; padding:20px;\">My GitHub Projects<\/h2>\r\n\r\n<div id=\"repos\" class=\"repo-grid\"><\/div>\r\n\r\n<script>\r\nconst username = \"Ramyasree430\";\r\n\r\n\/\/ \ud83d\udd11 ADD YOUR TOKEN HERE (optional but recommended)\r\nconst token = \"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\";\r\n\r\n\/\/ Owned repos\r\nconst userRepos = fetch(`https:\/\/api.github.com\/users\/${username}\/repos`)\r\n  .then(res => res.json());\r\n\r\n\/\/ Collaborated repos (needs token)\r\nconst collabRepos = fetch(`https:\/\/api.github.com\/user\/repos?affiliation=collaborator`, {\r\n  headers: {\r\n    Authorization: `token ${token}`\r\n  }\r\n})\r\n.then(res => res.json())\r\n.catch(() => []);\r\n\r\nPromise.all([userRepos, collabRepos]).then(([owned, collab]) => {\r\n\r\n  const allRepos = [...owned, ...collab];\r\n\r\n  const uniqueRepos = Array.from(\r\n    new Map(allRepos.map(repo => [repo.id, repo])).values()\r\n  );\r\n\r\n  const container = document.getElementById(\"repos\");\r\n\r\n  uniqueRepos.forEach(repo => {\r\n    const card = document.createElement(\"div\");\r\n    card.className = \"repo-card\";\r\n\r\n    card.innerHTML = `\r\n      <div class=\"repo-header\">\r\n        <img decoding=\"async\" src=\"https:\/\/github.githubassets.com\/images\/modules\/logos_page\/GitHub-Mark.png\">\r\n        <a href=\"${repo.html_url}\" target=\"_blank\" class=\"repo-title\">\r\n          ${repo.name}\r\n        <\/a>\r\n      <\/div>\r\n      <div class=\"repo-desc\">\r\n        ${repo.description || \"No description available\"}\r\n      <\/div>\r\n    `;\r\n\r\n    container.appendChild(card);\r\n  });\r\n\r\n}).catch(err => console.error(err));\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>My GitHub Repositories My GitHub Projects<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-page-full-width.php","meta":{"footnotes":""},"class_list":["post-80","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=80"}],"version-history":[{"count":16,"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/80\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/80\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/ramyasree.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}