changed projects

This commit is contained in:
KoenDR06 2025-11-29 01:28:43 +01:00
parent 065a59861a
commit 5b3242590b
14 changed files with 85 additions and 153 deletions

View file

@ -1,13 +0,0 @@
{
"photos": [
"001.jpg",
"002.jpg",
"003.jpg",
"004.jpg",
"005.jpg",
"006.jpg",
"007.jpg",
"008.jpg",
"009.jpg"
]
}

View file

@ -1,40 +1,31 @@
{
"projects": [
{
"name": "Raytracer",
"text": "A raytracer written completely in C++ I made for a university assignment. It's not the most advanced, but I am proud of it (and the fact the entire thing was made in 9 days), Unfortunately, the university bars me from putting the source code online.",
"photo": "/static/raytracer.webp",
"link": ""
},
{
"name": "Comedy TUI",
"text": "This is an app I built for my work in comedy shows. It's a really simple terminal UI that has a stopwatch, room for notes, and manages the music currently playing. It enables me to focus on the important parts of the job, which is great.",
"photo": "/static/mic.svg",
"link": "https://github.com/KoenDR06/ComedyTUI"
},
{
"name": "Mandelbrot",
"text": "A Mandelbrot renderer I made for a university course written in C#. It is multithreaded, has multiple color modes, and the ability to export and import renders as .mandel files, which is a file format specially created for this project. Unfortunately, the university bars me from putting the source code online.",
"photo": "/static/mandelbrot.jpg",
"link": ""
},
{
"name": "AulaControl",
"text": "This project aimed to control the auditorium at my old high school using a USB to DMX converter written in Kotlin. It played music and controlled the lights during lunchtime.",
"photo": "/static/music.svg",
"link": "https://github.com/AVTOLZ/AulaControl"
},
{
"name": "Advent Of Code",
"text": "All of my current Advent of Code solutions, written in Kotlin. Some of the worst code I've written, yet I've learnt a ton from it.",
"photo": "/static/aoc.png",
"link": "https://github.com/KoenDR06/AdventOfCode"
},
"personal-projects": [
{
"name": "NixOS Config",
"text": "The configurations for my NixOS machines. It includes configuration for all my apps, window managers, network, timezones, and more. It's also modularized so that adding a new machine with unique property is a breeze.",
"text": "The configuration for all my NixOS machines. It is fully modularized, and has a custom module for all Hyprland configuration options.",
"photo": "/static/nixos.svg",
"link": "https://github.com/KoenDR06/nix-config"
}
],
"contributed-projects": [
{
"name": "sadserver",
"text": [
"Upgraded the playbooks to be compatible with Ubuntu 24.04",
"Helped writing the playbok for a new website"
],
"photo": "/static/sadserver.svg",
"link": "https://github.com/svsticky/sadserver"
},
{
"name": "radio",
"text": [
"Added a keybind to pause to debug elements easier",
"Added a weather widget",
"Made activities show participants"
],
"photo": "/static/radio.svg",
"link": "https://github.com/svsticky/radio"
}
]
}

View file

@ -6,9 +6,10 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100;1,100&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cascadia+Code:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/styles/index.css">
<script src="/static/floater.js" defer></script>
</head>
<body>
@ -22,14 +23,14 @@
</div>
<div class="front-page">
<div class="title-card">
<h1>Koen de Ruiter</h1>
<h2>Hobby Developer</h2>
<h2>Lighting Designer</h2>
<h1>{{ title }}</h1>
{% for sub in subtitles %}
<h2>{{ sub }}</h2>
{% endfor %}
<div class="title-card__links">
<a class="title-card__link" href="https://github.com/KoenDR06" target="_blank"><img class="title-card__image" src="/static/github.svg" alt="GitHub"></a>
<a class="title-card__link" href="https://www.linkedin.com/in/koen-de-ruiter-20a9a2343/" target="_blank"><img class="title-card__image" src="/static/linkedin.svg" alt="LinkedIn"></a>
<a class="title-card__link" href="/gallery.html"><img class="title-card__image" src="/static/gallery.svg" alt="LinkedIn"></a>
</div>
</div>
</div>

5
src/pages/404.liquid Normal file
View file

@ -0,0 +1,5 @@
---
permalink: /404.html
title: 404 Not Found
subtitles:
---

View file

@ -1,43 +0,0 @@
---
permalink: /gallery.html
title: Gallery
layout: empty
---
<div class="wrapper">
<div class="slideshow">
<img alt="Photo" src="https://public.koendev.nl/{{ photos.photos[0] }}">
</div>
<div class="controls">
<button id="prev"><img src="/static/prev.svg" class="control" alt="Previous photo"></button>
<button id="next"><img src="/static/next.svg" class="control" alt="Next photo"></button>
</div>
</div>
<script>
const img = document.querySelector('.slideshow > img');
const photos = [
{% for i in photos.photos %}
'{{ i }}',
{% endfor %}
];
let i = 1;
function next() {
img.src = `https://public.koendev.nl/${photos[i++]}`;
if (i >= photos.length) {
i = 0;
}
}
function prev() {
img.src = `https://public.koendev.nl/${photos[i--]}`;
if (i < 0) {
i = photos.length-1;
}
}
document.querySelector('#next').addEventListener('click', next);
document.querySelector('#prev').addEventListener('click', prev);
</script>

View file

@ -1,10 +1,13 @@
---
permalink: /
title: Koen de Ruiter
subtitles:
- "Hobby Developer"
- "Lighting Designer"
---
<script src="/static/floater.js" defer></script>
{% for p in projects.projects %}
<h1 class="projects-header">Personally Authored</h1>
{% for p in projects.personal-projects %}
<div class="project">
<img alt="Project sample photo" class="project__photo" src="{{ p.photo }}">
@ -13,7 +16,26 @@ title: Koen de Ruiter
{% if p.link != "" %}<a href="{{ p.link }}" target="_blank"><img src="/static/github.svg"></a> {% endif %}
<h2>{{ p.name }}</h2>
</div>
<p>{{ p.text }}</p>
{% for par in p.text %}
<p>{{ par }}</p>
{% endfor %}
</div>
</div>
{% endfor %}
<h1 class="projects-header">Contributed</h1>
{% for p in projects.contributed-projects %}
<div class="project">
<img alt="Project sample photo" class="project__photo" src="{{ p.photo }}">
<div class="project__text">
<div class="project__title-line">
{% if p.link != "" %}<a href="{{ p.link }}" target="_blank"><img src="/static/github.svg"></a> {% endif %}
<h2>{{ p.name }}</h2>
</div>
{% for par in p.text %}
<p>{{ par }}</p>
{% endfor %}
</div>
</div>
{% endfor %}

View file

@ -11,5 +11,4 @@ window.addEventListener("scroll", function(){
}
beams.style.opacity = 1-2*yPos;
beams.style.display = 1-2*yPos < 0 ? 'none' : 'block'
});

View file

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg
width="32"
height="32"
viewBox="0 0 24 24"
fill="none"
version="1.1"
id="svg1"
sodipodi:docname="backward-fast-svgrepo-com(1).svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1">
<inkscape:page
x="0"
y="0"
width="24"
height="24"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<g
id="SVGRepo_iconCarrier">
<path
d="m 21.000073,5 v 14 m -9,-11.671 v 9.342 c 0,1.0657 0,1.5985 0.2185,1.8722 0.1899,0.238 0.478,0.3765 0.7826,0.3762 0.3502,-4e-4 0.7662,-0.3333 1.59841,-0.999 l 4.27702,-3.4216 c 1.06769,-0.8542 1.60153,-1.2812 1.79481,-1.7972 0.16946,-0.4524 0.16946,-0.9508 0,-1.4032 -0.19328,-0.516 -0.72712,-0.943 -1.79482,-1.79718 l -4.27701,-3.42161 c -0.83221,-0.66574 -1.24821,-0.99861 -1.59841,-0.99898 -0.3046,-3.3e-4 -0.5927,0.13813 -0.7826,0.37614 -0.2185,0.27368 -0.2185,0.80653 -0.2185,1.87223 z m -8.9999997,0 v 9.342 c 0,1.0657 0,1.5985 0.2185,1.8722 0.1899,0.238 0.478,0.3765 0.7826,0.3762 0.3502,-4e-4 0.7662,-0.3333 1.5984,-0.999 l 4.277,-3.4216 c 1.0676997,-0.8542 1.6015997,-1.2812 1.7947997,-1.7972 0.1695,-0.4524 0.1695,-0.9508 0,-1.4032 -0.1932,-0.516 -0.7271,-0.943 -1.7947997,-1.79718 l -4.277,-3.42161 c -0.8322,-0.66574 -1.2482,-0.99861 -1.5984,-0.99898 -0.3046,-3.3e-4 -0.5927,0.13813 -0.7826,0.37614 -0.2185,0.27368 -0.2185,0.80653 -0.2185,1.87223 z"
stroke="#ed8796"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
id="path1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -1,7 +0,0 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="32px" height="32px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" transform="matrix(1, 0, 0, 1, 0, 0)" stroke="#ed8796">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
<g id="SVGRepo_iconCarrier"> <path d="M3 5V19M12 7.329V16.671C12 17.7367 12 18.2695 11.7815 18.5432C11.5916 18.7812 11.3035 18.9197 10.9989 18.9194C10.6487 18.919 10.2327 18.5861 9.40049 17.9204L5.12347 14.4988C4.05578 13.6446 3.52194 13.2176 3.32866 12.7016C3.1592 12.2492 3.1592 11.7508 3.32866 11.2984C3.52194 10.7824 4.05578 10.3554 5.12348 9.50122L9.40049 6.07961C10.2327 5.41387 10.6487 5.081 10.9989 5.08063C11.3035 5.0803 11.5916 5.21876 11.7815 5.45677C12 5.73045 12 6.2633 12 7.329ZM21 7.329V16.671C21 17.7367 21 18.2695 20.7815 18.5432C20.5916 18.7812 20.3035 18.9197 19.9989 18.9194C19.6487 18.919 19.2327 18.5861 18.4005 17.9204L14.1235 14.4988C13.0558 13.6446 12.5219 13.2176 12.3287 12.7016C12.1592 12.2492 12.1592 11.7508 12.3287 11.2984C12.5219 10.7824 13.0558 10.3554 14.1235 9.50122L18.4005 6.07961C19.2327 5.41387 19.6487 5.081 19.9989 5.08063C20.3035 5.0803 20.5916 5.21876 20.7815 5.45677C21 5.73045 21 6.2633 21 7.329Z" stroke="#ed8796" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

7
src/static/radio.svg Normal file
View file

@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg fill="#7dc4e4" width="800px" height="800px" viewBox="0 -18.04 122.88 122.88" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="enable-background:new 0 0 122.88 86.79" xml:space="preserve" stroke="#7dc4e4">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
<g id="SVGRepo_iconCarrier"> <g> <path d="M2.08,0H120.8h2.08v2.08v69.2v2.08h-2.08H77.57v8.29h7.28v5.15H37.88v-5.15h7.28v-8.29H2.08H0v-2.08V2.08V0H2.08L2.08,0 L2.08,0L2.08,0z M118.73,4.15H4.15V69.2h114.57L118.73,4.15L118.73,4.15L118.73,4.15L118.73,4.15z"/> </g> </g>
</svg>

After

Width:  |  Height:  |  Size: 858 B

7
src/static/sadserver.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -3,7 +3,7 @@
body {
margin: 0;
font-family: "JetBrains Mono", serif;
font-family: "Cascadia Code", sans-serif;
background-color: vars.$bg-color;
color: vars.$primary;
overflow-x: hidden;

View file

@ -49,6 +49,14 @@ a {
color: vars.$accent-1;
}
.projects-header {
margin-top: 0;
margin-bottom: 1em;
font-size: 5em;
color: vars.$accent-2;
}
.project p {
font-size: 1.5em;
}

View file

@ -2,6 +2,7 @@ $bg-color: #24273a;
$primary: #b7bdf8;
$secondary: #b7bdf8;
$accent-1: #c6a0f6;
$accent-2: #ed8796;
$side-margin: 15vw;