Files
pages/src/routes/projects/projects2.ts

398 lines
11 KiB
TypeScript
Raw Normal View History

export interface Project {
category: ProjectCategory;
id: string;
directLink?: string; // for linking somewhere directly instead of a project page
banner: string;
2026-04-08 12:59:26 +02:00
bannerAlt: string;
title: string;
subtitle: string;
description: string;
2026-04-08 12:59:26 +02:00
isOngoing: boolean; // whether the project is currently active (true) or a past project (false)
date: string;
status: ProjectStatus;
links: Link[]; // may pass an empty array
};
export interface Link {
text: string;
link: string;
}
export enum ProjectCategory {
DRAWINGS = "drawings",
GAMES = "games",
ELECTRONICS = "electronics",
MUSIC = "music",
APPS = "apps",
MISC = "misc",
}
export enum ProjectStatus {
ACTIVE = "active",
INACTIVE = "inactive",
ABANDONED = "abandoned",
FINISHED = "finished",
EOL = "end-of-life", // end of life
}
/**
* Returns static codes that can be used to reference same-name CSS classes
* without relying on display text.
*/
export function getStatusCode(project: Project): String {
switch (project.status) {
case ProjectStatus.ACTIVE:
return "act";
case ProjectStatus.INACTIVE:
return "ina";
case ProjectStatus.ABANDONED:
return "aba";
case ProjectStatus.FINISHED:
return "fin";
case ProjectStatus.EOL:
return "eol";
}
}
export const projects: Project[] = [
{
category: ProjectCategory.MISC,
id: "lightyears-font",
banner: "banner.webp",
bannerAlt: "A rainbow-like holographic effect produced by bending a reflective sheet of cardboard.",
title: "LIGHTYEARS font",
subtitle: "stylised font",
description: "",
isOngoing: false,
date: "March 2026",
status: ProjectStatus.FINISHED,
links: [
{
text: "download the font",
link: "https://files.natconf.dev/public/lightyears.woff2",
}
],
},
{
category: ProjectCategory.DRAWINGS,
id: "firstmonth",
banner: "banner.webp",
bannerAlt: "Several Faber-Castell Polychromos colour pencils lined up with markings next to them in the same colour on a sheet of paper.",
title: "My First Month Drawing",
subtitle: "self-imposed drawing challenge",
description: "",
isOngoing: false,
date: "February March 2026",
status: ProjectStatus.FINISHED,
links: [
],
},
{
category: ProjectCategory.ELECTRONICS,
id: "3ds-usb-c",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "3DS USB-C mod",
subtitle: "DIY charging port mod",
description: "",
isOngoing: false,
date: "October 2024",
status: ProjectStatus.FINISHED,
links: [
],
},
{
category: ProjectCategory.ELECTRONICS,
id: "deej0461",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "deej0461",
subtitle: "PC companion audio source controller",
description: "",
isOngoing: false,
date: "August 2024",
status: ProjectStatus.FINISHED,
links: [
],
},
{
category: ProjectCategory.GAMES,
id: "projectn5",
directLink: "/projects/projectn5",
banner: "/projects/projectn5/banner2.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Homesick",
subtitle: "",
description: "",
isOngoing: true,
date: "September 2023 now",
status: ProjectStatus.ACTIVE,
links: [
{
text: "view the <b>development log</b>",
link: "/projects/projectn5",
},
{
text: "play an <b>old web build</b> (developed until 2025-05-16)",
link: "https://apps.natconf.dev/projectn5",
},
{
text: "download the <b>old Windows builds</b>",
link: "https://files.natconf.dev/public/projectn5",
},
],
},
{
category: ProjectCategory.GAMES,
id: "magician",
banner: "/projects/magician/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Magician",
subtitle: "Online Multiplayer Card Game",
description: "",
isOngoing: false,
date: "July 2025",
status: ProjectStatus.ABANDONED,
links: [
{
text: "view the latest <b>Magician</b> build",
link: "https://apps.natconf.dev/magician",
},
],
},
{
category: ProjectCategory.GAMES,
id: "projektike",
banner: "/projects/projektike/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Projektike",
subtitle: "PvP Game",
description: "",
isOngoing: false,
date: "August 2024 May 2025",
status: ProjectStatus.ABANDONED,
links: [
],
},
{
category: ProjectCategory.GAMES,
id: "swordsnstuff",
banner: "/projects/swordsnstuff/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Swords & Stuff",
subtitle: "Unity 2D RPG",
description: "",
isOngoing: false,
date: "August 2023",
status: ProjectStatus.ABANDONED,
links: [
{
text: "play <b>Swords & Stuff</b>",
link: "https://apps.natconf.dev/swordsnstuff",
},
],
},
{
category: ProjectCategory.GAMES,
id: "tads",
banner: "/projects/tads/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Totally Accurate Dating Simulator",
subtitle: "HTML Text Adventure",
description: "",
isOngoing: false,
date: "August 2023",
status: ProjectStatus.FINISHED,
links: [
{
text: "play <b>TADS 1</b>",
link: "https://apps.natconf.dev/tads/1",
},
{
text: "play <b>TADS 2</b>",
link: "https://apps.natconf.dev/tads/2",
},
],
},
{
category: ProjectCategory.ELECTRONICS,
id: "daisyfm",
2026-04-08 12:59:26 +02:00
banner: "banner.webp",
bannerAlt: "Close-up of Daisy, focussed on the effect knobs",
title: "Daisy FM Synth",
subtitle: "Electro-Smith Daisy-based FM synth",
description: "",
isOngoing: false,
date: "July September 2024",
status: ProjectStatus.FINISHED,
links: [
{
text: "get the <b>PCB and STL files</b>",
link: "https://files.natconf.dev/public/daisyfm/",
},
{
text: "view the code files on <b>Codeberg</b>",
link: "https://codeberg.org/denizk0461/daisy-fm-synth",
},
],
},
{
category: ProjectCategory.APPS,
id: "weserplaner",
banner: "/projects/weserplaner/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "WeserPlaner",
subtitle: "University Timetable & Canteen Info App",
description: "",
isOngoing: false,
date: "April 2023 January 2024",
status: ProjectStatus.EOL,
links: [
{
text: "view on <b>Codeberg</b>",
link: "https://codeberg.org/denizk0461/weserplaner/",
},
{
text: "link to the former <b>Google Play</b> store page",
link: "https://play.google.com/store/apps/details?id=com.denizk0461.weserplaner",
},
],
},
{
category: ProjectCategory.APPS,
id: "textbasic",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Text Basic",
subtitle: "Extremely Basic Text Widget App",
description: "",
isOngoing: false,
date: "May November 2023",
status: ProjectStatus.EOL,
links: [
{
text: "view on <b>Codeberg</b>",
link: "https://codeberg.org/denizk0461/text-basic/",
},
{
text: "link to the former <b>Google Play</b> store page",
link: "https://play.google.com/store/apps/details?id=com.denizk0461.textbasic",
},
],
},
{
category: ProjectCategory.APPS,
id: "qwark",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Qwark Grade Log",
subtitle: "Grade Logging App",
description: "",
isOngoing: false,
date: "June 2019 March 2020",
status: ProjectStatus.EOL,
links: [
{
text: "view the Android app source code on <b>GitHub</b>",
link: "https://github.com/denizk0461/qwark",
},
],
},
{
category: ProjectCategory.APPS,
id: "avhplan",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "AvH-Vertretungsplan",
subtitle: "Substitution Plan App",
description: "",
isOngoing: false,
date: "April 2019 March 2020",
status: ProjectStatus.EOL,
links: [
{
text: "view the Android app source code on <b>GitHub</b>",
link: "https://github.com/denizk0461/avh-substitution-plan",
},
{
text: "view the iOS app source code on <b>GitHub</b>",
link: "https://github.com/denizk0461/avh-plan-ios",
},
],
},
{
category: ProjectCategory.MUSIC,
id: "dreamworld",
banner: "/projects/dreamworld/banner.webp",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Dreamworld",
subtitle: "My First Album",
description: "",
isOngoing: false,
date: "July 2019 September 2021",
status: ProjectStatus.FINISHED,
links: [
{
text: "listen & download on <b>copyparty</b>",
link: "https://files.natconf.dev/public/my_tracks/Dreamworld/",
},
],
},
{
category: ProjectCategory.MUSIC,
id: "anewbeginning",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "A New Beginning",
subtitle: "",
description: "",
isOngoing: false,
date: "May August 2018",
status: ProjectStatus.FINISHED,
links: [
{
text: "listen & download on <b>copyparty</b>",
link: "https://files.natconf.dev/public/my_tracks/A%20New%20Beginning/",
},
],
},
{
category: ProjectCategory.MUSIC,
id: "soundcloud",
banner: "",
2026-04-08 12:59:26 +02:00
bannerAlt: "",
title: "Soundcloud",
subtitle: "Demo Dump & Archive",
description: "",
isOngoing: false,
date: "",
status: ProjectStatus.INACTIVE,
links: [
{
text: "demo dump on <b>Soundcloud</b>",
link: "https://soundcloud.com/denizk0461",
},
{
text: "archive on <b>Soundcloud</b>",
link: "https://soundcloud.com/djd4rkn355",
},
],
},
];