most redacted. searching for more
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / test_service (push) Successful in 16s
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / test_service (push) Successful in 16s
This commit is contained in:
parent
4205712d32
commit
2f5aa50c84
11 changed files with 240 additions and 228 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue