From 092ecb5f40d711ab0180376f60fca366a0711e38 Mon Sep 17 00:00:00 2001 From: kamycoding Date: Wed, 12 Aug 2026 01:29:25 +0200 Subject: [PATCH 1/2] fix: finalize portfolio submission --- public/i18n/de.json | 13 ++++---- public/i18n/en.json | 13 ++++---- src/app/app.routes.ts | 1 - src/app/features/projects/projects.data.ts | 2 +- .../testimonials/testimonials.data.ts | 6 ++-- .../testimonials/testimonials.model.ts | 2 +- .../pages/home/sections/contact/contact.html | 1 + .../home/sections/contact/contact.spec.ts | 4 +++ .../pages/home/sections/contact/contact.ts | 8 ++++- .../project-detail/project-detail.spec.ts | 32 +++++++++++++------ 10 files changed, 51 insertions(+), 31 deletions(-) diff --git a/public/i18n/de.json b/public/i18n/de.json index dd59e9e..9aeab56 100644 --- a/public/i18n/de.json +++ b/public/i18n/de.json @@ -2,8 +2,7 @@ "pageTitles": { "notFound": "Seite nicht gefunden | KamyCoding", "legalNotice": "Impressum | KamyCoding", - "privacyPolicy": "Datenschutzerklärung | KamyCoding", - "projectDetail": "Projekt | KamyCoding" + "privacyPolicy": "Datenschutzerklärung | KamyCoding" }, "nav": { "about": "Über mich", @@ -83,19 +82,19 @@ "join": { "description": "Ein vom Kanban-System inspirierter Task-Manager. Aufgaben per Drag-and-drop erstellen und organisieren sowie Personen und Kategorien zuweisen.", "imageAlt": "Der Task-Manager Join auf einem Laptop", - "implementation": "Kurzer Text über meine Rolle oder den Workflow in diesem Projekt. Er zeigt, wie ich mein Wissen strukturiert und selbstständig oder im Team eingesetzt habe.", + "implementation": "Ich habe die Aufgabenverwaltung mit Angular, TypeScript und Firebase umgesetzt. Aufgaben lassen sich erstellen, per Drag-and-drop organisieren sowie Personen und Kategorien zuweisen.", "duration": "5 Wochen" }, "elPolloLoco": { "description": "Ein objektorientiertes Jump-and-Run-Spiel. Hilf Pepe, Münzen und Tabasco-Salsa zu sammeln, um gegen das verrückte Huhn anzutreten.", "imageAlt": "Wüstenszene aus El Pollo Loco mit Pepe", - "implementation": "Kurzer Text über meine Rolle oder den Workflow in diesem Projekt. Er zeigt, wie ich mein Wissen strukturiert und selbstständig oder im Team eingesetzt habe.", + "implementation": "Ich habe das objektorientierte Spiel mit JavaScript, HTML und CSS umgesetzt. Die Spielmechanik umfasst Laufen, Springen, Werfen, das Sammeln von Münzen und Salsa sowie den Kampf gegen das finale Huhn.", "duration": "3 Wochen" }, "dabubble": { "description": "Dieser Slack-Klon erleichtert die Kommunikation und Zusammenarbeit im Team mit einer intuitiven Oberfläche, Echtzeitnachrichten und übersichtlichen Channels.", "imageAlt": "Team-Messaging-Oberfläche von DABubble", - "implementation": "Kurzer Text über meine Rolle oder den Workflow in diesem Projekt. Er zeigt, wie ich mein Wissen strukturiert und selbstständig oder im Team eingesetzt habe.", + "implementation": "Ich habe die Messaging-Oberfläche mit JavaScript, HTML und CSS umgesetzt, mit Fokus auf Echtzeitunterhaltungen und eine übersichtliche Channel-Struktur.", "duration": "4 Wochen" } } @@ -125,8 +124,8 @@ "role": "Frontend Developer" }, "mariaSchaefer": { - "quote": "Die Zusammenarbeit mit Kamyar war eine große Freude. Er versteht es, Teammitglieder zu motivieren und zu ermutigen, ihre bestmögliche Arbeit zu zeigen, und bringt stets neue Impulse in das Brainstorming ein. Für das Wohlbefinden der Gruppe hatte er immer ein offenes Ohr, war hilfsbereit und brachte außerdem viel Humor mit.", - "role": "Frontend Developer" + "quote": "Kamyar hat meine Portfolio-Website umgesetzt und den gesamten Prozess sehr professionell und sorgfältig begleitet. Er war geduldig, präzise und immer darauf fokussiert, die passende Lösung für meine Wünsche zu finden. Ich kann die Zusammenarbeit mit ihm auf jeden Fall weiterempfehlen.", + "role": "Product Designer" }, "davidBraun": { "quote": "Kamyar war bei DA ein hervorragender Teamkollege. Sein positiver Einsatz und seine Bereitschaft, Verantwortung zu übernehmen, haben wesentlich dazu beigetragen, dass wir unsere Ziele erreicht haben.", diff --git a/public/i18n/en.json b/public/i18n/en.json index 9752039..ed69e7c 100644 --- a/public/i18n/en.json +++ b/public/i18n/en.json @@ -2,8 +2,7 @@ "pageTitles": { "notFound": "Page Not Found | KamyCoding", "legalNotice": "Legal Notice | KamyCoding", - "privacyPolicy": "Privacy Policy | KamyCoding", - "projectDetail": "Project | KamyCoding" + "privacyPolicy": "Privacy Policy | KamyCoding" }, "nav": { "about": "About me", @@ -83,19 +82,19 @@ "join": { "description": "Task manager inspired by the Kanban System. Create and organize tasks using drag and drop functions, assign users and categories.", "imageAlt": "Join task manager displayed on a laptop", - "implementation": "Short text that describes your role or the workflow for this specific project. Let a recruiter know more about your knowledge and ability to work independently or collaboratively in a structured way.", + "implementation": "I implemented the task-management interface with Angular, TypeScript, and Firebase. Tasks can be created, organized with drag and drop, and assigned to users and categories.", "duration": "5 weeks" }, "elPolloLoco": { "description": "Jump, run and throw game based on an object-oriented approach. Help Pepe find coins and tabasco salsa to fight the crazy hen.", "imageAlt": "El Pollo Loco desert game scene with Pepe", - "implementation": "Short text that describes your role or the workflow for this specific project. Let a recruiter know more about your knowledge and ability to work independently or collaboratively in a structured way.", + "implementation": "I implemented the object-oriented game with JavaScript, HTML, and CSS. Its mechanics include running, jumping, throwing, collecting coins and salsa, and fighting the final hen.", "duration": "3 weeks" }, "dabubble": { "description": "This Slack clone transforms team communication and collaboration with an intuitive interface, real-time messaging, and clear channel organization.", "imageAlt": "DABubble team messaging interface", - "implementation": "Short text that describes your role or the workflow for this specific project. Let a recruiter know more about your knowledge and ability to work independently or collaboratively in a structured way.", + "implementation": "I built the messaging interface with JavaScript, HTML, and CSS, focusing on real-time conversations and clear channel organization.", "duration": "4 weeks" } } @@ -125,8 +124,8 @@ "role": "Frontend Developer" }, "mariaSchaefer": { - "quote": "It was a great pleasure to work with Kamyar. He knows how to push and encourage team members to present the best work possible, always adding something to brainstorm. Regarding the well-being of group members, he was always present and available to listen and help others, with a great sense of humor as well.", - "role": "Frontend Developer" + "quote": "Kamyar built my portfolio website and handled the whole process with great care and professionalism. He was patient, precise, and always focused on finding the right solution for what I needed. I’d definitely recommend working with him to anyone who values both a smooth process and a great final result.", + "role": "Product Designer" }, "davidBraun": { "quote": "Kamyar was a top team colleague at DA. His positive commitment and willingness to take on responsibility made a significant contribution to us achieving our goals.", diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index c3f0f84..5ecf98b 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -26,7 +26,6 @@ export const routes: Routes = [ path: 'projects/:slug', component: ProjectDetail, canActivate: [projectDetailGuard], - data: { titleKey: 'pageTitles.projectDetail' }, }, { path: '**', diff --git a/src/app/features/projects/projects.data.ts b/src/app/features/projects/projects.data.ts index 22679b8..032e46a 100644 --- a/src/app/features/projects/projects.data.ts +++ b/src/app/features/projects/projects.data.ts @@ -38,7 +38,7 @@ export const PORTFOLIO_PROJECTS = [ durationKey: 'projects.items.elPolloLoco.duration', technologies: [TECHNOLOGIES.javascript, TECHNOLOGIES.html, TECHNOLOGIES.css], githubUrl: 'https://github.com/kamycoding/El-Pollo-Loco', - liveUrl: 'https://kamycoding.github.io/El-Pollo-Loco/', + liveUrl: 'https://elpolloloco.kamycoding.com', variant: 'standard', }, { diff --git a/src/app/features/testimonials/testimonials.data.ts b/src/app/features/testimonials/testimonials.data.ts index 5b9f52e..5931e7b 100644 --- a/src/app/features/testimonials/testimonials.data.ts +++ b/src/app/features/testimonials/testimonials.data.ts @@ -25,11 +25,11 @@ export const TESTIMONIALS = [ paperVariant: 'paper-01', }, { - id: 'maria-schaefer', + id: 'sogand-asari', quoteKey: 'testimonials.items.mariaSchaefer.quote', - name: 'Maria Schäfer', + name: 'Sogand Asari', roleKey: 'testimonials.items.mariaSchaefer.role', - linkedinUrl: 'https://www.linkedin.com/', + linkedinUrl: 'https://www.linkedin.com/in/sogandasari/', paperVariant: 'paper-02', }, { diff --git a/src/app/features/testimonials/testimonials.model.ts b/src/app/features/testimonials/testimonials.model.ts index 0b899db..326e889 100644 --- a/src/app/features/testimonials/testimonials.model.ts +++ b/src/app/features/testimonials/testimonials.model.ts @@ -1,4 +1,4 @@ -export type TestimonialId = 'tobias-lange' | 'maria-schaefer' | 'david-braun'; +export type TestimonialId = 'tobias-lange' | 'sogand-asari' | 'david-braun'; export type TestimonialPaperVariant = 'paper-01' | 'paper-02'; diff --git a/src/app/pages/home/sections/contact/contact.html b/src/app/pages/home/sections/contact/contact.html index 6b9302f..30b2e8c 100644 --- a/src/app/pages/home/sections/contact/contact.html +++ b/src/app/pages/home/sections/contact/contact.html @@ -90,6 +90,7 @@ >