1"use strict";(self.webpackChunkportsofzeki=self.webpackChunkportsofzeki||[]).push([[822],{2822:(e,t,r)=>{r.r(t),r.d(t,{default:()=>S});var i=r(5464),o=r(3968),n=r(3546),s=r(5043),a=r(579);const l=[{id:1,period:"2021 - Present",title:"Computer Science",institution:"Samara University",description:"Currently pursuing a Bachelor's degree in Computer Science with a focus on software development and system design.",skills:["Java","Python","Algorithms","Data Structures"],gpa:3.5},{id:2,period:"2018 - 2021",title:"High School Diploma",institution:"Sher Ethiopia Secondary School",description:"Completed secondary education with honors, focusing on science and mathematics."},{id:3,period:"January 2024 - may 202",title:"Fullstack Development BootCamp",institution:"Udemy",description:"Completed secondary education with honors, focusing on science and mathematics.",skills:["React","Nodejs","MoongoDb","Data Structures","Expressjs"]}],d=[{id:1,period:"2024 - Present",title:"Fullstack Developer",company:"Asligroup",type:"Internship",description:"Contributing to scalable web applications development using modern technologies.",skills:["React","Node.js","MongoDB","AWS"],projects:["E-commerce Platform","Admin Dashboard"],impact:["Improved site performance by 40%","Implemented new features"]},{id:2,period:"2023 - Present",title:"Freelance Developer",company:"Self-Employed",type:"Contract",description:"Managing client projects and delivering custom web solutions.",skills:["Vue.js","Firebase","REST APIs","UI/UX"],projects:["Portfolio Sites","Booking System"],impact:["Completed 5+ projects","5-star client ratings"]},{id:3,period:"2024 - Present",title:"Fullstack Developer",company:"Self-Employed",type:"Contract",description:"Contributing to scalable web applications development using modern technologies.",skills:["React","Node.js","MongoDB","AWS","expressjs"],projects:["E-commerce Platform","Admin Dashboard","Tourism Website"],impact:["Improved site performance by 40%","Implemented new features"]}],c=i.Ay.section` 2 min-height: 100vh; 3 padding: 6rem 2rem; 4 background: ${e=>{let{theme:t}=e;return t.background}}; 5 position: relative; 6 overflow: hidden; 7 8 &::before { 9 content: ''; 10 position: absolute; 11 top: 0; 12 left: 0; 13 width: 45%; 14 height: 100%; 15 background: ${e=>{let{theme:t}=e;return t.gradient}}; 16 opacity: 0.05; 17 clip-path: polygon(0 0%, 100% 0%, 70% 100%, 0% 100%); 18 } 19`,h=i.Ay.div` 20 max-width: 1200px; 21 margin: 0 auto; 22 display: grid; 23 grid-template-columns: repeat(2, 1fr); 24 gap: 4rem; 25 26 @media (max-width: 768px) { 27 grid-template-columns: 1fr; 28 gap: 2rem; 29 } 30`,p=i.Ay.div` 31 position: relative; 32`,m=(0,i.Ay)(o.P.h2)` 33 ${e=>{let{theme:t}=e;return t.mixins.headingStyles}}; 34 font-size: ${e=>{let{theme:t}=e;return t.sizes["3xl"]}}; 35 color: ${e=>{let{theme:t}=e;return t.text}}; 36 margin-bottom: 2rem; 37 display: flex; 38 align-items: center; 39 gap: 1rem; 40 41 &::after { 42 content: ''; 43 height: 4px; 44 flex: 1; 45 background: ${e=>{let{theme:t}=e;return t.primary}}30; 46 border-radius: 2px; 47 } 48`,u=(0,i.Ay)(o.P.div)` 49 position: relative; 50 padding: 2rem; 51 background: ${e=>{let{theme:t}=e;return t.card}}; 52 border-radius: 16px; 53 margin-bottom: 2rem; 54 box-shadow: ${e=>{let{theme:t}=e;return t.shadowMd}}; 55 border: 1px solid ${e=>{let{theme:t}=e;return t.border}}; 56 transition: transform 0.3s ease, box-shadow 0.3s ease; 57 58 &:hover { 59 transform: translateY(-5px); 60 box-shadow: ${e=>{let{theme:t}=e;return t.shadowLg}}; 61 } 62 63 &::before { 64 content: ''; 65 position: absolute; 66 left: -12px; 67 top: 24px; 68 width: 24px; 69 height: 24px; 70 background: ${e=>{let{theme:t}=e;return t.primary}}; 71 border-radius: 50%; 72 box-shadow: 0 0 0 6px ${e=>{let{theme:t}=e;return t.background}}; 73 } 74`,x=i.Ay.h3` 75 ${e=>{let{theme:t}=e;return t.mixins.headingStyles}}; 76 font-size: ${e=>{let{theme:t}=e;return t.sizes.xl}}; 77 color: ${e=>{let{theme:t}=e;return t.primary}}; 78 margin-bottom: 0.5rem; 79`,g=i.Ay.h4` 80 ${e=>{let{theme:t}=e;return t.mixins.bodyStyles}}; 81 font-size: ${e=>{let{theme:t}=e;return t.sizes.base}}; 82 color: ${e=>{let{theme:t}=e;return t.textLight}}; 83 margin-bottom: 1rem; 84`,y=i.Ay.p` 85 ${e=>{let{theme:t}=e;return t.mixins.bodyStyles}}; 86 font-size: ${e=>{let{theme:t}=e;return t.sizes.base}}; 87 color: ${e=>{let{theme:t}=e;return t.textMuted}}; 88 line-height: ${e=>{let{theme:t}=e;return t.lineHeights.relaxed}}; 89`,b=i.Ay.span` 90 display: inline-block; 91 padding: 0.25rem 1rem; 92 background: ${e=>{let{theme:t}=e;return t.primary}}15; 93 color: ${e=>{let{theme:t}=e;return t.primary}}; 94 border-radius: 20px; 95 font-size: ${e=>{let{theme:t}=e;return t.sizes.sm}}
95; 96 margin-bottom: 1rem; 97`,w=(0,i.Ay)(o.P.div)` 98 position: absolute; 99 left: -2px; 100 top: 0; 101 width: 4px; 102 height: 100%; 103 background: ${e=>{let{theme:t}=e;return t.primary}}30; 104 z-index: 0; 105`,f=(0,i.Ay)(o.P.div)` 106 position: absolute; 107 left: -2px; 108 top: 0; 109 width: 4px; 110 background: ${e=>{let{theme:t}=e;return t.primary}}; 111 z-index: 1; 112`,j=(0,i.Ay)(o.P.span)` 113 display: inline-block; 114 padding: 0.25rem 0.75rem; 115 margin: 0.25rem; 116 background: ${e=>{let{theme:t}=e;return t.primary}}15; 117 color: ${e=>{let{theme:t}=e;return t.primary}}; 118 border-radius: 15px; 119 font-size: ${e=>{let{theme:t}=e;return t.sizes.sm}}; 120 cursor: pointer; 121 122 &:hover { 123 background: ${e=>{let{theme:t}=e;return t.primary}}30; 124 } 125`,v=i.Ay.input` 126 width: 100%; 127 padding: 0.75rem 1rem; 128 margin-bottom: 2rem; 129 border: 1px solid ${e=>{let{theme:t}=e;return t.border}}; 130 border-radius: 8px; 131 background: ${e=>{let{theme:t}=e;return t.card}}; 132 color: ${e=>{let{theme:t}=e;return t.text}}; 133 134 &:focus { 135 outline: none; 136 border-color: ${e=>{let{theme:t}=e;return t.primary}}; 137 } 138`,$=(0,i.Ay)(o.P.button)` 139 border: none; 140 background: none; 141 color: ${e=>{let{theme:t}=e;return t.primary}}; 142 cursor: pointer; 143 font-size: ${e=>{let{theme:t}=e;return t.sizes.sm}}; 144 margin-top: 1rem; 145 146 &:hover { 147 text-decoration: underline; 148 } 149`,k=(0,i.Ay)(o.P.div)` 150 margin-top: 1rem; 151 padding-top: 1rem; 152 border-top: 1px solid ${e=>{let{theme:t}=e;return t.border}}; 153`,S=()=>{const[e,t]=(0,s.useState)(""),[r,i]=(0,s.useState)(new Set),[S,A]=(0,s.useState)(0),C=(0,s.useRef)(null),P=l.filter((t=>t.title.toLowerCase().includes(e.toLowerCase())||t.institution.toLowerCase().includes(e.toLowerCase()))),z=d.filter((t=>t.title.toLowerCase().includes(e.toLowerCase())||t.company.toLowerCase().includes(e.toLowerCase()))),L=e=>{i((t=>{const r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}))};return(0,s.useEffect)((()=>{const e=()=>{if(C.current){const e=C.current,t=window.pageYOffset+window.innerHeight,r=e.offsetTop,i=r+e.offsetHeight,o=Math.min(Math.max((t-r)/(i-r)*100,0),100);A(o)}};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]),(0,a.jsxs)(c,{id:"resume",ref:C,children:[(0,a.jsx)(v,{placeholder:"Search education or experience...",value:e,onChange:e=>t(e.target.value)}),(0,a.jsxs)(h,{as:o.P.div,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[(0,a.jsxs)(p,{children:[(0,a.jsx)(m,{children:"Education \ud83c\udf93"}),(0,a.jsx)(w,{}),(0,a.jsx)(f,{initial:{height:"0%"},style:{height:`${S}%`}}),(0,a.jsx)(n.N,{children:P.map((e=>{var t;return(0,a.jsxs)(u,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},exit:{x:-50,opacity:0},whileHover:{scale:1.02},children:[(0,a.jsx)(b,{children:e.period}),(0,a.jsx)(x,{children:e.title}),(0,a.jsx)(g,{children:e.institution}),(0,a.jsx)(y,{children:e.description}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:null===(t=e.skills)||void 0===t?void 0:t.map((e=>(0,a.jsx)(j,{whileHover:{scale:1.1},whileTap:{scale:.95},children:e},e)))}),(0,a.jsx)($,{onClick:()=>L(e.id),children:r.has(e.id)?"Show Less":"Show More"}),(0,a.jsx)(n.N,{children:r.has(e.id)&&(0,a.jsxs)(k,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},children:[(0,a.jsx)("h4",{children:"Achievements:"}),(0,a.jsx)("ul",{children:e.achievements.map((e=>(0,a.jsx)("li",{children:e},e)))}),(0,a.jsxs)("p",{children:["GPA: ",e.gpa]})]})})]},e.id)}))})]}),(0,a.jsxs)(p,{children:[(0,a.jsx)(m,{children:"Experience \ud83d\udcbc"}),(0,a.jsx)(w,{}),(0,a.jsx)(f,{initial:{height:"0%"},style:{height:`${S}%`}}),(0,a.jsx)(n.N,{children:z.map((e=>{var t;return(0,a.jsxs)(u,{initial:{x:50,opacity:0},animate:{x:0,opacity:1},exit:{x:50,opacity:0},whileHover:{scale:1.02},children:[(0,a.jsx)(b,{children:e.period}),(0,a.jsx)(x,{children:e.title}),(0,a.jsx)(g,{children:`${e.company} - ${e.type}`}),(0,a.jsx)(y,{children:e.description}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:null===(t=e.skills)||void 0===t?void 0:t.map((e=>(0,a.jsx)(j,{whileHover:{scale:1.1},whileTap:{scale:.95},children:e},e)))}),(0,a.jsx)($,{onClick:()=>L(e.id),children:r.has(e.id)?"Show Less":"Show More"}),(0,a.jsx)(n.N,{children:r.has(e.id)&&(0,a.jsxs)(k,{initial:{height:0,opacity:0}
153,animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},children:[(0,a.jsx)("h4",{children:"Projects:"}),(0,a.jsx)("ul",{children:e.projects.map((e=>(0,a.jsx)("li",{children:e},e)))}),(0,a.jsx)("h4",{children:"Impact:"}),(0,a.jsx)("ul",{children:e.impact.map((e=>(0,a.jsx)("li",{children:e},e)))})]})})]},e.id)}))})]})]})]})}}}]); 154//# sourceMappingURL=822.9869e816.chunk.js.map
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.