{"id":49566126,"url":"https://github.com/ujas-dev/ujas-dev.github.io","last_synced_at":"2026-05-03T11:47:26.230Z","repository":{"id":204294552,"uuid":"266330097","full_name":"ujas-dev/ujas-dev.github.io","owner":"ujas-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-20T21:34:14.000Z","size":611,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-03T11:47:14.672Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ujas-dev.github.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ujas-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-23T12:16:59.000Z","updated_at":"2026-03-20T21:34:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba7e90d8-90b9-4167-8538-1bbcb1321e0a","html_url":"https://github.com/ujas-dev/ujas-dev.github.io","commit_stats":null,"previous_names":["ujas-dev/ujas-dev.github.io"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ujas-dev/ujas-dev.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fujas-dev.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fujas-dev.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fujas-dev.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fujas-dev.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ujas-dev","download_url":"https://codeload.github.com/ujas-dev/ujas-dev.github.io/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fujas-dev.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32568036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-03T11:47:25.413Z","updated_at":"2026-05-03T11:47:26.225Z","avatar_url":"https://github.com/ujas-dev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ujas Dubal — AWS Data Engineer Portfolio\n\nLive Site: https://ujas-dev.github.io/\n\nPersonal portfolio of Ujas Jayeshkumar Dubal — AWS Data Engineer and Technical Lead\nwith 8.5+ years of experience building cloud-native data pipelines using Python, PySpark,\nRedshift, Glue, Airflow and Databricks.\n\n## FEATURES\n\n- Zero dependencies — pure HTML, CSS and vanilla JS. No npm, no build step, no framework\n- GitHub Pages ready — drop index.html in root and it works instantly\n- Live Tech News Feed — slide-out drawer fetching real RSS via 3-proxy strategy\n  (rss2json -\u003e allorigins -\u003e corsproxy.io) with graceful static fallback\n- Contact Form — powered by Formspree (free tier, zero backend, real email delivery)\n- Email tracking — submissions route to ujasdubal+portfolio@gmail.com\n  so you instantly know traffic source via the +portfolio suffix\n- Dynamic favicon — UD initials on gradient, generated via canvas at runtime\n- Avatar support — place assets/avatar.jpg for photo; auto-fallback to UD initials\n- Full SEO — JSON-LD Person + WebSite schema, Open Graph, Twitter Card, canonical URL\n- Animated hero stats — counters animate on scroll into view\n- Skill bars — grouped by category, animate on scroll reveal\n- Scroll reveal — sections fade-in as user scrolls\n- Responsive — mobile-first, works on all screen sizes\n- Accessible — semantic HTML, ARIA labels, keyboard navigation, aria-live news feed\n- Particle background — lightweight canvas animation, no Three.js\n\n## REPOSITORY STRUCTURE\n\n/\n├── index.html                                   Main single-file portfolio\n├── assets/\n│   └── avatar.jpg                               Your photo (add this manually)\n├── Ujas_Dubal_DataEngineer_8_5_Years_Exp.pdf    CV (linked in Download CV button)\n├── .github/\n│   └── workflows/\n│       └── deploy.yml                           GitHub Actions auto-deploy\n├── _config.yml                                  Jekyll / GitHub Pages config\n└── README.md                                    This file\n\n## SETUP IN 5 MINUTES\n\n### STEP 1 — Fork or clone this repo\n\n  git clone https://github.com/ujas-dev/ujas-dev.github.io.git\n  cd ujas-dev.github.io\n\n### STEP 2 — Add your photo\n\n  Place your photo at:  assets/avatar.jpg\n  Recommended: square, minimum 400x400px, JPEG or WebP\n  If missing, the site shows UD initials gracefully — nothing breaks.\n\n### STEP 3 — Set up Formspree (contact form)\n\n  1. Go to https://formspree.io/new  (free account, no credit card)\n  2. Create a new form — copy your Form ID  e.g.  xpwzabcd\n  3. In index.html find this line:\n       \u003cform id=\"contact-form\" action=\"https://formspree.io/f/YOUR_FORMSPREE_ID\"\n  4. Replace YOUR_FORMSPREE_ID with your actual ID\n  5. Every submission is delivered to ujasdubal+portfolio@gmail.com\n\n  EMAIL TRACKING NOTE:\n  The +portfolio suffix means every contact from this page is tagged.\n  In Gmail, filter by:  to:ujasdubal+portfolio@gmail.com\n  to see all portfolio enquiries in one place.\n\n### STEP 4 — Update canonical URL\n\n  In index.html \u003chead\u003e, update these 3 lines with your real GitHub Pages URL:\n\n    \u003clink rel=\"canonical\" href=\"https://YOUR-USERNAME.github.io/\"/\u003e\n    \u003cmeta property=\"og:url\" content=\"https://YOUR-USERNAME.github.io/\"/\u003e\n    \u003cmeta property=\"og:image\" content=\"https://YOUR-USERNAME.github.io/assets/avatar.jpg\"/\u003e\n\n  Also update the JSON-LD block:\n    \"url\": \"https://YOUR-USERNAME.github.io/\",\n    \"@id\": \"https://YOUR-USERNAME.github.io/#person\"\n\n### STEP 5 — Enable GitHub Pages\n\n  Option A (recommended — uses deploy.yml workflow):\n    Go to Settings -\u003e Pages -\u003e Source -\u003e GitHub Actions -\u003e Save\n    Then push to main — the workflow deploys automatically.\n\n  Option B (legacy branch deploy):\n    Go to Settings -\u003e Pages -\u003e Source -\u003e Deploy from a branch\n    Branch: main / master -\u003e / (root) -\u003e Save\n\n## SEO STRATEGY\n\nThis portfolio is built to rank on the first page for your name and related keywords.\n\n  SIGNAL                  IMPLEMENTATION\n  ----------------------  --------------------------------------------------------\n  JSON-LD Person schema   Full structured data: name, jobTitle, skills, employer,\n                          education, awards, sameAs LinkedIn + GitHub\n  JSON-LD WebSite schema  Site name, description, author linkage\n  Open Graph tags         Rich previews on LinkedIn, WhatsApp, Facebook\n  Twitter Card            summary_large_image for X/Twitter shares\n  Canonical URL           Prevents duplicate content penalty\n  Geo meta tags           geo.region, geo.placename, ICBM for local search\n  Semantic HTML           article, section, aria-label, itemprop attributes\n  Page title              UJD | Ujas Jayeshkumar Dubal — AWS Data Engineer\n  Meta description        160-char optimised with primary keywords\n  Meta keywords           14 targeted keyword phrases including name variations\n  Performance             Zero JS frameworks — sub-1s load on GitHub Pages CDN\n\n  TARGET KEYWORDS:\n    - Ujas Dubal\n    - Ujas Jayeshkumar Dubal\n    - AWS Data Engineer Ahmedabad\n    - PySpark Engineer India\n    - TCS Data Engineer\n    - Python Data Engineer India\n    - Cloud Data Engineer Gujarat\n    - Technical Lead Data Engineering India\n\n## LIVE NEWS FEED — 3-PROXY WATERFALL\n\n  1. rss2json.com API    -\u003e clean JSON, best quality\n         | fails?\n  2. allorigins.win      -\u003e raw XML, parsed client-side\n         | fails?\n  3. corsproxy.io        -\u003e raw XML, parsed client-side\n         | fails?\n  4. Static fallback     -\u003e curated articles, always works\n\n  Categories: AI / LLMs  |  Data Engineering  |  Technology  |  World News\n\n  Results are deduplicated by title, sorted by date descending,\n  and cached per browser session. Hit the refresh button to force reload.\n\n## CONTACT FORM FLOW\n\n  User fills form\n       |\n  Formspree API (POST)\n       |\n  Email delivered to:  ujasdubal+portfolio@gmail.com\n       |\n  Subject line:  \"Portfolio Contact (GitHub)\"\n       |\n  +portfolio tag confirms it came from GitHub Pages\n\n  FALLBACK:\n  If YOUR_FORMSPREE_ID is not yet replaced, the form opens a\n  pre-filled mailto: link — nothing ever breaks silently.\n\n## CUSTOMISATION — JS DATA ARRAYS\n\nAll content lives in JS arrays inside the \u003cscript\u003e block in index.html.\nNo external JSON files, no API calls, no build step needed.\n\n  ARRAY             WHAT IT CONTROLS\n  ----------------  --------------------------------------------------\n  SKILLS_DATA       Skill rows, categories, percentages, years of exp\n  EXP_DATA          Timeline cards: company, role, period, bullets, tags\n  PROJECTS_DATA     Project cards: title, client, description, impact\n  CERTS_DATA        Certification cards\n  LEARNING_DATA     In-progress courses / continuous learning\n  MISC_DATA         Hackathons and side projects\n  RSS_FEEDS         RSS URLs per category for the news drawer\n  FALLBACK_NEWS     Static articles shown if all live feeds fail\n\n## SECTIONS\n\n  #hero            Name, role, stats, CTA buttons, avatar\n  #about           Profile, education, awards, core expertise\n  #skills          Skill bars grouped by category with years\n  #experience      Career timeline: TCS, Mind Inventory, Tiny ERP, iSquare\n  #projects        4 key project cards with impact metrics\n  #certifications  AWS cert + Coursera certs + in-progress learning\n  #misc            National hackathon + GLS University web project\n  #contact         Links + Formspree contact form\n\n## BROWSER SUPPORT\n\n  Chrome 90+    Full support\n  Firefox 90+   Full support\n  Safari 15+    Full support\n  Edge 90+      Full support\n  Mobile        Fully responsive, tested on iOS Safari and Chrome Android\n\n## LICENSE\n\nMIT — free to use, fork, and adapt for your own portfolio.\n\n---\n\nBuilt by Ujas Jayeshkumar Dubal\nAWS Data Engineer and Technical Lead\nAhmedabad, Gujarat, India\nujasdubal+portfolio@gmail.com\nhttps://www.linkedin.com/in/ujasdubal\nhttps://github.com/ujas-dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fujas-dev%2Fujas-dev.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fujas-dev%2Fujas-dev.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fujas-dev%2Fujas-dev.github.io/lists"}