mirror of
https://github.com/liyunze-coding/RythonDev.git
synced 2026-09-22 15:53:57 +00:00
Merge pull request #3 from liyunze-coding/fix-spacing
Update project and fix warnings
This commit is contained in:
commit
d9fda8a25a
7 changed files with 117 additions and 71 deletions
Binary file not shown.
|
|
@ -47,7 +47,7 @@ function ExperienceTabContent() {
|
||||||
dateRange: "Mar 2026 - Apr 2026",
|
dateRange: "Mar 2026 - Apr 2026",
|
||||||
country: "Australia",
|
country: "Australia",
|
||||||
highlights: [
|
highlights: [
|
||||||
"Successfully merged 13 pull requests to the Ruby on Rails codebase, fixing bugs and adding new features.",
|
"Successfully merged 13+ pull requests to the Ruby on Rails codebase, fixing bugs and adding new features.",
|
||||||
"Communicated clearly about obstacles, suggested probable cause and provided solutions or workarounds.",
|
"Communicated clearly about obstacles, suggested probable cause and provided solutions or workarounds.",
|
||||||
],
|
],
|
||||||
className: "pb-5",
|
className: "pb-5",
|
||||||
|
|
@ -58,7 +58,8 @@ function ExperienceTabContent() {
|
||||||
country: "Australia",
|
country: "Australia",
|
||||||
highlights: [
|
highlights: [
|
||||||
"Led the migration from 40+ Javascript files to Typescript while preserving original functionality with minor bug fixes.",
|
"Led the migration from 40+ Javascript files to Typescript while preserving original functionality with minor bug fixes.",
|
||||||
"Improved navigation adhering to UX principles.",
|
"Reviewed 35+ pull requests with only 70% approval rate to maintain codebase quality.",
|
||||||
|
"Contributed 12+ pull requests into frontend and CI/CD to add new features and fix bugs.",
|
||||||
],
|
],
|
||||||
className: "pb-5",
|
className: "pb-5",
|
||||||
})}
|
})}
|
||||||
|
|
@ -92,10 +93,11 @@ function EducationTabContent() {
|
||||||
<>
|
<>
|
||||||
{Position({
|
{Position({
|
||||||
title: "Bachelors of Computer Science",
|
title: "Bachelors of Computer Science",
|
||||||
dateRange: "June 2024 - Now",
|
dateRange: "June 2024 - September 2026",
|
||||||
country: "Australia",
|
country: "Australia",
|
||||||
summary: `Awarded 50% Vice-Chancellor Scholarship to study
|
summary: `Awarded 50% Vice-Chancellor Scholarship to study
|
||||||
Bachelor's in Computer Science, minoring in Full Stack Development. Active committee member in cybersecurity association and software engineering club.`,
|
Bachelor's in Computer Science, minoring in Full Stack Development.
|
||||||
|
Active committee member in various clubs including Cybersecurity association and Software Engineering club.`,
|
||||||
className: "pb-5",
|
className: "pb-5",
|
||||||
})}
|
})}
|
||||||
{Position({
|
{Position({
|
||||||
|
|
@ -111,24 +113,27 @@ function EducationTabContent() {
|
||||||
function ExtracurricularTabContent() {
|
function ExtracurricularTabContent() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{Position({
|
|
||||||
title: "Development Committee of Cybersecurity Association",
|
|
||||||
dateRange: "Nov 2025 - Now",
|
|
||||||
country: "Australia",
|
|
||||||
className: "pb-5",
|
|
||||||
highlights: [
|
|
||||||
`Leading frontend development of club's revamped website in Astro.`,
|
|
||||||
"Hosted study sessions to encourage productivity amongst students.",
|
|
||||||
],
|
|
||||||
})}
|
|
||||||
{Position({
|
{Position({
|
||||||
title: "Web Dev Lead of Software Engineering Club",
|
title: "Web Dev Lead of Software Engineering Club",
|
||||||
dateRange: "Sep 2025 - Now",
|
dateRange: "Sep 2025 - Now",
|
||||||
country: "Australia",
|
country: "Australia",
|
||||||
className: "pb-5",
|
className: "pb-5",
|
||||||
highlights: [
|
highlights: [
|
||||||
`Developed Rust Discord Bot, includes club membership verification feature using Supabase.`,
|
"Developed Rust Discord Bot, includes club membership verification feature using Supabase.",
|
||||||
`Hosted a Typescript workshop using Bun.`,
|
"Improve engagement of Discord server by introducing daily leetcode challenges.",
|
||||||
|
"Hosted a Typescript workshop using Bun and Svelte.",
|
||||||
|
"Featured as a panelist on Our Internship Experience, sharing tips and advice to students."
|
||||||
|
],
|
||||||
|
})}
|
||||||
|
{Position({
|
||||||
|
title: "Development Committee of Cybersecurity Association",
|
||||||
|
dateRange: "Nov 2025 - Now",
|
||||||
|
country: "Australia",
|
||||||
|
className: "pb-5",
|
||||||
|
highlights: [
|
||||||
|
"Leading frontend development of club's revamped website in Astro.",
|
||||||
|
"Contributing to Discord bot development migration from Typescript to Python for lower barrier of entry.",
|
||||||
|
"Hosted study sessions to encourage productivity amongst students.",
|
||||||
],
|
],
|
||||||
})}
|
})}
|
||||||
{Position({
|
{Position({
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,10 @@ import { Image } from "astro:assets";
|
||||||
<Greeting client:load />!
|
<Greeting client:load />!
|
||||||
</div>
|
</div>
|
||||||
<p class="text-left">
|
<p class="text-left">
|
||||||
I'm a Malaysian software developer studying in Australia on
|
I am a Malaysian computer science graduate pivoting towards
|
||||||
a 50% excellence scholarship. I develop software for streamers
|
teaching in Australia. I develop software for streamers and
|
||||||
and content creators, while also making tech tutorials in programming.
|
content creators, while also making tech tutorials in
|
||||||
|
programming.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mt-8 flex flex-row items-center justify-center">
|
<div class="mt-8 flex flex-row items-center justify-center">
|
||||||
|
|
|
||||||
|
|
@ -48,15 +48,15 @@ import Project from "./Project.astro";
|
||||||
|
|
||||||
<Project
|
<Project
|
||||||
position="right"
|
position="right"
|
||||||
href="https://github.com/liyunze-coding/chat-task-tic-overlay-infinity"
|
href="https://github.com/liyunze-coding/rython-task-bot-v2"
|
||||||
title="Chat-task-tic widget"
|
title="Multi-Task Widget"
|
||||||
label="View Repository"
|
label="View Repository"
|
||||||
description={`
|
description={`
|
||||||
Used by 100+ Twitch streamers, allow viewers and streamers
|
Used by 100+ Twitch streamers, allow viewers and streamers
|
||||||
to add their own tasks to the widget for accountability!
|
to add their own tasks to the widget for accountability!
|
||||||
Easy to setup and the customization possibilities are
|
Easy to setup and the customization possibilities are
|
||||||
endless!`}
|
endless!`}
|
||||||
tags={["HTML", "CSS", "Javascript"]}
|
tags={["HTML", "CSS", "Javascript", "C#"]}
|
||||||
>
|
>
|
||||||
<TaskWidget
|
<TaskWidget
|
||||||
classList={`
|
classList={`
|
||||||
|
|
|
||||||
|
|
@ -1,116 +1,136 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
const streamers = [
|
type Task = {
|
||||||
|
name: string;
|
||||||
|
completed: boolean;
|
||||||
|
};
|
||||||
|
type UserListItem = {
|
||||||
|
streamer: string;
|
||||||
|
tasks: Array<Task>;
|
||||||
|
};
|
||||||
|
const streamers: Array<UserListItem> = [
|
||||||
{
|
{
|
||||||
streamer: "4l1c3_0",
|
streamer: "4l1c3_0",
|
||||||
task: "mental breakdance",
|
tasks: [{ name: "mental breakdance", completed: true }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "arcanexviii",
|
streamer: "arcanexviii",
|
||||||
task: "babysit",
|
tasks: [{ name: "babysit", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "brisim_claimhte",
|
streamer: "B1obaBoba",
|
||||||
task: "rewrite history thesis",
|
tasks: [{ name: "Move to Norway", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "Bubxmicn",
|
streamer: "Bubxmicn",
|
||||||
task: "drive a truck",
|
tasks: [
|
||||||
|
{ name: "drive a truck", completed: false },
|
||||||
|
{
|
||||||
|
name: "get Masters in Public Health degree",
|
||||||
|
completed: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
streamer: "bunnie_bytes",
|
||||||
|
tasks: [{ name: "Work as a software developer", completed: true }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "charliosaurus",
|
streamer: "charliosaurus",
|
||||||
task: "praise the lord",
|
tasks: [
|
||||||
|
{ name: "praise the lord", completed: true },
|
||||||
|
{ name: "graduate from university", completed: true },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "clari_miu",
|
streamer: "clari_miu",
|
||||||
task: "be sweaty",
|
tasks: [{ name: "be sweaty", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "cloudydayzzz",
|
streamer: "cloudydayzzz",
|
||||||
task: "stay up at night",
|
tasks: [{ name: "stay up at night", completed: false }],
|
||||||
},
|
|
||||||
{
|
|
||||||
streamer: "creativepepper",
|
|
||||||
task: "develop mobile app",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "DATJI_",
|
streamer: "DATJI_",
|
||||||
task: "IRL KBBQ stream",
|
tasks: [{ name: "IRL KBBQ stream", completed: true }],
|
||||||
},
|
|
||||||
{
|
|
||||||
streamer: "EarliestTea",
|
|
||||||
task: "chat about MBTI",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "Ellyskey",
|
streamer: "Ellyskey",
|
||||||
task: "sell YOUthversity merch",
|
tasks: [{ name: "sell YOUthversity merch", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "HarryIsTrying",
|
streamer: "HarryIsTrying",
|
||||||
task: "be a strategy consultant",
|
tasks: [{ name: "be a strategy consultant", completed: true }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "itsbrandonut",
|
streamer: "itsbrandonut",
|
||||||
task: "cowork then league",
|
tasks: [{ name: "cowork then league", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "lala_xitlali",
|
streamer: "lala_xitlali",
|
||||||
task: "design fashionable clothes",
|
tasks: [{ name: "design fashionable clothes", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "lyricalclove",
|
streamer: "lyricalclove",
|
||||||
task: "teach English",
|
tasks: [{ name: "teach English", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "nachoburrit0",
|
streamer: "nachoburrit0",
|
||||||
task: "update spreadsheets",
|
tasks: [{ name: "update spreadsheets", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "nihn_",
|
streamer: "nihn_",
|
||||||
task: "Release new Lo-fi music",
|
tasks: [{ name: "Release new Lo-fi music", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "lanezzz_",
|
streamer: "lanezzz_",
|
||||||
task: "be a supermodel",
|
tasks: [{ name: "be a supermodel", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "PineappleEffect",
|
streamer: "PineappleEffect",
|
||||||
task: "edit video",
|
tasks: [{ name: "edit video", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "pinsaregood",
|
streamer: "pinsaregood",
|
||||||
task: "go on another hiatus",
|
tasks: [{ name: "go on another hiatus", completed: false }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
streamer: "potatoing_2d",
|
||||||
|
tasks: [{ name: "be a potato", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "lilylikesrocks",
|
streamer: "lilylikesrocks",
|
||||||
task: "learn about rocks",
|
tasks: [{ name: "learn about rocks", completed: false }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
streamer: "RythonDev",
|
||||||
|
tasks: [
|
||||||
|
{ name: "Graduate with Bachelors degree", completed: true },
|
||||||
|
{ name: "Masters in Teaching (secondary)", completed: false },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "snowxcone",
|
streamer: "snowxcone",
|
||||||
task: "do more leetcode",
|
tasks: [{ name: "do more leetcode", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "studypaws",
|
streamer: "studypaws",
|
||||||
task: "be a vet",
|
tasks: [{ name: "be a vet", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "sunfflawer",
|
streamer: "sunfflawer",
|
||||||
task: "be a sunflower",
|
tasks: [{ name: "be a sunflower", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "Supernaturalwriter",
|
streamer: "Supernaturalwriter",
|
||||||
task: "hit the gym",
|
tasks: [{ name: "hit the gym", completed: false }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "ThePainfulPhD",
|
streamer: "ThePainfulPhD",
|
||||||
task: "study about pain",
|
tasks: [{ name: "get PhD", completed: true }],
|
||||||
},
|
|
||||||
{
|
|
||||||
streamer: "theyolotato",
|
|
||||||
task: "be a potato",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
streamer: "xeno_hiraeth",
|
streamer: "xeno_hiraeth",
|
||||||
task: "anki flashcards",
|
tasks: [{ name: "finished med school", completed: true }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -139,22 +159,42 @@
|
||||||
class="scroll-parent relative h-[82%] overflow-hidden rounded-br-2xl rounded-bl-2xl font-['Fredoka',_sans-serif] lg:min-h-0"
|
class="scroll-parent relative h-[82%] overflow-hidden rounded-br-2xl rounded-bl-2xl font-['Fredoka',_sans-serif] lg:min-h-0"
|
||||||
>
|
>
|
||||||
<div class="scroll-element primary absolute w-full px-1">
|
<div class="scroll-element primary absolute w-full px-1">
|
||||||
{#each streamers as { streamer, task }}
|
{#each streamers as { streamer, tasks }}
|
||||||
<div
|
<div
|
||||||
class="my-2 w-full overflow-hidden rounded-md bg-[#404040] px-5 py-1
|
class="my-2 w-full overflow-hidden rounded-md bg-[#404040] px-5 py-1
|
||||||
text-sm overflow-ellipsis whitespace-nowrap text-white lg:text-base"
|
text-sm overflow-ellipsis whitespace-nowrap text-white lg:text-base"
|
||||||
>
|
>
|
||||||
O {streamer} : {task}
|
{streamer} :
|
||||||
|
<ol class="list-inside list-decimal">
|
||||||
|
{#each tasks as task}
|
||||||
|
<li
|
||||||
|
class={task.completed
|
||||||
|
? "text-gray-400 line-through"
|
||||||
|
: "text-white"}
|
||||||
|
>
|
||||||
|
{task.name}
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<div class="scroll-element secondary absolute w-full px-1">
|
<div class="scroll-element secondary absolute w-full px-1">
|
||||||
{#each streamers as { streamer, task }}
|
{#each streamers as { streamer, tasks }}
|
||||||
<div
|
<div
|
||||||
class="my-2 w-full overflow-hidden rounded-md bg-[#404040] px-5 py-1
|
class="my-2 w-full overflow-hidden rounded-md bg-[#404040] px-5 py-1
|
||||||
text-sm overflow-ellipsis whitespace-nowrap text-white lg:text-base"
|
text-sm overflow-ellipsis whitespace-nowrap text-white lg:text-base"
|
||||||
>
|
>
|
||||||
O {streamer} : {task}
|
{streamer} :
|
||||||
|
<ol class="list-inside list-decimal">
|
||||||
|
{#each tasks as task}
|
||||||
|
<li
|
||||||
|
class={task.completed ? "line-through" : ""}
|
||||||
|
>
|
||||||
|
{task.name}
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -202,11 +242,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.primary {
|
.primary {
|
||||||
animation: primary 20s linear infinite;
|
animation: primary 30s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
.secondary {
|
.secondary {
|
||||||
animation: secondary 20s linear infinite;
|
animation: secondary 30s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes primary {
|
@keyframes primary {
|
||||||
|
|
@ -214,13 +254,13 @@
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
transform: translateY(-1175px);
|
transform: translateY(-1890px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes secondary {
|
@keyframes secondary {
|
||||||
from {
|
from {
|
||||||
transform: translateY(1175px);
|
transform: translateY(1890px);
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
tags = [],
|
tags = [],
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
|
|
||||||
const positionLeft: boolean = $state(position == "left");
|
const positionLeft: boolean = (() => position == "left")();
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
const videos = document.querySelectorAll<HTMLVideoElement>(".playable");
|
const videos = document.querySelectorAll<HTMLVideoElement>(".playable");
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ import Card from "../global/Card.astro";
|
||||||
<div class="w-full px-5 py-5 lg:w-4/5">
|
<div class="w-full px-5 py-5 lg:w-4/5">
|
||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<p class="mb-3">
|
<p class="mb-3">
|
||||||
I primarily work on websites on both the frontend and
|
I primarily work on web apps on both the frontend and
|
||||||
the backend.
|
the backend.
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-3">
|
<p class="mb-3">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue