most redacted. searching for more
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / test_service (push) Successful in 16s

This commit is contained in:
BOTAlex 2025-10-09 05:51:41 +02:00
parent 4205712d32
commit 2f5aa50c84
11 changed files with 240 additions and 228 deletions

View file

@ -1,4 +1,6 @@
<script lang="ts">
import re from "@ts/Redaction/Redactor";
// Left side
import NameAndImage from "./comps/NameAndImage.svelte";
import ShortProfile from "./comps/ShortProfile.svelte";
@ -7,8 +9,8 @@
// Right side
import Profile from "./comps/Profile.svelte";
import Education from "./comps/Education.svelte";
import Experience from "./comps/Experience.svelte";
import Education from "./comps/Education.svelte";
import BiggestFlex from "./comps/BiggestFlex.svelte";
import TableOfProjects from "./comps/TableOfProjects.svelte";
@ -44,8 +46,8 @@
}
</script>
<title>Zhentao Wei's CV {getFormattedDate()}</title>
<meta content="Zhentao Wei's CV" property="og:title" />
<title>{$re?.name ?? "Alex"}'s CV {getFormattedDate()}</title>
<meta content="{$re?.name ?? 'Alex'}'s CV" property="og:title" />
<meta
content="This CV is made completely with svelte + html + css + js"
property="og:description"
@ -73,7 +75,7 @@
<div class="NotoSans cv-config cv-container-container include-in-print">
<div class="cv-container sections decorations">
<div id="left-section" class="bg-grid-cv">
<div id="left-section" class="bg-grid-cv flex justify-center">
<LeftTopDecor />
<BottomRightDecor Style="pointer-events: none;" />
<div
@ -247,13 +249,10 @@
> div:last-child {
z-index: 1;
width: 100%;
width: 17.5rem;
left: 0;
display: grid;
place-items: center;
padding-top: 30mm;
padding-bottom: 30mm;
}

View file

@ -1,21 +1,27 @@
<script lang="ts">
import re from "@ts/Redaction/Redactor";
</script>
<div class="container">
<div>
<b style="text-align:left;">
Contact
</b>
<b style="text-align:left;"> Contact </b>
</div>
<div class="table-display">
<div class="table-item">
<div>Email</div>
<div>Zhen@deprived.dev</div>
<div>{$re?.email ?? "alex@deprived.dev"}</div>
</div>
<div class="table-item">
<div>Phone</div>
<div>+45 42535723</div>
<div>{$re?.phone ?? "1-800-273-8255"}</div>
</div>
<div class="table-item">
<div>LinkedIn</div>
<a href="https://www.linkedin.com/in/zhentao-wei-3a3a0a182/">Zhentao-Wei</a>
<a
href={$re?.linkedIn.link ??
"https://www.youtube.com/watch?v=PaPotS8GSpc"}
>{$re?.linkedIn.text ?? "cool video lmao"}</a
>
</div>
</div>
</div>
@ -49,8 +55,8 @@
text-decoration: underline;
}
> div, > a {
> div,
> a {
&:first-child {
width: 35%;
font-size: 4mm;

View file

@ -6,6 +6,13 @@
import EmphasysLogo from "$lib/zhen/cv-comps/EmphasysLogo.png";
import IconAndText2 from "./IconAndText2.svelte";
import re from "@src/ts/Redaction/Redactor";
import env, { initEnv } from "@src/ts/EnvHandler";
import onMount from "@src/optimizers/onMount";
onMount(() => {
initEnv();
});
</script>
<div class="container h-10">
@ -13,20 +20,22 @@
<b style="text-align:left;"> Education </b>
</div>
<div class="flex justify-center p-2 w-full">
<IconAndText2 logo={DTU_Logo}>
<b>DTU</b><br />
<IconAndText2
logo={$re?.education[0].imageId.replace("[PB]", env.POCKETBASE_URL) ?? ""}
>
<b>{$re?.education[0].name ?? ""}</b><br />
<p style="font-size: 0.5rem;">AI and data</p>
</IconAndText2>
<IconAndText2 logo={NextLogo}>
<b>Next</b><br />
<IconAndText2 logo={$re?.education[1].imageId ?? ""}>
<b>{$re?.education[0].name ?? ""}</b><br />
<p style="font-size: 0.5rem;">Computer science</p>
</IconAndText2>
<IconAndText2 logo={SasLogo}>
<b>Master class</b><br />
<p style="font-size: 0.5rem;">SAS Programming</p>
</IconAndText2>
<IconAndText2 logo={EmphasysLogo}>
<span class="font-semibold">Emphasys center</span><br />
<IconAndText2 logo={$re?.education[2].imageId ?? ""}>
<span class="font-semibold">{$re?.education[2].name ?? ""}</span><br />
<p style="font-size: 0.5rem;">VR development</p>
</IconAndText2>
</div>
@ -44,4 +53,3 @@
}
}
</style>

View file

@ -1,11 +1,5 @@
<script>
import placeholder from "$lib/zhen/cv-comps/400x400.png";
import MakerspaceLogo from "$lib/zhen/cv-comps/MakerspaceLogo.png";
import EposLogo from "$lib/zhen/cv-comps/EposLogo.png";
import KhoraLogo from "$lib/zhen/cv-comps/KhoraLogo.jpg";
import GrazperAILogo from "$lib/zhen/cv-comps/GrazperLogo.jpg";
import YaaummaLogo from "$lib/zhen/cv-comps/YaaummaLogo.png";
import re from "@src/ts/Redaction/Redactor";
import IconAndText from "./IconAndText.svelte";
</script>
@ -15,37 +9,37 @@
</div>
<div class="table">
<div class="table-item">
<IconAndText logo={YaaummaLogo}>
<IconAndText logo={$re?.experience[0].imageId ?? ""}>
<b>Full-stack</b><br />
Yaaumma<br />
{$re?.experience[0].name}<br />
<i>Feb 2025 - Now</i>
</IconAndText>
</div>
<div class="table-item">
<IconAndText logo={GrazperAILogo}>
<IconAndText logo={$re?.experience[1].imageId ?? ""}>
<b>Data annotator</b><br />
GrazperAI<br />
{$re?.experience[1].name}<br />
<i>Jul 2024 - Now</i>
</IconAndText>
</div>
<div class="table-item">
<IconAndText logo={MakerspaceLogo}>
<IconAndText logo={$re?.experience[2].imageId ?? ""}>
<b>3D printer manager</b> - Volunteer<br />
Makerspace - kildevæld Kulturcenter<br />
{$re?.experience[2].name}<br />
<i>Nov 2023 - Now</i>
</IconAndText>
</div>
<div class="table-item">
<IconAndText logo={EposLogo}>
<IconAndText logo={$re?.experience[3].imageId ?? ""}>
<b>Machine Learning Engineer</b> - Short term intern<br />
Product design department - Epos<br />
{$re?.experience[3].name}<br />
<i>Apr 2024 - Apr 2024</i>
</IconAndText>
</div>
<div class="table-item">
<IconAndText logo={KhoraLogo}>
<IconAndText logo={$re?.experience[4].imageId ?? ""}>
<b>Assistant</b> - Short term intern<br />
Khora Virtual Reality<br />
{$re?.experience[4].name}<br />
<i>Oct 2020 - Oct 2020</i>
</IconAndText>
</div>

View file

@ -5,9 +5,12 @@
export let fontSize: string = "3mm";
export let lineHeight: string = "3.1mm";
import env, { initEnv } from "@src/ts/EnvHandler";
import onMount from "@e/onMount";
onMount(() => {
imageCaption = logo.split(/(\\|\/)/g).pop();
initEnv();
});
let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
@ -15,7 +18,7 @@
<div class="container">
<img
src={logo}
src={logo.replace("[PB]", env.POCKETBASE_URL) ?? ""}
class="bg-white w-10 h-10 object-contain rounded shadow"
alt={imageCaption}
width={logoWidths}
@ -37,7 +40,5 @@
text-align: start;
}
}
</style>

View file

@ -2,10 +2,11 @@
export let logo: string;
export let logoWidths: string = "35%";
import onMount from "@e/onMount";
import env, { initEnv } from "@src/ts/EnvHandler";
onMount(() => {
imageCaption = logo.split(/(\\|\/)/g).pop();
initEnv();
});
let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
@ -14,7 +15,7 @@
<div class=" h-full container flex">
<div class="flex h-full w-6 items-center overflow-hidden rounded">
<img
src={logo}
src={logo.replace("[PB]", env.POCKETBASE_URL) ?? ""}
class=" w-6 h-6 object-cover shadow"
alt={imageCaption}
width={logoWidths}
@ -26,6 +27,3 @@
</span>
</div>
</div>

View file

@ -1,14 +1,14 @@
<script lang="ts">
import NamePlate from "./NamePlate.svelte";
import selfie from "$lib/zhen/cv-comps/VRNerd.jpg"
import zylveterSus from "$lib/zhen/cv-comps/zylveterSus.png"
import selfie from "$lib/zhen/cv-comps/VRNerd.jpg";
</script>
<div class="nameAndImageContainer">
<NamePlate />
<div class="mt-4 w-48 h-48 overflow-hidden shadow-xl rounded-lg flex justify-center items-center">
<img src={selfie} class="selfie-constraints object-cover" alt="Zhentao Wei"/>
<div
class="mt-4 w-48 h-48 overflow-hidden shadow-xl rounded-lg flex justify-center items-center"
>
<img src={selfie} class="selfie-constraints object-cover" alt="Selfie" />
</div>
</div>
@ -19,8 +19,6 @@
}
.selfie-constraints {
max-width: 100%;
}
</style>

View file

@ -1,12 +1,12 @@
<script lang="ts">
import re from "@ts/Redaction/Redactor";
</script>
<div class="name-plate-container">
<span style="text-align: center;">
<b>
Zhentao Wei
</b><br/>
<b>{$re?.name ?? "BOTAlex"}</b><br />
(He/Him)
</span>
</div>
<style>

View file

@ -1,17 +1,21 @@
<script lang="ts">
import re from "@ts/Redaction/Redactor";
</script>
<div class="container">
<div>
<b style="text-align:left;">
Other
</b>
<b style="text-align:left;"> Other </b>
</div>
<div class="table-display">
<div class="table-item">
<div>Itch.io</div>
<a href="https://github.com/MagicBOTAlex">botalex.itch.io</a>
<a href={$re?.itch.link ?? "https://www.youtube.com/watch?v=PaPotS8GSpc"}
>{$re?.itch.text ?? "The same video"}</a
>
</div>
<div class="table-item">
<div>Github</div>
<a href="https://botalex.itch.io/">@MagicBOTAlex</a>
<a href="https://github.com/MagicBOTAlex">@MagicBOTAlex</a>
</div>
</div>
</div>
@ -45,7 +49,8 @@
text-decoration: underline;
}
> div, > a {
> div,
> a {
&:first-child {
width: 35%;
font-size: 4mm;

View file

@ -1,16 +1,19 @@
<script lang="ts">
import re from "@ts/Redaction/Redactor";
</script>
<div class="short-profile-container">
<div>
<b style="text-align:left;">
Short profile
</b>
<b style="text-align:left;"> Short profile </b>
</div>
<div>
◾ Full-stack at Yaaumma <br>
◾ "AI and data" at DTU. <br>
◾ Working at <a class="underline" href="https://grazper.com/">GrazperAI</a> <br/>
◾ Volunteer at Kildevæld Makerspace.
◾ Full-stack at {$re?.shortProfileHiddenContent[0] ?? "Deprived devs"}
<br />
◾ "AI and data" at {$re?.shortProfileHiddenContent[1] ?? "some uni"}.
<br />
◾ Working at {$re?.shortProfileHiddenContent[2] ?? "somewhere"} <br />
◾ Volunteer at {$re?.shortProfileHiddenContent[3] ?? "Deprived devs"}.
</div>
</div>
<style>

View file

@ -32,7 +32,7 @@ class Redactor implements Readable<Profile | undefined> {
const unredactHash = hashResJson.response;
initEnv();
const url = `${env.POCKETBASE_URL}/api/files/redacted_content/${unredactHash}/redacted_cv_info_amhz90nhr7.json`;
const url = `${env.POCKETBASE_URL}/api/collections/redacted_content/records/${unredactHash}`;
const res = await fetch(url, {
method: "GET",
@ -41,7 +41,7 @@ class Redactor implements Readable<Profile | undefined> {
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
this.unredactedProfile = parseProfile(data);
this.unredactedProfile = parseProfile(data.json);
this.notify(); // <-- tell Svelte to update
return this.unredactedProfile;
}