diff --git a/src/app.ts b/src/app.ts index e0c9b21..c19ab2b 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,43 +1,10 @@ import { Renderer, UiState } from './engine/renderer' import { Input } from './ui/input' import { DomOverlay } from './ui/overlay' +import { SCENES } from './data/scenes' const DPR_CAP = 2 -interface SceneContent { - title: string - subtitle: string - body: string -} - -const SCENES: SceneContent[] = [ - { - title: 'Ahmed A. Mohamed', - subtitle: 'Creative Developer & Graphics Engineer', - body: 'Welcome to my personal website, there\'s a lot going on in my life that I will be sharing here randomly over time so take a look.' - }, - { - title: 'ABOUT', - subtitle: 'Who I am', - body: 'I build creative web experiences\nusing cutting-edge graphics technology.' - }, - { - title: 'PROJECTS', - subtitle: 'Things I have built', - body: 'A collection of work exploring\nWebGPU, shaders, and generative art.' - }, - { - title: 'CONTACT', - subtitle: 'Get in touch', - body: 'Reach me at hello@example.com\nor find me on GitHub.' - }, - { - title: 'RESUME', - subtitle: 'Ahmed Mohamed', - body: 'Graphics & Systems Engineer' - } -] - export class App { private canvas: HTMLCanvasElement private renderer = new Renderer() diff --git a/src/data/resume.ts b/src/data/resume.ts index 2129453..af3a99d 100644 --- a/src/data/resume.ts +++ b/src/data/resume.ts @@ -34,9 +34,9 @@ export const RESUME: ResumeData = { { label: 'linkedin.com/in/inedited/', href: 'https://linkedin.com/in/inedited/' }, { label: 'github.com/inedited', href: 'https://github.com/inedited' }, ], - location: 'Gustav-Schwab-Str., 4, 81673 München, Germany', + location: 'München, Germany', summary: - 'Experienced software developer with a strong background in graphics programming, real-time rendering, XR development and AI engineering. Experienced in developing high-performance applications and specializing in low-level optimizations.', + 'Experienced software developer with a strong background in graphics programming, real-time rendering, XR development, Game development and AI engineering. Experienced in developing high-performance applications and specializing in low-level optimizations.', education: [ { role: 'Master of Science in Informatics: Games Engineering', diff --git a/src/data/scenes/about.ts b/src/data/scenes/about.ts new file mode 100644 index 0000000..a026f5c --- /dev/null +++ b/src/data/scenes/about.ts @@ -0,0 +1,7 @@ +import type { SceneContent } from './index' + +export const about: SceneContent = { + title: 'ABOUT', + subtitle: 'Who I am', + body: 'My name is Ahmed Alaa Ahmed Mohamed (aka Djoser/Djosen/Inedited), I\'m a passionate creative software engineer and game developer. ', +} diff --git a/src/data/scenes/contact.ts b/src/data/scenes/contact.ts new file mode 100644 index 0000000..c4f3e97 --- /dev/null +++ b/src/data/scenes/contact.ts @@ -0,0 +1,7 @@ +import type { SceneContent } from './index' + +export const contact: SceneContent = { + title: 'CONTACT', + subtitle: 'Get in touch', + body: 'Reach me at hello@example.com\nor find me on GitHub.', +} diff --git a/src/data/scenes/hero.ts b/src/data/scenes/hero.ts new file mode 100644 index 0000000..98dce8b --- /dev/null +++ b/src/data/scenes/hero.ts @@ -0,0 +1,7 @@ +import type { SceneContent } from './index' + +export const hero: SceneContent = { + title: 'Ahmed A. Mohamed', + subtitle: 'Creative Developer & Graphics Engineer', + body: 'Welcome to my personal website, there\'s a lot going on in my life that I will be sharing here randomly over time so take a look.', +} diff --git a/src/data/scenes/index.ts b/src/data/scenes/index.ts new file mode 100644 index 0000000..eea1abc --- /dev/null +++ b/src/data/scenes/index.ts @@ -0,0 +1,19 @@ +// ---------- types ---------- + +export interface SceneContent { + title: string + subtitle: string + body: string +} + +// ---------- scene files ---------- + +import { hero } from './hero' +import { about } from './about' +import { projects } from './projects' +import { contact } from './contact' +import { resume } from './resume' + +// ---------- scene registry ---------- + +export const SCENES: SceneContent[] = [hero, about, projects, contact, resume] diff --git a/src/data/scenes/projects.ts b/src/data/scenes/projects.ts new file mode 100644 index 0000000..5a094d0 --- /dev/null +++ b/src/data/scenes/projects.ts @@ -0,0 +1,7 @@ +import type { SceneContent } from './index' + +export const projects: SceneContent = { + title: 'PROJECTS', + subtitle: 'Things I have built', + body: 'A collection of work exploring\nWebGPU, shaders, and generative art.', +} diff --git a/src/data/scenes/resume.ts b/src/data/scenes/resume.ts new file mode 100644 index 0000000..0859923 --- /dev/null +++ b/src/data/scenes/resume.ts @@ -0,0 +1,7 @@ +import type { SceneContent } from './index' + +export const resume: SceneContent = { + title: 'RESUME', + subtitle: 'Ahmed Mohamed', + body: 'Graphics & Systems Engineer', +} diff --git a/src/ui/overlay.ts b/src/ui/overlay.ts index 7a8caf2..00247b9 100644 --- a/src/ui/overlay.ts +++ b/src/ui/overlay.ts @@ -1,11 +1,6 @@ import { RESUME, ResumeData, ResumeEntry, SkillGroup } from '../data/resume' import { PROJECTS, CATEGORIES, ProjectPage, ProjectCategory } from '../data/projects/index' - -interface SceneContent { - title: string - subtitle: string - body: string -} +import type { SceneContent } from '../data/scenes' export interface OverlayCallbacks { onNavClick: (scene: number) => void