diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/Card.astro | 43 | ||||
| -rw-r--r-- | src/components/DiscordActivity.astro | 87 | ||||
| -rw-r--r-- | src/components/DiscordStatus.astro | 12 | ||||
| -rw-r--r-- | src/components/MiniCard.astro | 62 | ||||
| -rw-r--r-- | src/components/RSSFeed.astro | 73 | ||||
| -rw-r--r-- | src/pages/about.astro | 131 | ||||
| -rw-r--r-- | src/pages/contributions.astro | 27 | ||||
| -rw-r--r-- | src/pages/coursework.astro | 14 | ||||
| -rw-r--r-- | src/pages/projects.astro | 73 |
9 files changed, 180 insertions, 342 deletions
diff --git a/src/components/Card.astro b/src/components/Card.astro index 7bad586..a5b3b6d 100644 --- a/src/components/Card.astro +++ b/src/components/Card.astro @@ -3,25 +3,42 @@ interface Props { title: string; body: string; href: string; + year?: string; language: string; languageColor: string; - logoSrc?: string; - logoWidth?: string; contribution?: string; + tags?: string[]; } -const { href, title, body, language, languageColor, logoSrc, logoWidth = '60%', contribution="" } = Astro.props; +const { + href, + title, + body, + language, + languageColor, + contribution = "", + year, + tags, +} = Astro.props; --- <li class="link-card"> <a href={href}> - {logoSrc && <div class="logo-container"><img src={logoSrc} alt="Project Logo" style={{ maxWidth: logoWidth }} /></div>} <div class="content-container"> - <h2>{title}</h2> + <h2>{title} {year ? `(${year})` : ""}</h2> <div class="language-container"> <span class="dot" style={{ backgroundColor: languageColor }}></span> <span class="language">{language}</span> </div> + { + tags && tags.length > 0 && ( + <div class="tags-container"> + {tags.map((tag) => ( + <span class="tag">{tag}</span> + ))} + </div> + ) + } <p>{body}</p> <p>{contribution}</p> </div> @@ -29,6 +46,21 @@ const { href, title, body, language, languageColor, logoSrc, logoWidth = '60%', </li> <style> + .tags-container { + display: flex; + gap: 5px; + } + + .tag { + background-color: #4d4e4e; + color: #ffffff; + padding: 2px 6px; + font-size: 12px; + font-weight: 600; + border-radius: 20px; + display: inline-block; + } + .link-card { list-style: none; display: flex; @@ -69,6 +101,7 @@ const { href, title, body, language, languageColor, logoSrc, logoWidth = '60%', } h2 { margin: 0; + font-weight: bold; font-size: 1.25rem; transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1); } diff --git a/src/components/DiscordActivity.astro b/src/components/DiscordActivity.astro deleted file mode 100644 index a07d660..0000000 --- a/src/components/DiscordActivity.astro +++ /dev/null @@ -1,87 +0,0 @@ -<script> - async function fetchData() { - const API_URL = "https://api.lanyard.rest/v1/users/246787839570739211"; - - try { - const response = await fetch(API_URL); - const data = await response.json(); - - if (data && data.success) { - const activities = data.data.activities; - let activityHTML = ""; - if (activities.length === 0) { - activityHTML = "<p>Not doing anything at the moment :(</p>"; - } else { - for (const activity of activities) { - const imageUrl = - activity.assets && activity.assets.large_image - ? activity.assets.large_image - : ""; - - activityHTML += ` - <div class="activity-card"> - <h3>${activity.name}</h3> - <p>${activity.details ? activity.details : ""}</p> - <p>${activity.state ? activity.state : ""}</p> - </div> - `; - } - } - - document.querySelector("#activities").innerHTML = activityHTML; - } else { - console.error("Failed fetching user data:", data.message); - } - } catch (error) { - console.error("Network error:", error); - } - } - - window.addEventListener("DOMContentLoaded", fetchData); -</script> - -<section> - <div> - <div id="activities"></div> - </div> -</section> -<style> -section { - max-width: 800px; - margin: 40px auto; - padding: 24px; - border-radius: 12px; - background-color: #1a1a1a; - font-family: 'Courier New', Courier, monospace; - color: #c0c0c0; -} - - -.activity-card { - background-color: #1a1a1a; - padding: 20px; - margin-bottom: 16px; - border: 1px solid #c0c0c0; - display: flex; - flex-direction: column; -} - -.activity-card h3 { - margin-top: 0; - margin-bottom: 8px; -} - -.activity-card p { - margin: 0; - font-size: 0.5em; - line-height: 1.5; - padding: 4px 0; -} - -.activity-card p + p { - margin-top: 6px; - border-top: 1px dashed #c0c0c0; - padding-top: 8px; -} - -</style>
\ No newline at end of file diff --git a/src/components/DiscordStatus.astro b/src/components/DiscordStatus.astro index 518909e..46bebf9 100644 --- a/src/components/DiscordStatus.astro +++ b/src/components/DiscordStatus.astro @@ -16,33 +16,31 @@ const statusText = { --- <section id="discord-status"> <img src="https://assets-global.website-files.com/6257adef93867e50d84d30e2/636e0a6ca814282eca7172c6_icon_clyde_white_RGB.svg" alt="Discord Avatar" /> - <h2>Status: <span id="status-text"></span></h2> + <h2><span id="status-text"></span></h2> </section> <style> #discord-status { display: flex; align-items: center; - padding: 20px; + padding: 15px; border-radius: 10px; color: white; transition: background-color 0.3s ease-in-out; } #discord-status img { - width: 60px; - height: 60px; + width: 30px; + height: 30px; border-radius: 50%; margin-right: 20px; } #discord-status h2 { - margin: 0; - font-size: 1.5rem; + font-size: 1.2rem; } #discord-status p { - margin: 0; font-size: 1rem; opacity: 0.8; } diff --git a/src/components/MiniCard.astro b/src/components/MiniCard.astro deleted file mode 100644 index b34bcef..0000000 --- a/src/components/MiniCard.astro +++ /dev/null @@ -1,62 +0,0 @@ ---- -interface Props { - title: string; - body: string; - href: string; - language: string; - languageColor: string; - logoSrc?: string; - logoWidth?: string; - contribution?: string; -} - -const { href, title, body, language, languageColor, logoSrc, logoWidth = '60%', contribution = 'Minor Contributions' } = Astro.props; ---- - -<li class="link-card"> - <a href={href}> - {logoSrc && <img src={logoSrc} alt="Project Logo" style={{ maxWidth: logoWidth }} />} - <h2>{title}</h2> - <div class="language-container"> - <span class="dot" style={{ backgroundColor: languageColor }}></span> - <span class="language">{language}</span> - </div> - <p>{body}</p> - <p>{contribution}</p> - </a> -</li> - -<style> - .link-card { - list-style: none; - padding: 1px; - background-color: #23262d; - border-radius: 6px; - color: white; - } - .link-card > a { - text-decoration: none; - color: inherit; - display: flex; - flex-direction: column; - padding: 2rem; - } - .link-card h2 { - margin: 0; - font-size: 1.25rem; - } - .link-card p { - margin-top: 0.5rem; - margin-bottom: 0; - } - .language-container { - display: flex; - align-items: center; - gap: 5px; - } - .dot { - width: 10px; - height: 10px; - border-radius: 50%; - } -</style>
\ No newline at end of file diff --git a/src/components/RSSFeed.astro b/src/components/RSSFeed.astro deleted file mode 100644 index ca2dddb..0000000 --- a/src/components/RSSFeed.astro +++ /dev/null @@ -1,73 +0,0 @@ ---- -import { JSDOM } from 'jsdom'; - -const fetchContent = async (url) => { - try { - const response = await fetch(url); - if (!response.ok) { - throw new Error(`Failed to fetch RSS feed: ${response.statusText}`); - } - return await response.text(); - } catch (error) { - console.error(error); - return '<rss></rss>'; - } -}; - -const rssData = await fetchContent(Astro.props.url); - -// Parse the RSS data -const dom = new JSDOM(rssData); -const xmlDoc = dom.window.document; -const items = Array.from(xmlDoc.querySelectorAll("item")).slice(0, 7); // Only take the first 5 items - -const title = xmlDoc.querySelector("title").textContent; -const link = xmlDoc.querySelector("link").textContent; -const description = xmlDoc.querySelector("description").textContent; ---- - -<style> - body { - font-family: Arial, sans-serif; - } - header { - padding: 20px; - margin-bottom: 20px; - border-radius: 8px; - } - ul { - list-style-type: none; - padding: 0; - } - li { - border-bottom: 1px solid #444; - padding: 10px 0; - transition: background-color 0.3s; - } - li:hover { - background-color: #3a3a3a; - } - a { - color: #f9a825; - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - time { - color: #888; - font-size: 0.85em; - } -</style> - -<ul> - {items.map(item => { - return ( - <li key={item.querySelector("guid").textContent}> - <a href={item.querySelector("guid").textContent}>{item.querySelector("title").textContent}</a> - <p>{item.querySelector("description").textContent}</p> - <time>{item.querySelector("pubDate").textContent}</time> - </li> - ); - })} -</ul> diff --git a/src/pages/about.astro b/src/pages/about.astro index 2b114f6..2a2b720 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -1,5 +1,6 @@ --- import Layout from "../layouts/Layout.astro"; +import DiscordStatus from "../components/DiscordStatus.astro"; --- <Layout title="About"> @@ -27,11 +28,14 @@ import Layout from "../layouts/Layout.astro"; </div> <div class="flex flex-col gap-2 min-[400px]:flex-row"> <a - class="inline-flex h-12 items-center justify-center rounded-md bg-[#cc6666] px-10 text-lg font-medium text-white shadow transition-colors hover:bg-[#990000] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#ff9999] disabled:pointer-events-none disabled:opacity-50" + class="inline-flex h-18 items-center justify-center rounded-md bg-[#cc6666] px-10 text-lg font-medium text-white shadow transition-colors hover:bg-[#990000] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#ff9999] disabled:pointer-events-none disabled:opacity-50" href="mailto:yukais6@uci.edu" > Contact Me </a> + <a href="https://discord.com/users/246787839570739211"> + <DiscordStatus /> + </a> </div> </div> <img @@ -60,8 +64,8 @@ import Layout from "../layouts/Layout.astro"; class="max-w-[900px] text-gray-400 md:text-2xl/relaxed lg:text-lg/relaxed xl:text-2xl/relaxed" > Although my tech stack is primarily serverless (Python Serverless - Functions, React, and MySQL) . I have experience with a wide - range of technologies and programming languages. + Functions, React, and MySQL) . I have experience with a wide range + of technologies and programming languages. </p> <p class="text-gray-400 text-xl font-bold mt-12"> Programming Languages: @@ -75,7 +79,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>Python</title> + <title>Python</title> <path fill="#0277BD" d="M24.047,5c-1.555,0.005-2.633,0.142-3.936,0.367c-3.848,0.67-4.549,2.077-4.549,4.67V14h9v2H15.22h-4.35c-2.636,0-4.943,1.242-5.674,4.219c-0.826,3.417-0.863,5.557,0,9.125C5.851,32.005,7.294,34,9.931,34h3.632v-5.104c0-2.966,2.686-5.896,5.764-5.896h7.236c2.523,0,5-1.862,5-4.377v-8.586c0-2.439-1.759-4.263-4.218-4.672C27.406,5.359,25.589,4.994,24.047,5z M19.063,9c0.821,0,1.5,0.677,1.5,1.502c0,0.833-0.679,1.498-1.5,1.498c-0.837,0-1.5-0.664-1.5-1.498C17.563,9.68,18.226,9,19.063,9z" @@ -85,7 +89,6 @@ import Layout from "../layouts/Layout.astro"; ></path> </svg> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -94,7 +97,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>Java</title> + <title>Java</title> <path fill="#F44336" d="M23.65,24.898c-0.998-1.609-1.722-2.943-2.725-5.455C19.229,15.2,31.24,11.366,26.37,3.999c2.111,5.089-7.577,8.235-8.477,12.473C17.07,20.37,23.645,24.898,23.65,24.898z" @@ -121,8 +124,6 @@ import Layout from "../layouts/Layout.astro"; > </svg> - - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -131,15 +132,13 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>Javascript</title> + <title>Javascript</title> <path fill="#ffd600" d="M6,42V6h36v36H6z"></path><path fill="#000001" d="M29.538 32.947c.692 1.124 1.444 2.201 3.037 2.201 1.338 0 2.04-.665 2.04-1.585 0-1.101-.726-1.492-2.198-2.133l-.807-.344c-2.329-.988-3.878-2.226-3.878-4.841 0-2.41 1.845-4.244 4.728-4.244 2.053 0 3.528.711 4.592 2.573l-2.514 1.607c-.553-.988-1.151-1.377-2.078-1.377-.946 0-1.545.597-1.545 1.377 0 .964.6 1.354 1.985 1.951l.807.344C36.452 29.645 38 30.839 38 33.523 38 36.415 35.716 38 32.65 38c-2.999 0-4.702-1.505-5.65-3.368L29.538 32.947zM17.952 33.029c.506.906 1.275 1.603 2.381 1.603 1.058 0 1.667-.418 1.667-2.043V22h3.333v11.101c0 3.367-1.953 4.899-4.805 4.899-2.577 0-4.437-1.746-5.195-3.368L17.952 33.029z" ></path> </svg> - - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -148,7 +147,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>Typescript</title> + <title>Typescript</title> <rect width="36" height="36" x="6" y="6" fill="#1976d2" ></rect><polygon fill="#fff" @@ -159,7 +158,6 @@ import Layout from "../layouts/Layout.astro"; ></path> </svg> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -168,7 +166,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>C++</title> + <title>C++</title> <path fill="#00549d" fill-rule="evenodd" @@ -198,12 +196,10 @@ import Layout from "../layouts/Layout.astro"; </div> </div> - - <p class="text-gray-400 text-xl font-bold mt-24"> Front End Technologies: </p> - + <div class="svg-container"> <svg xmlns="http://www.w3.org/2000/svg" @@ -213,7 +209,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 100 100" > - <title>React</title> + <title>React</title> <circle cx="50" cy="50" r="7" fill="#39c1d7"></circle><path fill="#1f212b" d="M50,58c-4.411,0-8-3.589-8-8s3.589-8,8-8s8,3.589,8,8S54.411,58,50,58z M50,44c-3.309,0-6,2.691-6,6 s2.691,6,6,6s6-2.691,6-6S53.309,44,50,44z" @@ -226,7 +222,6 @@ import Layout from "../layouts/Layout.astro"; ></path> </svg> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -235,7 +230,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>HTML</title> + <title>HTML</title> <path fill="#E65100" d="M41,5H7l3,34l14,4l14-4L41,5L41,5z" ></path><path fill="#FF6D00" d="M24 8L24 39.9 35.2 36.7 37.7 8z" ></path><path @@ -247,8 +242,6 @@ import Layout from "../layouts/Layout.astro"; ></path> </svg> - - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -257,7 +250,7 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>CSS</title> + <title>CSS</title> <path fill="#0277BD" d="M41,5H7l3,34l14,4l14-4L41,5L41,5z" ></path><path fill="#039BE5" d="M24 8L24 39.9 35.2 36.7 37.7 8z" ></path><path @@ -269,7 +262,6 @@ import Layout from "../layouts/Layout.astro"; ></path> </svg> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" @@ -278,15 +270,14 @@ import Layout from "../layouts/Layout.astro"; height="100" viewBox="0 0 48 48" > - <title>Tailwind CSS</title> + <title>Tailwind CSS</title> <path fill="#00acc1" d="M24,9.604c-6.4,0-10.4,3.199-12,9.597c2.4-3.199,5.2-4.398,8.4-3.599 c1.826,0.456,3.131,1.781,4.576,3.247C27.328,21.236,30.051,24,36,24c6.4,0,10.4-3.199,12-9.598c-2.4,3.199-5.2,4.399-8.4,3.6 c-1.825-0.456-3.13-1.781-4.575-3.247C32.672,12.367,29.948,9.604,24,9.604L24,9.604z M12,24c-6.4,0-10.4,3.199-12,9.598 c2.4-3.199,5.2-4.399,8.4-3.599c1.825,0.457,3.13,1.781,4.575,3.246c2.353,2.388,5.077,5.152,11.025,5.152 c6.4,0,10.4-3.199,12-9.598c-2.4,3.199-5.2,4.399-8.4,3.599c-1.826-0.456-3.131-1.781-4.576-3.246C20.672,26.764,17.949,24,12,24 L12,24z" > - </path> + </path> </svg> - <svg width="100px" height="100px" @@ -296,51 +287,77 @@ import Layout from "../layouts/Layout.astro"; d="M5.9,18.847a7.507,7.507,0,0,0-.572,2.624,3.265,3.265,0,0,0,.551,1.553,7.427,7.427,0,0,0,2.093,1.681L13.1,28.119A7.332,7.332,0,0,0,15.2,29.287a3.239,3.239,0,0,0,1.5,0,7.381,7.381,0,0,0,2.117-1.16L24,24.711a7.512,7.512,0,0,0,2.117-1.688,3.241,3.241,0,0,0,.55-1.563,7.515,7.515,0,0,0-.587-2.643L21.547,4.551a3.973,3.973,0,0,0-.54-1.3,1.733,1.733,0,0,0-.7-.51,3.972,3.972,0,0,0-1.4-.122H13.005a3.932,3.932,0,0,0-1.4.125,1.713,1.713,0,0,0-.7.512,3.94,3.94,0,0,0-.535,1.3L5.9,18.848Zm13.24-13.2a3.329,3.329,0,0,1,.441,1.093l3.892,12.784a16.168,16.168,0,0,0-4.653-1.573L16.291,9.391a.331.331,0,0,0-.513-.169.323.323,0,0,0-.119.169l-2.5,8.557a16.14,16.14,0,0,0-4.674,1.579L12.393,6.743a3.281,3.281,0,0,1,.442-1.094,1.458,1.458,0,0,1,.582-.43,3.31,3.31,0,0,1,1.175-.1h2.793a3.314,3.314,0,0,1,1.176.1,1.454,1.454,0,0,1,.583.432ZM16.127,21.06a5.551,5.551,0,0,0,3.4-.923,2.8,2.8,0,0,1-.207,2.182A3.938,3.938,0,0,1,17.773,23.8c-.674.428-1.254.8-1.254,1.787a2.079,2.079,0,0,0,.209.914,2.49,2.49,0,0,1-1.535-2.3v-.061c0-.683,0-1.524-.962-1.524a1.028,1.028,0,0,0-.391.077,1.021,1.021,0,0,0-.552.551,1.03,1.03,0,0,0-.079.391,3.769,3.769,0,0,1-.988-2.644,4.206,4.206,0,0,1,.175-1.248c.4.757,1.92,1.32,3.731,1.32Z" style="fill:#ff5d01;fill-rule:evenodd"></path></svg > - <svg height="1024pt" viewBox=".5 -.2 1023 1024.1" width="1024pt" xmlns="http://www.w3.org/2000/svg"> + <svg + height="1024pt" + viewBox=".5 -.2 1023 1024.1" + width="1024pt" + xmlns="http://www.w3.org/2000/svg" + > <title>Next.JS</title> - <path d="m478.5.6c-2.2.2-9.2.9-15.5 1.4-145.3 13.1-281.4 91.5-367.6 212-48 67-78.7 143-90.3 223.5-4.1 28.1-4.6 36.4-4.6 74.5s.5 46.4 4.6 74.5c27.8 192.1 164.5 353.5 349.9 413.3 33.2 10.7 68.2 18 108 22.4 15.5 1.7 82.5 1.7 98 0 68.7-7.6 126.9-24.6 184.3-53.9 8.8-4.5 10.5-5.7 9.3-6.7-.8-.6-38.3-50.9-83.3-111.7l-81.8-110.5-102.5-151.7c-56.4-83.4-102.8-151.6-103.2-151.6-.4-.1-.8 67.3-1 149.6-.3 144.1-.4 149.9-2.2 153.3-2.6 4.9-4.6 6.9-8.8 9.1-3.2 1.6-6 1.9-21.1 1.9h-17.3l-4.6-2.9c-3-1.9-5.2-4.4-6.7-7.3l-2.1-4.5.2-200.5.3-200.6 3.1-3.9c1.6-2.1 5-4.8 7.4-6.1 4.1-2 5.7-2.2 23-2.2 20.4 0 23.8.8 29.1 6.6 1.5 1.6 57 85.2 123.4 185.9s157.2 238.2 201.8 305.7l81 122.7 4.1-2.7c36.3-23.6 74.7-57.2 105.1-92.2 64.7-74.3 106.4-164.9 120.4-261.5 4.1-28.1 4.6-36.4 4.6-74.5s-.5-46.4-4.6-74.5c-27.8-192.1-164.5-353.5-349.9-413.3-32.7-10.6-67.5-17.9-106.5-22.3-9.6-1-75.7-2.1-84-1.3zm209.4 309.4c4.8 2.4 8.7 7 10.1 11.8.8 2.6 1 58.2.8 183.5l-.3 179.8-31.7-48.6-31.8-48.6v-130.7c0-84.5.4-132 1-134.3 1.6-5.6 5.1-10 9.9-12.6 4.1-2.1 5.6-2.3 21.3-2.3 14.8 0 17.4.2 20.7 2z"/> - <path d="m784.3 945.1c-3.5 2.2-4.6 3.7-1.5 2 2.2-1.3 5.8-4 5.2-4.1-.3 0-2 1-3.7 2.1zm-6.9 4.5c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-5 3c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-5 3c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-7.6 4c-3.8 2-3.6 2.8.2.9 1.7-.9 3-1.8 3-2 0-.7-.1-.6-3.2 1.1z"/> + <path + d="m478.5.6c-2.2.2-9.2.9-15.5 1.4-145.3 13.1-281.4 91.5-367.6 212-48 67-78.7 143-90.3 223.5-4.1 28.1-4.6 36.4-4.6 74.5s.5 46.4 4.6 74.5c27.8 192.1 164.5 353.5 349.9 413.3 33.2 10.7 68.2 18 108 22.4 15.5 1.7 82.5 1.7 98 0 68.7-7.6 126.9-24.6 184.3-53.9 8.8-4.5 10.5-5.7 9.3-6.7-.8-.6-38.3-50.9-83.3-111.7l-81.8-110.5-102.5-151.7c-56.4-83.4-102.8-151.6-103.2-151.6-.4-.1-.8 67.3-1 149.6-.3 144.1-.4 149.9-2.2 153.3-2.6 4.9-4.6 6.9-8.8 9.1-3.2 1.6-6 1.9-21.1 1.9h-17.3l-4.6-2.9c-3-1.9-5.2-4.4-6.7-7.3l-2.1-4.5.2-200.5.3-200.6 3.1-3.9c1.6-2.1 5-4.8 7.4-6.1 4.1-2 5.7-2.2 23-2.2 20.4 0 23.8.8 29.1 6.6 1.5 1.6 57 85.2 123.4 185.9s157.2 238.2 201.8 305.7l81 122.7 4.1-2.7c36.3-23.6 74.7-57.2 105.1-92.2 64.7-74.3 106.4-164.9 120.4-261.5 4.1-28.1 4.6-36.4 4.6-74.5s-.5-46.4-4.6-74.5c-27.8-192.1-164.5-353.5-349.9-413.3-32.7-10.6-67.5-17.9-106.5-22.3-9.6-1-75.7-2.1-84-1.3zm209.4 309.4c4.8 2.4 8.7 7 10.1 11.8.8 2.6 1 58.2.8 183.5l-.3 179.8-31.7-48.6-31.8-48.6v-130.7c0-84.5.4-132 1-134.3 1.6-5.6 5.1-10 9.9-12.6 4.1-2.1 5.6-2.3 21.3-2.3 14.8 0 17.4.2 20.7 2z" + ></path> + <path + d="m784.3 945.1c-3.5 2.2-4.6 3.7-1.5 2 2.2-1.3 5.8-4 5.2-4.1-.3 0-2 1-3.7 2.1zm-6.9 4.5c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-5 3c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-5 3c-1.8 1.4-1.8 1.5.4.4 1.2-.6 2.2-1.3 2.2-1.5 0-.8-.5-.6-2.6 1.1zm-7.6 4c-3.8 2-3.6 2.8.2.9 1.7-.9 3-1.8 3-2 0-.7-.1-.6-3.2 1.1z" + ></path> </svg> - </div> - - <p class="text-gray-400 text-xl font-bold mt-24">Dev Ops:</p> - <div class="svg-container"> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 48 48"> + <svg + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="100" + height="100" + viewBox="0 0 48 48" + > <title>Git</title> - <path fill="#F4511E" d="M42.2,22.1L25.9,5.8C25.4,5.3,24.7,5,24,5c0,0,0,0,0,0c-0.7,0-1.4,0.3-1.9,0.8l-3.5,3.5l4.1,4.1c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3c0,0.5-0.1,0.9-0.3,1.3l4,4c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3s-1.3,3-3,3c-1.7,0-3-1.3-3-3c0-0.5,0.1-0.9,0.3-1.3l-4-4c-0.1,0-0.2,0.1-0.3,0.1v10.4c1.2,0.4,2,1.5,2,2.8c0,1.7-1.3,3-3,3s-3-1.3-3-3c0-1.3,0.8-2.4,2-2.8V18.8c-1.2-0.4-2-1.5-2-2.8c0-0.5,0.1-0.9,0.3-1.3l-4.1-4.1L5.8,22.1C5.3,22.6,5,23.3,5,24c0,0.7,0.3,1.4,0.8,1.9l16.3,16.3c0,0,0,0,0,0c0.5,0.5,1.2,0.8,1.9,0.8s1.4-0.3,1.9-0.8l16.3-16.3c0.5-0.5,0.8-1.2,0.8-1.9C43,23.3,42.7,22.6,42.2,22.1z"></path> - </svg> - + <path + fill="#F4511E" + d="M42.2,22.1L25.9,5.8C25.4,5.3,24.7,5,24,5c0,0,0,0,0,0c-0.7,0-1.4,0.3-1.9,0.8l-3.5,3.5l4.1,4.1c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3c0,0.5-0.1,0.9-0.3,1.3l4,4c0.4-0.2,0.8-0.3,1.3-0.3c1.7,0,3,1.3,3,3s-1.3,3-3,3c-1.7,0-3-1.3-3-3c0-0.5,0.1-0.9,0.3-1.3l-4-4c-0.1,0-0.2,0.1-0.3,0.1v10.4c1.2,0.4,2,1.5,2,2.8c0,1.7-1.3,3-3,3s-3-1.3-3-3c0-1.3,0.8-2.4,2-2.8V18.8c-1.2-0.4-2-1.5-2-2.8c0-0.5,0.1-0.9,0.3-1.3l-4.1-4.1L5.8,22.1C5.3,22.6,5,23.3,5,24c0,0.7,0.3,1.4,0.8,1.9l16.3,16.3c0,0,0,0,0,0c0.5,0.5,1.2,0.8,1.9,0.8s1.4-0.3,1.9-0.8l16.3-16.3c0.5-0.5,0.8-1.2,0.8-1.9C43,23.3,42.7,22.6,42.2,22.1z" + ></path> + </svg> - <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 32 32" - style="fill:#FFFFFF;"> + <svg + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="100" + height="100" + viewBox="0 0 32 32" + style="fill:#FFFFFF;" + > <title>Amazon Web Services</title> - <path d="M 6.5839844 9.0097656 C 5.2239844 9.0097656 3.8432813 9.5400781 3.6132812 9.8300781 C 3.5532812 9.9500781 3.4141406 10.919922 3.7441406 10.919922 C 3.8541406 10.919922 3.9046094 10.939062 4.2246094 10.789062 C 5.4246094 10.319062 6.1849219 10.330078 6.2949219 10.330078 C 7.6449219 10.200078 8.4246875 11.120547 8.3046875 12.310547 L 8.3046875 13.009766 C 7.1646875 12.739766 6.5133594 12.730469 6.1933594 12.730469 C 4.5333594 12.630469 3 13.505688 3 15.429688 C 3 17.539687 4.8832812 17.990937 5.6132812 17.960938 C 6.7032812 17.970938 7.7435937 17.480859 8.4335938 16.630859 C 8.9835938 17.860859 9.33375 17.779297 9.34375 17.779297 C 9.44375 17.779297 9.5235156 17.739453 9.6035156 17.689453 L 10.173828 17.289062 C 10.273828 17.229063 10.353281 17.129766 10.363281 17.009766 C 10.353281 16.719766 9.8330469 16.269766 9.8730469 15.259766 L 9.8730469 12.140625 C 9.9330469 11.280625 9.6542187 10.439062 9.0742188 9.7890625 C 8.3842188 9.2090625 7.4739844 8.9297656 6.5839844 9.0097656 z M 25.957031 9.0097656 C 23.957031 9.0097656 22.807891 10.259297 22.837891 11.529297 C 22.837891 13.269297 24.596875 13.820859 24.796875 13.880859 C 26.486875 14.410859 26.7175 14.430078 27.1875 14.830078 C 27.5875 15.240078 27.537266 16.040625 26.947266 16.390625 C 26.777266 16.490625 26.046484 16.929844 24.396484 16.589844 C 23.846484 16.479844 23.557422 16.350156 23.107422 16.160156 C 22.987422 16.120156 22.707031 16.049922 22.707031 16.419922 L 22.707031 16.910156 C 22.707031 17.140156 22.846641 17.349219 23.056641 17.449219 C 24.106641 17.979219 25.366719 18 25.636719 18 C 25.676719 18 27.976094 18.001219 28.746094 16.449219 C 28.905094 16.129219 29.316875 14.960937 28.546875 13.960938 C 27.906875 13.210938 27.356797 13.130859 25.716797 12.630859 C 25.576797 12.590859 24.366953 12.279687 24.376953 11.429688 C 24.316953 10.339688 25.797422 10.280781 26.107422 10.300781 C 27.357422 10.280781 27.976406 10.749297 28.316406 10.779297 C 28.466406 10.779297 28.537109 10.690234 28.537109 10.490234 L 28.537109 10.029297 C 28.547109 9.9192969 28.507266 9.8107031 28.447266 9.7207031 C 28.047266 9.2007031 26.517031 9.0097656 25.957031 9.0097656 z M 10.777344 9.2597656 C 10.667344 9.2797656 10.587422 9.39 10.607422 9.5 C 10.627422 9.63 10.647266 9.760625 10.697266 9.890625 L 12.9375 17.279297 C 12.9875 17.519297 13.146094 17.780234 13.496094 17.740234 L 14.316406 17.740234 C 14.816406 17.790234 14.886484 17.309766 14.896484 17.259766 L 16.367188 11.099609 L 17.857422 17.269531 C 17.867422 17.319531 17.937734 17.8 18.427734 17.75 L 19.257812 17.75 C 19.617812 17.79 19.787891 17.529062 19.837891 17.289062 C 22.357891 9.1790625 22.187031 9.7303906 22.207031 9.6503906 C 22.247031 9.2303906 22.006797 9.2595313 21.966797 9.2695312 L 21.076172 9.2695312 C 20.626172 9.2195313 20.537578 9.6304688 20.517578 9.7304688 L 18.857422 16.140625 L 17.357422 9.7304688 C 17.287422 9.2404687 16.887109 9.2595313 16.787109 9.2695312 L 16.017578 9.2695312 C 15.577578 9.2295313 15.4675 9.5804687 15.4375 9.7304688 L 13.947266 16.050781 L 12.347656 9.7304688 C 12.307656 9.5304687 12.177109 9.2197656 11.787109 9.2597656 L 10.777344 9.2597656 z M 6.5234375 13.890625 C 7.2434375 13.900625 7.8649219 14.009375 8.2949219 14.109375 C 8.2949219 14.609375 8.313125 14.889844 8.203125 15.339844 C 8.063125 15.819844 7.444375 16.690937 5.984375 16.710938 C 5.144375 16.750937 4.5945313 16.089844 4.6445312 15.339844 C 4.5945313 14.139844 5.8334375 13.840625 6.5234375 13.890625 z M 29.041016 20.001953 C 28.107641 20.014953 27.005922 20.224047 26.169922 20.810547 C 25.911922 20.989547 25.957141 21.238078 26.244141 21.205078 C 27.184141 21.092078 29.276391 20.838406 29.650391 21.316406 C 30.025391 21.794406 29.235719 23.766437 28.886719 24.648438 C 28.778719 24.911437 29.007047 25.020312 29.248047 24.820312 C 30.812047 23.510312 31.218438 20.764141 30.898438 20.369141 C 30.737937 20.171641 29.974391 19.988953 29.041016 20.001953 z M 1.2167969 21.001953 C 0.99873437 21.031953 0.9048125 21.308344 1.1328125 21.527344 C 5.0498125 25.201344 10.225656 27 15.972656 27 C 20.071656 27 24.830234 25.662578 28.115234 23.142578 C 28.658234 22.723578 28.195672 22.09575 27.638672 22.34375 C 23.955672 23.96875 19.955453 24.751953 16.314453 24.751953 C 10.918453 24.751953 5.69475 23.625406 1.46875 21.066406 C 1.37625 21.010406 1.2894844 20.991953 1.2167969 21.001953 z"></path> - </svg> - + <path + d="M 6.5839844 9.0097656 C 5.2239844 9.0097656 3.8432813 9.5400781 3.6132812 9.8300781 C 3.5532812 9.9500781 3.4141406 10.919922 3.7441406 10.919922 C 3.8541406 10.919922 3.9046094 10.939062 4.2246094 10.789062 C 5.4246094 10.319062 6.1849219 10.330078 6.2949219 10.330078 C 7.6449219 10.200078 8.4246875 11.120547 8.3046875 12.310547 L 8.3046875 13.009766 C 7.1646875 12.739766 6.5133594 12.730469 6.1933594 12.730469 C 4.5333594 12.630469 3 13.505688 3 15.429688 C 3 17.539687 4.8832812 17.990937 5.6132812 17.960938 C 6.7032812 17.970938 7.7435937 17.480859 8.4335938 16.630859 C 8.9835938 17.860859 9.33375 17.779297 9.34375 17.779297 C 9.44375 17.779297 9.5235156 17.739453 9.6035156 17.689453 L 10.173828 17.289062 C 10.273828 17.229063 10.353281 17.129766 10.363281 17.009766 C 10.353281 16.719766 9.8330469 16.269766 9.8730469 15.259766 L 9.8730469 12.140625 C 9.9330469 11.280625 9.6542187 10.439062 9.0742188 9.7890625 C 8.3842188 9.2090625 7.4739844 8.9297656 6.5839844 9.0097656 z M 25.957031 9.0097656 C 23.957031 9.0097656 22.807891 10.259297 22.837891 11.529297 C 22.837891 13.269297 24.596875 13.820859 24.796875 13.880859 C 26.486875 14.410859 26.7175 14.430078 27.1875 14.830078 C 27.5875 15.240078 27.537266 16.040625 26.947266 16.390625 C 26.777266 16.490625 26.046484 16.929844 24.396484 16.589844 C 23.846484 16.479844 23.557422 16.350156 23.107422 16.160156 C 22.987422 16.120156 22.707031 16.049922 22.707031 16.419922 L 22.707031 16.910156 C 22.707031 17.140156 22.846641 17.349219 23.056641 17.449219 C 24.106641 17.979219 25.366719 18 25.636719 18 C 25.676719 18 27.976094 18.001219 28.746094 16.449219 C 28.905094 16.129219 29.316875 14.960937 28.546875 13.960938 C 27.906875 13.210938 27.356797 13.130859 25.716797 12.630859 C 25.576797 12.590859 24.366953 12.279687 24.376953 11.429688 C 24.316953 10.339688 25.797422 10.280781 26.107422 10.300781 C 27.357422 10.280781 27.976406 10.749297 28.316406 10.779297 C 28.466406 10.779297 28.537109 10.690234 28.537109 10.490234 L 28.537109 10.029297 C 28.547109 9.9192969 28.507266 9.8107031 28.447266 9.7207031 C 28.047266 9.2007031 26.517031 9.0097656 25.957031 9.0097656 z M 10.777344 9.2597656 C 10.667344 9.2797656 10.587422 9.39 10.607422 9.5 C 10.627422 9.63 10.647266 9.760625 10.697266 9.890625 L 12.9375 17.279297 C 12.9875 17.519297 13.146094 17.780234 13.496094 17.740234 L 14.316406 17.740234 C 14.816406 17.790234 14.886484 17.309766 14.896484 17.259766 L 16.367188 11.099609 L 17.857422 17.269531 C 17.867422 17.319531 17.937734 17.8 18.427734 17.75 L 19.257812 17.75 C 19.617812 17.79 19.787891 17.529062 19.837891 17.289062 C 22.357891 9.1790625 22.187031 9.7303906 22.207031 9.6503906 C 22.247031 9.2303906 22.006797 9.2595313 21.966797 9.2695312 L 21.076172 9.2695312 C 20.626172 9.2195313 20.537578 9.6304688 20.517578 9.7304688 L 18.857422 16.140625 L 17.357422 9.7304688 C 17.287422 9.2404687 16.887109 9.2595313 16.787109 9.2695312 L 16.017578 9.2695312 C 15.577578 9.2295313 15.4675 9.5804687 15.4375 9.7304688 L 13.947266 16.050781 L 12.347656 9.7304688 C 12.307656 9.5304687 12.177109 9.2197656 11.787109 9.2597656 L 10.777344 9.2597656 z M 6.5234375 13.890625 C 7.2434375 13.900625 7.8649219 14.009375 8.2949219 14.109375 C 8.2949219 14.609375 8.313125 14.889844 8.203125 15.339844 C 8.063125 15.819844 7.444375 16.690937 5.984375 16.710938 C 5.144375 16.750937 4.5945313 16.089844 4.6445312 15.339844 C 4.5945313 14.139844 5.8334375 13.840625 6.5234375 13.890625 z M 29.041016 20.001953 C 28.107641 20.014953 27.005922 20.224047 26.169922 20.810547 C 25.911922 20.989547 25.957141 21.238078 26.244141 21.205078 C 27.184141 21.092078 29.276391 20.838406 29.650391 21.316406 C 30.025391 21.794406 29.235719 23.766437 28.886719 24.648438 C 28.778719 24.911437 29.007047 25.020312 29.248047 24.820312 C 30.812047 23.510312 31.218438 20.764141 30.898438 20.369141 C 30.737937 20.171641 29.974391 19.988953 29.041016 20.001953 z M 1.2167969 21.001953 C 0.99873437 21.031953 0.9048125 21.308344 1.1328125 21.527344 C 5.0498125 25.201344 10.225656 27 15.972656 27 C 20.071656 27 24.830234 25.662578 28.115234 23.142578 C 28.658234 22.723578 28.195672 22.09575 27.638672 22.34375 C 23.955672 23.96875 19.955453 24.751953 16.314453 24.751953 C 10.918453 24.751953 5.69475 23.625406 1.46875 21.066406 C 1.37625 21.010406 1.2894844 20.991953 1.2167969 21.001953 z" + ></path> + </svg> - <img width="100" height="100" class="ml-2" src="https://maven.apache.org/images/maven-logo-white-on-black.png"> + <img + width="100" + height="100" + class="ml-2" + src="https://maven.apache.org/images/maven-logo-white-on-black.png" + /> <title>Maven</title> - </img> </div> </div> </div> </div> - <style> - .svg-container { - display: flex; - justify-content: left; - align-items: center; - } - - .svg-container svg { - width: 75px; - height: 75px; - } - </style> </section> + <style> + .svg-container { + display: flex; + justify-content: left; + align-items: center; + } + + .svg-container svg { + width: 75px; + height: 75px; + } + </style> </Layout> diff --git a/src/pages/contributions.astro b/src/pages/contributions.astro index 0f4c6ad..6c5219c 100644 --- a/src/pages/contributions.astro +++ b/src/pages/contributions.astro @@ -2,17 +2,18 @@ import Layout from "../layouts/Layout.astro"; import SocialNavbar from "../components/SocialNavbar.astro"; import Card from "../components/Card.astro"; -import MiniCard from "../components/MiniCard.astro"; --- <Layout title="Contributions"> <main> <h1>Open Source Contributions</h1> + <p> + I love the idea of open source. Here are some of the projects I've contributed to. + </p> <ul role="list" class="link-card-grid"></ul> <section class="contributions-section"> - <h2>Contributions</h2> <ul role="list" class="contribution-card-grid"> <Card href="https://github.com/Patchwork-Archive" @@ -21,8 +22,7 @@ import MiniCard from "../components/MiniCard.astro"; contribution="Maintainer and creator of project" language="Javascript" languageColor="#f1e05a" - logoSrc="https://avatars.githubusercontent.com/u/145537335?s=200&v=4" - logoWidth="150px" + year="2023" /> <Card href="https://github.com/pinapelz/Sapphire" @@ -31,29 +31,24 @@ import MiniCard from "../components/MiniCard.astro"; contribution="Bug fixes + Reverse engineered and implemented quests" language="C++" languageColor="#f34b7d" - logoWidth="300px" - logoSrc="https://1852825540-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWEO5F5fxBARvfBEby5l%2Fuploads%2FN0KFeaD6TNNdujlRXgrw%2Fsapphire_logo.png?alt=media&token=79fdc373-8bf7-41e0-bf66-fb3eaf67d2ca" + year="2023" /> - <div class="card-container"> - <MiniCard + <Card href="https://github.com/EBro912/Holodex.NET" title="Holodex.NET" body="A C# wrapper for the Holodex API " language="C#" languageColor="#178600" - logoSrc="https://camo.githubusercontent.com/259199b315aaf21baf8665a6613a2c0ffb404ad9fbf3f8441e8d0100a1a71937/68747470733a2f2f692e696d6775722e636f6d2f69527967754c672e706e67" - logoWidth="150px" + year="2023" /> - <MiniCard + <Card href="https://github.com/icssc/AntAlmanac" title="AntAlmanac" body="A course exploration and scheduling tool for UCI Anteaters" language="TypeScript" languageColor="#2b7489" - logoSrc="https://github.com/icssc/AntAlmanac/raw/main/apps/antalmanac/public/banner.png" - logoWidth="300px" + year="2023" /> - </div> </ul> </section> </main> @@ -61,6 +56,10 @@ import MiniCard from "../components/MiniCard.astro"; <SocialNavbar /> <style> + h1 { + font-size: 2.5rem; + margin-bottom: 1rem; + } main { margin: auto; padding: 1rem; diff --git a/src/pages/coursework.astro b/src/pages/coursework.astro index cfba63a..1a7f900 100644 --- a/src/pages/coursework.astro +++ b/src/pages/coursework.astro @@ -51,6 +51,10 @@ const in4mtxCourses = [ <Layout title="Pinapelz"> <h1>Relevant Coursework</h1> + <h2> + Here are some of the course I've taken at UCI. <br/> + ICS stands for Information and Computer Science, and IN4MTX stands for Informatics. + </h2> <div class="coursework-container"> <div class="course-segment"> <h2 class="text-gradient">ICS Courses</h2> @@ -119,10 +123,18 @@ const in4mtxCourses = [ color: white; line-height: 1; text-align: center; - margin-bottom: 1em; + margin-bottom:0.5em; + margin-top: 2rem; transition: transform 0.3s ease-in-out; } + h2 { + font-size: 1.5rem; + color: rgba(255, 255, 255, 0.8); + margin-bottom: 2rem; + text-align: center; + } + .welcome-text-gradient { background-image: var(--accent-gradient-purp); -webkit-background-clip: text; diff --git a/src/pages/projects.astro b/src/pages/projects.astro index 328ce6c..f54ee2b 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -8,9 +8,9 @@ import Card from "../components/Card.astro"; <main> <h1 class="text-4xl font-semibold text-center py-6">Projects</h1> <p class="text-center mb-4"> - Here are some of my projects. For a more complete list, visit my <a class="font-bold" href="https://github.com/pinapelz">Github</a> + Here are some of my projects. I love tinkering with stuff so for a more complete list, visit my <a class="font-bold" href="https://github.com/pinapelz">Github</a> <br/> - Visit here for my <a class="font-bold" href="/contributions">open source contributions</a> + Also visit here for some <a class="font-bold" href="/contributions">open source stuff</a> </p> <ul role="list" class="link-card-grid"> <Card @@ -19,25 +19,26 @@ import Card from "../components/Card.astro"; body="JSwing application that downloads YouTube videos as MP3 and automatically tags the ID3 fields throughing inferring the video metadata" language="Java" languageColor="#b07219" - logoSrc="https://user-images.githubusercontent.com/21994085/232991117-a41a33e1-f45a-4043-aa6a-e886a31d2f11.png" + year="2022" + tags={["Java", "Swing"]} /> <Card href="https://github.com/Patchwork-Archive/Patchwork-Karaoke" - title="Patchwork Karaoke" - body="A client-side web app that allows the playback of video files synchronzied with both .lrc lyrics and .srv3 subtitles" + title="lrc-karaoke-player" + body="A client-side web app that allows the playback of video files synchronzied with both .lrc lyrics and YouTube srv3 styled subtitles" language="Typescript" languageColor="#3178c6" - logoWidth="250px" - logoSrc="https://github.com/Patchwork-Archive/Patchwork-Karaoke/assets/21994085/758422b4-4be1-4e4e-a5a0-81b06f3930e5" + year="2023" + tags={["Typescript", "React"]} /> <Card href="https://github.com/pinapelz/NijiTrack" title="Nijitrack" - body="Python and Next.JS application that records and collects historical subscriber count for any subset of YouTube channels." + body="Python and Next application that records and collects historical subscriber count for any subset of YouTube channels." language="Python" languageColor="#3572A5" - logoSrc="https://github.com/pinapelz/NijiTrack/assets/21994085/c50e959a-34a9-4509-b892-921f6121c33b" - logoWidth="300px" + year="2023" + tags={["Python", "Next", "Tailwind", "SSR"]} /> <Card href="https://github.com/pinapelz/JHolodex" @@ -45,17 +46,17 @@ import Card from "../components/Card.astro"; body="Object-Oriented Java wrapper for the Holodex API written with Retrofit2. Published on Maven Central" language="Java" languageColor="#b07219" - logoSrc="https://cdn-icons-png.flaticon.com/512/25/25231.png" - logoWidth="150px" + year="2023" + tags={["Java", "Retrofit2", "Maven"]} /> <Card href="https://github.com/Patchwork-Archive" title="Patchwork Archive" - body="An archival system to help streamline the preservation of any subset of YouTube videos" + body="An archival system to help streamline the preservation of any subset of YouTube videos. Fully featured frontend, backend, and worker system for archival" language="Javascript" languageColor="#f1e05a" - logoSrc="https://user-images.githubusercontent.com/21994085/277150135-30b2cabf-07b4-4331-8ebf-709520d42baa.png" - logoWidth="300px" + year="2023" + tags={["React", "Python", "MySQL" , "S3 Storage", "Tailwind"]} /> <Card href="https://github.com/pinapelz/yet-another-lavaplayer-bot" @@ -63,35 +64,35 @@ import Card from "../components/Card.astro"; body="Self-hosted JDA Discord music bot that uses Lavaplayer to play music from YouTube, Soundcloud, etc in Discord voice channels" language="Java" languageColor="#b07219" - logoWidth="300px" - logoSrc="https://user-images.githubusercontent.com/21994085/227810542-26cfb171-9445-4ebf-b57f-575cb5749740.png" + year="2022" + tags={["Java", "JDA"]} /> <Card - href="https://github.com/pinapelz/vtuber-captcha" - title="VTuber Captcha" - body="Python Flask API that serves fun VTuber related captcha data. Answers are checked server-side and are not stored locally" - language="Python" - languageColor="#3572A5" - logoWidth="200px" - logoSrc="https://github.com/pinapelz/vtuber-captcha/assets/21994085/0a286fab-26bd-4865-93bb-be6830db624e" + href="https://github.com/pinapelz/link-shortener-moe-vercel" + title="Moe Link Shortener" + body="A fully serverless Flask link shortener that can be customized and deployed to Vercel with 1 click.Deploys as a fullstack app on Vercel" + language="HTML" + languageColor="#e34c26" + year="2023" + tags={["HTML", "Flask", "Python", "PostgreSQL"]} /> <Card - href="https://github.com/pinapelz/link-shortener-moe-vercel" - title="Vercel Link Shortener (moekyun.me)" - body="Python Flask link shortener with built in support for custom URLs, special features, and Vercel deployment." + href="https://github.com/pinapelz/vtuber-captcha" + title="Vtuber Captcha" + body="A bring your own UI captcha API that uses VTuber images to verify that the user is human. Verifies answers server-side!" language="Python" languageColor="#3572A5" - logoSrc="https://files.catbox.moe/8lgla6.png" - logoWidth="350px" + year="2023" + tags={["Python", "Flask", "PostgreSQL"]} /> <Card - href="https://github.com/pinapelz/youtube-timed-playlist" - title="YouTube Timed Playlist" - body="React JS web app that allows users to create YouTube playlists with custom start and end times for each video" - language="Javascript" - languageColor="#f1e05a" - logoWidth="250px" - logoSrc="https://github.com/pinapelz/youtube-timed-playlist/assets/21994085/04575380-9b33-46da-9423-84f4809ec268" + href="https://github.com/pinapelz.com" + title="Personal Website" + body="This website! Fully built using Astro, a superset of HTML (and so is my blog linked in the buttons down below)" + language="Astro" + languageColor="#ff5a03", + year="2023" + tags={["Astro", "HTML", "Tailwind", "Javascript"]} /> </ul> </main> |
