aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/Card.astro43
-rw-r--r--src/components/DiscordActivity.astro87
-rw-r--r--src/components/DiscordStatus.astro12
-rw-r--r--src/components/MiniCard.astro62
-rw-r--r--src/components/RSSFeed.astro73
-rw-r--r--src/pages/about.astro131
-rw-r--r--src/pages/contributions.astro27
-rw-r--r--src/pages/coursework.astro14
-rw-r--r--src/pages/projects.astro73
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>
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage