PageSourceSearch

https://ankit-roy.netlify.app/_next/static/chunks/app/projects/page-ee81ea419c8c2b20.js

js ankit-roy.netlify.app collected 2026-10-03 10:27:17 UTC 12,796 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[895],{8343:function(e,t,a){Promise.resolve().then(a.bind(a,2688))},2688:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return f}});var s=a(7437),i=a(2265),r=a(6247),l=a(7586),o=a(2277),n=a(8940),d=a(1994),c=a(2299),p=a(2231);let x=r.E.div,m=["All","live","wip","archived"],u={live:{label:"Live",color:"bg-emerald-500"},wip:{label:"WIP",color:"bg-yellow-500"},archived:{label:"Archived",color:"bg-gray-500"}};function g(e){let{project:t,index:a,mobile:r=!1}=e,[c,m]=(0,i.useState)(!1),[g,h]=(0,i.useState)(!1),f="large"===t.size,b="wide"===t.size,v="medium"===t.size,y=f?"380px":b?"220px":v?"220px":"160px",j=f?"320px":b?"280px":v?"280px":"240px";return(0,s.jsx)(x,{layout:!r,initial:{opacity:0,y:24},animate:{opacity:1,y:0},exit:{opacity:0,scale:.96},transition:{duration:.45,delay:.06*a},onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),onClick:()=>h(e=>!e),className:(0,d.W)("group relative overflow-hidden rounded-2xl border border-dark-300 bg-dark-100 cursor-pointer transition-colors duration-300",c&&"border-gold/40"),style:{minHeight:r?j:y,gridColumn:!r&&(f||b)?"span 2":"span 1",gridRow:!r&&f?"span 2":"span 1",perspective:"1200px"},children:(0,s.jsxs)(x,{animate:{rotateY:g?180:0},transition:{duration:.7,ease:[.22,1,.36,1]},style:{transformStyle:"preserve-3d",position:"relative",minHeight:r?j:y},children:[(0,s.jsxs)("div",{style:{backfaceVisibility:"hidden"},className:"absolute inset-0",children:[(0,s.jsxs)("div",{className:"absolute inset-0",children:[t.image?(0,s.jsx)(p.Z,{src:t.image,alt:t.title,className:"h-full w-full object-cover opacity-30 transition-transform duration-700 group-hover:scale-105"}):(0,s.jsx)("div",{className:"h-full w-full opacity-5 transition-opacity duration-500",style:{background:"radial-gradient(circle at 30% 50%, ".concat(t.accentColor||"#f5a623",", transparent 70%)")}}),(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-dark-100 via-dark-100/70 to-transparent"})]}),(0,s.jsx)(x,{animate:{scaleX:c?1:0},initial:{scaleX:0},transition:{duration:.35,ease:[.22,1,.36,1]},className:"absolute left-0 right-0 top-0 h-0.5 origin-left bg-gold"}),(0,s.jsxs)("div",{className:"relative z-10 flex h-full flex-col p-5",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"text-[10px] font-mono text-gray-600",children:t.year}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("div",{className:(0,d.W)("h-1.5 w-1.5 rounded-full",u[t.status].color)}),(0,s.jsx)("span",{className:"text-[10px] text-gray-500",children:u[t.status].label})]})]}),f&&(0,s.jsx)("div",{className:"pointer-events-none absolute right-5 top-8 select-none text-[80px] font-bold leading-none text-white/[0.03]",children:String(t.id).padStart(2,"0")}),(0,s.jsxs)("div",{className:"mt-auto space-y-3",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("h3",{className:(0,d.W)("font-bold text-white leading-tight",f?"text-2xl":v?"text-base":"text-sm"),children:t.title}),f&&(0,s.jsx)("p",{className:(0,d.W)("text-gray-400 leading-relaxed",f?"text-sm max-w-md":"text-xs",!f&&"line-clamp-2"),children:t.description})]}),f&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.tags.slice(0,f?6:3).map(e=>(0,s.jsx)("span",{className:"rounded-full border border-dark-300 bg-dark-300/80 px-2 py-0.5 text-[10px] font-mono text-gold/80",children:e},e))}),(0,s.jsx)("div",{className:"min-h-10",children:(0,s.jsx)(l.M,{initial:!1,mode:"wait",children:(c||r)&&(0,s.jsxs)(x,{initial:{opacity:0,y:r?0:10},animate:{opacity:1,y:0},exit:{opacity:0,y:r?0:10},transition:{duration:r?.12:.25,ease:[.22,1,.36,1]},className:"flex flex-wrap gap-2",children:[t.github&&(0,s.jsxs)("a",{href:t.github,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"flex items-center gap-1.5 rounded-lg border border-dark-300 bg-dark-200/90 px-3 py-1.5 text-xs text-gray-300 transition-colors duration-200 hover:border-gold/50 hover:text-gold",children:[(0,s.jsx)(o.Z,{size:12}),"Code"]}),t.live&&(0,s.jsxs)("a",{href:t.live,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"flex items-center gap-1.5 rounded-lg border border-gold/30 bg-gold/10 px-3 py-1.5 text-xs text-gold transition-colors duration-200 hover:bg-gold/20",children:[(0,s.jsx)(n.Z,{size:12}),"Live"]})]},"actions")})}),(0,s.jsx)("div",{className:"absolute bottom-4 right-5 text-[9px] uppercase tracking-[0.18em] text-gray-500/80",children:"tap to know more"})]})]})]}),(0,s.jsx)("div",{style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)"},className:"absolute inset-0 rounded-2xl border border-gold/30 bg-dark-200 p-5",children:(0,s.jsxs)("div",{className:(0,d.W)("flex h-full flex-col",r?"gap-2.5":"gap-4"),children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"text-[10px] font-mono text-gold uppercase tracking-widest",children:"About"}),(0,s.jsx)("span",{className:"text-[10px] text-gray-500",children:"Tap to flip back"})]}),(0,s.jsxs)("div",{className:r?"space-y-2":"space-y-3",children:[(0,s.jsx)("h3",{className:(0,d.W)("font-semibold text-white",r?"text-sm":"text-lg"),children:t.title}),(0,s.jsx)("p",{className:(0,d.W)("leading-relaxed text-gray-400",r?"text-[11px] line-clamp-4":"text-sm"),children:t.longDescription||t.description})]}),!f&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.tags.map(e=>(0,s.jsx)("span",{className:"rounded-full border border-dark-300 bg-dark-300/80 px-2 py-0.5 text-[10px] font-mono text-gold/80",children:e},e))}),(0,s.jsx)("div",{className:"mt-auto"})]})})]})})}function h(e){let{filtered:t}=e;return(0,s.jsxs)("div",{className:"md:hidden relative pt-4",children:[(0,s.jsx)("div",{className:"absolute left-1/2 top-0 bottom-0 w-px -translate-x-1/2 bg-gradient-to-b from-gold/60 via-gold/25 to-transparent"}),(0,s.jsx)("div",{className:"flex flex-col gap-8",children:t.map((e,a)=>{let i=a%2==0;return(0,s.jsx)("div",{className:"grid grid-cols-[1fr_2rem_1fr] items-start gap-0",children:i?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"relative pr-3",children:(0,s.jsx)(g,{project:e,index:a,mobile:!0})}),(0,s.jsxs)("div",{className:"relative flex justify-center pt-6",children:[(0,s.jsx)("div",{className:"mt-4 h-3 w-3 rounded-full border-2 border-gold bg-dark-200 shadow-[0_0_0_4px_rgba(245,166,35,0.12)]"}),a!==t.length-1&&(0,s.jsx)("div",{className:"absolute left-1/2 top-full h-8 w-px -translate-x-1/2 bg-gold/30"}),(0,s.jsx)("div",{className:"absolute left-full top-1/2 h-px w-3 -translate-y-1/2 bg-gold/25"})]}),(0,s.jsx)("div",{})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{}),(0,s.jsxs)("div",{className:"relative flex justify-center pt-6",children:[(0,s.jsx)("div",{className:"mt-4 h-3 w-3 rounded-full border-2 border-gold bg-dark-200 shadow-[0_0_0_4px_rgba(245,166,35,0.12)]"}),a!==t.length-1&&(0,s.jsx)("div",{className:"absolute left-1/2 top-full h-8 w-px -translate-x-1/2 bg-gold/30"}),(0,s.jsx)("div",{className:"absolute right-full top-1/2 h-px w-3 -translate-y-1/2 bg-gold/25"})]}),(0,s.jsx)("div",{className:"relative pl-3",children:(0,s.jsx)(g,{project:e,index:a,mobile:!0})})]})},e.id)})})]})}function f(){let[e,t]=(0,i.useState)("All"),a="All"===e?c.q:c.q.filter(t=>t.status===e);return(0,s.jsxs)(x,{initial:{opacity:0}
1,animate:{opacity:1},className:"mx-auto flex max-w-4xl flex-col gap-10 pt-4",children:[(0,s.jsxs)(x,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},children:[(0,s.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-[0.2em] text-gold",children:"Portfolio"}),(0,s.jsx)("h1",{className:"gold-underline pb-2 text-4xl font-bold text-white",children:"Selected Works"}),(0,s.jsxs)("p",{className:"mt-4 text-sm text-gray-500",children:[c.q.length," projects \xb7 Tap to explore"]})]}),(0,s.jsx)(x,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},className:"flex flex-wrap gap-2",children:m.map(a=>{var i,r;return(0,s.jsx)("button",{onClick:()=>t(a),className:(0,d.W)("rounded-xl border px-4 py-1.5 text-xs font-medium capitalize transition-all duration-200",e===a?"border-gold bg-gold font-semibold text-dark":"border-dark-300 bg-dark-100 text-gray-400 hover:border-gold/50 hover:text-white"),children:"All"===a?"All (".concat(c.q.length,")"):(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:(0,d.W)("h-1.5 w-1.5 rounded-full",null===(i=u[a])||void 0===i?void 0:i.color)}),null===(r=u[a])||void 0===r?void 0:r.label]})},a)})}),(0,s.jsx)("div",{className:"hidden md:block",children:(0,s.jsx)(x,{layout:!0,style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(0, 1fr))",gap:"16px",gridAutoFlow:"dense"},children:(0,s.jsx)(l.M,{mode:"popLayout",children:a.map((e,t)=>(0,s.jsx)(g,{project:e,index:t},e.id))})})}),(0,s.jsx)(h,{filtered:a})]})}},2231:function(e,t,a){"use strict";a.d(t,{Z:function(){return r}});var s=a(7437),i=a(2265);function r(e){let{src:t,alt:a,className:r="",wrapperClassName:l="",skeletonClassName:o="",fill:n=!0,onLoad:d,onError:c,...p}=e,x=(0,i.useRef)(null),[m,u]=(0,i.useState)(!1),[g,h]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{u(!1),h(!1)},[t]),(0,i.useEffect)(()=>{let e=x.current;(null==e?void 0:e.complete)&&e.naturalWidth>0&&u(!0)},[t]),(0,s.jsxs)("div",{className:"relative block overflow-hidden "+(n?"h-full w-full":"")+" "+l,children:[!m&&(0,s.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-dark-200 "+o,children:(0,s.jsx)("div",{className:"w-10 h-10 rounded-md bg-gradient-to-r from-gold/30 to-gold/10 animate-pulse"})}),g?(0,s.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-dark-200 "+r,children:(0,s.jsx)("span",{className:"text-gold font-bold",children:"—"})}):(0,s.jsx)("img",{ref:x,src:t,alt:a,onLoad:e=>{u(!0),d&&d(e)},onError:e=>{h(!0),u(!0),c&&c(e)},className:"".concat(n?"absolute inset-0 h-full w-full":"block h-full w-full"," transition-opacity duration-500 ").concat(m?"opacity-100":"opacity-0"," ").concat(r),...p})]})}},2299:function(e,t,a){"use strict";a.d(t,{q:function(){return s}});let s=[{id:1,title:"Vaani",description:"A Voice based Assistant for Illiterate users.",longDescription:"Literacy remains a significant barrier to digital access for over 300 million Indians. This project presents VAANI, an innovative voice-first digital assistant designed to democratize access to digital services regardless of literacy level. The platform enables users to interact entirely through spoken Hindi and Indian languages, eliminating the literacy barrier that prevents access to government schemes, agricultural information, healthcare, financial services, and emergency assistance.",tags:["Python","Flask","Sentence Transformers"],github:"https://github.com/ankittroy-21/vaani",live:"",image:"/assets/project-1.png",featured:!0,size:"large",accentColor:"#f5a623",year:"2025",status:"wip"},{id:2,title:"Spotigram",description:"A high-speed, asynchronous Telegram bot that acts as a direct bridge between Spotify and Telegram. Features a custom concurrent web scraper, MongoDB rate limiting, and a sleek terminal-style UI.",tags:["Python","Pyrogram","MongoDB","BeautifulSoup"],github:"https://github.com/ankittroy-21/Spotigram",live:"",image:"/assets/project-2.png",featured:!0,size:"medium",accentColor:"#f5a623",year:"2026",status:"live"},{id:3,title:"BBD Papers",description:"A full-stack educational platform providing BBD University students with easy access to previous year question papers (PYQs) and study notes.",tags:["Next.js","TypeScript","Tailwind CSS","Supabase"],github:"",live:"https://bbdpapers.me",image:"/assets/project-3.png",featured:!0,size:"medium",accentColor:"#3b82f6",year:"2025",status:"live"},{id:4,title:"Support Triage Agent",description:"RAG-powered CLI agent that triages support tickets across HackerRank, Claude, and Visa using ChromaDB retrieval and Groq LLM.",tags:["Python","RAG","ChromaDB"],github:"https://github.com/ankittroy-21/hackerrank-orchestrate-may26",live:"",image:"/assets/project-4.png",featured:!1,size:"wide",accentColor:"#f5a623",year:"2025",status:"wip"},{id:5,title:"Gitphone",description:"The Developer's Remote Control for GitHub. Stage code in VS Code, commit from Telegram. Maintain your streak, even when you're away from your desk",tags:["Python","Supabase","VS Code API","FastAPI"],github:"https://github.com/ankittroy-21/Gitphone",live:"https://marketplace.visualstudio.com/items?itemName=ankittroy-21.gitphone",image:"/assets/project-5.png",featured:!0,size:"medium",accentColor:"#10b981",year:"2026",status:"wip"}]}},function(e){e.O(0,[247,489,971,117,744],function(){return e(e.s=8343)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.