Add new documents and images to the public directory
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m32s
All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m32s
- Added essays: qui-sumus-existential-dread.pdf and licencjat.pdf - Added scripts: loop.pdf - Added images: DSC_1283.avif, GAK00015.avif, GAK00017.avif, GAK00041.avif, GAK00042.avif, painter.avif, parasitic-god-1.avif, parasitic-god-2.avif, parasitic-god-3.avif, parasitic-god-4.avif, parasitic-god-5.avif, spanish-inq-1.avif, spanish-inq-2.avif, spanish-inq-3.avif, spanish-inq-4.avif, typing-game-1.avif, typing-game-2.avif
This commit is contained in:
130
lib/data.ts
130
lib/data.ts
@@ -1,4 +1,4 @@
|
||||
import { Skill, Job, Project } from "@/lib/types";
|
||||
import { Skill, Job, Project, FunZoneItem, Writing, Photo } from "@/lib/types";
|
||||
|
||||
export const skills: Skill[] = [
|
||||
{
|
||||
@@ -192,7 +192,15 @@ export const projects: Project[] = [
|
||||
github_url: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts",
|
||||
visit_url: "https://thoughts.gabrielkaszewski.dev/",
|
||||
download_url: null,
|
||||
technologies: ["Rust", "Axum", "Next.js", "TailwindCSS", "ActivityPub", "PostgreSQL", "NATS"],
|
||||
technologies: [
|
||||
"Rust",
|
||||
"Axum",
|
||||
"Next.js",
|
||||
"TailwindCSS",
|
||||
"ActivityPub",
|
||||
"PostgreSQL",
|
||||
"NATS",
|
||||
],
|
||||
thumbnails: ["/images/thoughts.avif"],
|
||||
},
|
||||
{
|
||||
@@ -232,7 +240,12 @@ export const projects: Project[] = [
|
||||
visit_url: "https://gamejolt.com/games/spanish-inquisition/425125",
|
||||
download_url: null,
|
||||
technologies: ["C#", "Unity"],
|
||||
thumbnails: [],
|
||||
thumbnails: [
|
||||
"/images/spanish-inq-1.avif",
|
||||
"/images/spanish-inq-2.avif",
|
||||
"/images/spanish-inq-3.avif",
|
||||
"/images/spanish-inq-4.avif",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
@@ -333,7 +346,13 @@ export const projects: Project[] = [
|
||||
visit_url: "https://gabrielkaszewski.itch.io/parasitic-god",
|
||||
download_url: null,
|
||||
technologies: ["Godot", "C#"],
|
||||
thumbnails: [],
|
||||
thumbnails: [
|
||||
"/images/parasitic-god-1.avif",
|
||||
"/images/parasitic-god-2.avif",
|
||||
"/images/parasitic-god-3.avif",
|
||||
"/images/parasitic-god-4.avif",
|
||||
"/images/parasitic-god-5.avif",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
@@ -466,21 +485,13 @@ export const projects: Project[] = [
|
||||
github_url: "https://git.gabrielkaszewski.dev/GKaszewski/pocket-chords",
|
||||
visit_url: "https://chords.gabrielkaszewski.dev/",
|
||||
download_url: null,
|
||||
technologies: [
|
||||
"Rust",
|
||||
"Axum",
|
||||
"React",
|
||||
"TailwindCSS",
|
||||
"SQLite",
|
||||
"Docker",
|
||||
],
|
||||
technologies: ["Rust", "Axum", "React", "TailwindCSS", "SQLite", "Docker"],
|
||||
thumbnails: [],
|
||||
},
|
||||
{
|
||||
id: 24,
|
||||
name: "Movies Diary",
|
||||
short_description:
|
||||
"Self-hosted movie logging with ActivityPub federation.",
|
||||
short_description: "Self-hosted movie logging with ActivityPub federation.",
|
||||
description:
|
||||
"A self-hosted, server-side rendered movie logging system with a full REST API. Built entirely in Rust with no JavaScript in the HTML interface — just HTML forms and an RSS feed.\n\n**Highlights:**\n- Immutable, append-only viewing ledger (tracks re-watches)\n- ActivityPub federation — follow remote users, broadcast reviews as federated Notes, shared inbox, paginated outbox\n- Full-text search via SQLite FTS5 or PostgreSQL tsvector + GIN\n- Background poster fetching, TMDB enrichment (cast, crew, genres, box office), image conversion to AVIF/WebP\n- File importer: CSV, TSV, JSON, XLSX from Letterboxd, IMDb, etc.\n- Dual database support: SQLite and PostgreSQL\n- Terminal UI client\n- OpenAPI documentation (Swagger UI + Scalar)\n\n**Technical details:**\n- **Architecture:** Hexagonal (Ports & Adapters) with DDD\n- **Backend:** Rust, Axum, SQLx\n- **Templates:** Askama (SSR)\n- **Event bus:** SQLite/PostgreSQL queue or NATS JetStream\n- **Federation:** ActivityPub (AP)",
|
||||
category: "Web",
|
||||
@@ -515,3 +526,94 @@ export const projects: Project[] = [
|
||||
thumbnails: [],
|
||||
},
|
||||
];
|
||||
|
||||
export const funZoneItems: FunZoneItem[] = [
|
||||
{
|
||||
id: "painter",
|
||||
name: "Painter",
|
||||
tagline: "collaborative pixel canvas",
|
||||
thumbnail: "/images/painter.avif",
|
||||
play_url: "https://painter.gabrielkaszewski.dev/",
|
||||
},
|
||||
{
|
||||
id: "wordle",
|
||||
name: "Wordle",
|
||||
tagline: "guess the word",
|
||||
thumbnail: null,
|
||||
play_url: "https://wordle.gabrielkaszewski.dev/",
|
||||
},
|
||||
{
|
||||
id: "parasitic-god",
|
||||
name: "Parasitic God",
|
||||
tagline: "cosmic horror game jam entry",
|
||||
thumbnail: "/images/parasitic-god-1.avif",
|
||||
play_url: "https://gabrielkaszewski.itch.io/parasitic-god",
|
||||
},
|
||||
{
|
||||
id: "broberry",
|
||||
name: "Broberry",
|
||||
tagline: "action-packed game jam entry",
|
||||
thumbnail: null,
|
||||
play_url: "https://gabrielkaszewski.itch.io/broberry",
|
||||
},
|
||||
{
|
||||
id: "spanish-inquisition",
|
||||
name: "Spanish Inquisition",
|
||||
tagline: "spanish vocabulary game with a twist",
|
||||
thumbnail: "/images/spanish-inq-1.avif",
|
||||
play_url: "https://gabrielkaszewski.itch.io/spanish-inquisition",
|
||||
},
|
||||
{
|
||||
id: "typing-game",
|
||||
name: "Typing game",
|
||||
tagline: "typing game with a twist",
|
||||
thumbnail: "/images/typing-game-1.avif",
|
||||
play_url: "https://gabrielkaszewski.itch.io/typing-game",
|
||||
},
|
||||
];
|
||||
|
||||
export const writings: Writing[] = [
|
||||
{
|
||||
title: "Qui Sumus — Existential Dread",
|
||||
kind: "essay",
|
||||
url: "/documents/essays/qui-sumus-existential-dread.pdf",
|
||||
},
|
||||
{
|
||||
title: "Loop",
|
||||
kind: "script",
|
||||
url: "/documents/scripts/loop.pdf",
|
||||
},
|
||||
];
|
||||
|
||||
export const photos: Photo[] = [
|
||||
{
|
||||
src: "/images/camera/DSC_1283.avif",
|
||||
alt: "Sunlight filtering through a pine forest onto a grassy path",
|
||||
width: 2000,
|
||||
height: 1335,
|
||||
},
|
||||
{
|
||||
src: "/images/camera/GAK00015.avif",
|
||||
alt: "Glass dome greenhouse glowing at dusk against a blue sky",
|
||||
width: 1333,
|
||||
height: 2000,
|
||||
},
|
||||
{
|
||||
src: "/images/camera/GAK00017.avif",
|
||||
alt: "Small waterfall cascading over rocks beneath a wooden bridge in a park",
|
||||
width: 2000,
|
||||
height: 1333,
|
||||
},
|
||||
{
|
||||
src: "/images/camera/GAK00041.avif",
|
||||
alt: "Neptune Fountain on Długi Targ with tourists and Gdańsk townhouses",
|
||||
width: 1333,
|
||||
height: 2000,
|
||||
},
|
||||
{
|
||||
src: "/images/camera/GAK00042.avif",
|
||||
alt: "Neptune Fountain statue against the Artus Court and colorful facades in Gdańsk",
|
||||
width: 1333,
|
||||
height: 2000,
|
||||
},
|
||||
];
|
||||
|
||||
3
lib/feature-flags.ts
Normal file
3
lib/feature-flags.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export const featureFlags = {
|
||||
funZone: process.env.NEXT_PUBLIC_SHOW_FUN_ZONE === "true",
|
||||
};
|
||||
25
lib/types.ts
25
lib/types.ts
@@ -28,9 +28,30 @@ export interface Project {
|
||||
description: string;
|
||||
technologies: string[];
|
||||
thumbnails: string[];
|
||||
category: 'Web' | 'Mobile' | 'Desktop' | 'Api' | 'Game';
|
||||
category: "Web" | "Mobile" | "Desktop" | "Api" | "Game";
|
||||
github_url?: string | null;
|
||||
visit_url?: string | null;
|
||||
download_url?: string | null;
|
||||
commercial?: boolean;
|
||||
}
|
||||
}
|
||||
|
||||
export interface FunZoneItem {
|
||||
id: string;
|
||||
name: string;
|
||||
tagline: string;
|
||||
thumbnail: string | null;
|
||||
play_url: string;
|
||||
}
|
||||
|
||||
export interface Writing {
|
||||
title: string;
|
||||
kind: "essay" | "script" | "other" | "novel";
|
||||
url: string;
|
||||
}
|
||||
|
||||
export interface Photo {
|
||||
src: string;
|
||||
alt: string;
|
||||
width: number;
|
||||
height: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user