diff --git a/public/classified2 cleaned.png b/public/Classified.png similarity index 100% rename from public/classified2 cleaned.png rename to public/Classified.png diff --git a/public/Empty.png b/public/Empty.png deleted file mode 100644 index 37fbfb1..0000000 Binary files a/public/Empty.png and /dev/null differ diff --git a/public/black2.png b/public/Flow Field Pathfinding Algorithm.png similarity index 100% rename from public/black2.png rename to public/Flow Field Pathfinding Algorithm.png diff --git a/public/Jelly Game - demo.png b/public/Jelly Game.png similarity index 100% rename from public/Jelly Game - demo.png rename to public/Jelly Game.png diff --git a/public/Setup 3.png b/public/Microcontroller Tetris.png similarity index 100% rename from public/Setup 3.png rename to public/Microcontroller Tetris.png diff --git a/public/Quiz 1.jpeg b/public/Quiz 1.jpeg deleted file mode 100644 index dd70c04..0000000 Binary files a/public/Quiz 1.jpeg and /dev/null differ diff --git a/public/Quiz 2.jpeg b/public/Quiz 2.jpeg deleted file mode 100644 index d120241..0000000 Binary files a/public/Quiz 2.jpeg and /dev/null differ diff --git a/public/Quiz 3.jpeg b/public/Quiz 3.jpeg deleted file mode 100644 index dc5d4f3..0000000 Binary files a/public/Quiz 3.jpeg and /dev/null differ diff --git a/public/Quiz 4.jpeg b/public/Quiz 4.jpeg deleted file mode 100644 index b0c3770..0000000 Binary files a/public/Quiz 4.jpeg and /dev/null differ diff --git a/public/Quiz 5.jpeg b/public/Quiz.jpeg similarity index 100% rename from public/Quiz 5.jpeg rename to public/Quiz.jpeg diff --git a/public/Supplier Recognition - Demo.png b/public/Supplier Recognition.png similarity index 100% rename from public/Supplier Recognition - Demo.png rename to public/Supplier Recognition.png diff --git a/public/Top Secret White.png b/public/Top Secret White.png deleted file mode 100644 index aa1b0ac..0000000 Binary files a/public/Top Secret White.png and /dev/null differ diff --git a/public/black.png b/public/black.png deleted file mode 100644 index 4f3c2d5..0000000 Binary files a/public/black.png and /dev/null differ diff --git a/public/black2-1.png b/public/black2-1.png deleted file mode 100644 index 8078bbc..0000000 Binary files a/public/black2-1.png and /dev/null differ diff --git a/public/black2-2.png b/public/black2-2.png deleted file mode 100644 index 140f036..0000000 Binary files a/public/black2-2.png and /dev/null differ diff --git a/public/black2-3.png b/public/black2-3.png deleted file mode 100644 index 021b97f..0000000 Binary files a/public/black2-3.png and /dev/null differ diff --git a/public/black2-7.png b/public/black2-7.png deleted file mode 100644 index 38ca68d..0000000 Binary files a/public/black2-7.png and /dev/null differ diff --git a/public/black9.png b/public/black9.png deleted file mode 100644 index 7e7960e..0000000 Binary files a/public/black9.png and /dev/null differ diff --git a/public/classified clean.png b/public/classified clean.png deleted file mode 100644 index 6c0b9d2..0000000 Binary files a/public/classified clean.png and /dev/null differ diff --git a/public/classified.png b/public/classified.png deleted file mode 100644 index f3daba2..0000000 Binary files a/public/classified.png and /dev/null differ diff --git a/public/classified2.png b/public/classified2.png deleted file mode 100644 index 073bdb8..0000000 Binary files a/public/classified2.png and /dev/null differ diff --git a/public/code-slash-t.ico b/public/code-slash-t.ico deleted file mode 100644 index 7d4dbe0..0000000 Binary files a/public/code-slash-t.ico and /dev/null differ diff --git a/public/code-slash-teal.ico b/public/code-slash-teal.ico deleted file mode 100644 index 03e423d..0000000 Binary files a/public/code-slash-teal.ico and /dev/null differ diff --git a/public/code-slash.ico b/public/code-slash.ico deleted file mode 100644 index f0e931f..0000000 Binary files a/public/code-slash.ico and /dev/null differ diff --git a/src/app/about/about.component.html b/src/app/about/about.component.html index 7335e8d..8a235aa 100644 --- a/src/app/about/about.component.html +++ b/src/app/about/about.component.html @@ -20,14 +20,6 @@ Contact details can be found below. Cheers!

- - - -
-
@@ -30,5 +25,4 @@
-
- \ No newline at end of file + \ No newline at end of file diff --git a/src/app/project-card/project-card.component.html b/src/app/project-card/project-card.component.html index a1acf4f..6c8fe27 100644 --- a/src/app/project-card/project-card.component.html +++ b/src/app/project-card/project-card.component.html @@ -1,5 +1,3 @@ - -
{{project.title}} @@ -13,11 +11,8 @@ {{technology}}
- -
- + +

-

diff --git a/src/app/project-card/project-card.component.ts b/src/app/project-card/project-card.component.ts index 81a0ad1..99b3b8e 100644 --- a/src/app/project-card/project-card.component.ts +++ b/src/app/project-card/project-card.component.ts @@ -3,7 +3,6 @@ import { ChangeDetectorRef, Component, ElementRef, - HostListener, Input, ViewChild, } from '@angular/core'; @@ -15,9 +14,6 @@ export interface Project { image: string; technologies: string[]; links: { address: string; type: 'source' | 'demo' | 'link' }[]; - // source?: string; - // demo?: string; - // link?: string; } @Component({ @@ -38,20 +34,18 @@ export class ProjectCardComponent { ngAfterViewInit() { this.checkIfTruncated(); + this.cdr.detectChanges(); } checkIfTruncated() { const element = this.descriptionElement.nativeElement; - // console.log(this.fullHeight); this.isTruncated = element.scrollHeight > element.offsetHeight; - // this.updateTextHeight(); } getTextHeight() { return `${this.descriptionElement.nativeElement.scrollHeight}px`; } - // Toggle expand/collapse toggleExpand() { this.isExpanded = !this.isExpanded; if (this.isExpanded) { @@ -59,6 +53,6 @@ export class ProjectCardComponent { } else { this.isTruncated = true; } - this.cdr.detectChanges(); // Notify Angular of the changes after toggling + this.cdr.detectChanges(); } } diff --git a/src/app/projects/projects.component.html b/src/app/projects/projects.component.html index a6d7952..55b6902 100644 --- a/src/app/projects/projects.component.html +++ b/src/app/projects/projects.component.html @@ -6,9 +6,4 @@
- - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/projects/projects.component.ts b/src/app/projects/projects.component.ts index 12fb420..fe2df8d 100644 --- a/src/app/projects/projects.component.ts +++ b/src/app/projects/projects.component.ts @@ -16,15 +16,13 @@ export class ProjectsComponent { title: 'Quiz App', year: '2024', description: - // 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + 'A little quiz game, using questions from the Open Trivia Database. This API only allows one request per 5 seconds. ' + '\n\nTo combat this, the app collects all available questions in its own database. ' + 'To ensure the data stays fresh, it repeats this process every night, by creating a backup table, and then swapping it with the active one once it is finished. ' + '\n\nDocker is used for the development and deployment. The app is self-hosted, the link can be found below.', - image: 'Quiz 5.jpeg', + image: 'Quiz.jpeg', technologies: [ 'Angular', - // 'Sass', 'Tailwind', 'Spring Boot', 'Docker', @@ -33,8 +31,6 @@ export class ProjectsComponent { 'Gitea Workflows' ], links: [{type: 'source', address: 'https://github.com/Ninjaws/Quiz'}, {type: 'link', address: 'https://quiz.ianvink.nl'}] - // source: 'https://github.com/Ninjaws/Quiz', - // link: 'https://quiz.ianvink.nl' }); this.projects.push({ title: 'Mobile-First ERP Solution', @@ -50,10 +46,7 @@ export class ProjectsComponent { …and much more. \nThe entire application is multilingual, and each component is designed to be fully responsive, ensuring a smooth experience on both large and small screens. \nThe application undergoes thorough testing, including unit tests, integration tests, and end-to-end tests. Deployments are rolled out in stages to catch potential bugs before going live.`, - - // 'A full-fledged ERP solution, with modules for declarations (such as Cost, Time, Travel, Sickleave and Holidays), HRM (Managing employees), Sales (Relations, Contacts, Leads, Deals, Aftersales), Projectmanagement, Administration (Permission management, User management), and many more. ' + - // '\n\nThe entire application is multi-lingual, with a system developed to enable multiple people add translations without causes merge errors. Every component is crafted in such a way that it supports both big and small screens. The application is throuroughly tested, with unittests, integrationtests and end-to-end tests. Deployments happen in stages, to ensure bugs are caught before going live.', - image: 'classified2 cleaned.png', + image: 'Classified.png', technologies: [ 'Angular', 'Sass', @@ -76,7 +69,7 @@ export class ProjectsComponent { year: '2021', description: 'An application that combines key-value detection and multiclass-classification, to identify the correct supplier for an invoice. It uses online machine learning to keep improving itself as the user provides feedback.', - image: 'Supplier Recognition - Demo.png', + image: 'Supplier Recognition.png', technologies: [ 'Angular (Typescript, HTML, CSS)', 'ASP.NET Core (C#)', @@ -92,7 +85,6 @@ export class ProjectsComponent { description: 'A tool for editing the seabed mesh in a maritime simulator. The collision map is automatically updated, enabling ships to interact with the modified terrain.'+ '\n\nThis tool allows instructors to quickly create new environments for the training of ship crews.', - // to edit the seabed mesh of a maritime simulator. The collisionmap is also updated, to allow ships to interact with this update terrain. \nThis tool allows instructors to rapidly create new terrain, for training shipcrews.', image: 'Seabed Modification.png', technologies: ['Unigine (C#)', 'AGX Dynamics (C++)', 'Qt Creator'], links: [], @@ -102,7 +94,7 @@ export class ProjectsComponent { year: '2019', description: 'Tetris written in C, visualized on dot-matrix displays, with the score visible on a 7-segment display and a menu system visible on the ATMega128.', - image: 'Setup 3.png', + image: 'Microcontroller Tetris.png', technologies: [ 'C', 'ATmega128', @@ -127,7 +119,7 @@ export class ProjectsComponent { description: 'The application uses a vector field to direct particles towards a target. The vectors are calculated using a heatmap, which centers on the position of the target.'+ '\n\nThe particles collide with the environment, which can be edited and saved/loaded using the GUI.', - image: 'black2.png', //'Particle Flow - Demonstration.png', //"black.png", + image: 'Flow Field Pathfinding Algorithm.png', technologies: ['Java', 'Swing', 'IntelliJ'], links: [{type:'source', address:'https://github.com/Ninjaws/2D-Computer-Graphics/tree/master/EindOpdracht/Pathfinding'}, {type:'demo', address: 'https://youtu.be/7rvWAWpkYus'}] }); @@ -136,7 +128,7 @@ export class ProjectsComponent { year: '2015', description: 'A platformer written in C++, with saving/loading, tile- and collisionmaps, enemy AI, collectibles and state management to switch between multiple screens (game, menu, victory, etc.)', - image: 'Jelly Game - demo.png', + image: 'Jelly Game.png', technologies: ['C++', 'SFML2.0', 'Platformer', 'Visual Studio'], links: [{type:'source', address:'https://github.com/Ninjaws/JellyGame'}, {type:'demo', address: 'https://youtu.be/jCUnqbxuySI'}] }); diff --git a/src/app/skills/skills.component.ts b/src/app/skills/skills.component.ts index d254c82..6da5f52 100644 --- a/src/app/skills/skills.component.ts +++ b/src/app/skills/skills.component.ts @@ -16,7 +16,6 @@ export class SkillsComponent { frontend: Category = { title: 'Frontend', skills: [] }; backend: Category = { title: 'Backend', skills: [] }; devOps: Category = { title: 'DevOps', skills: [] }; - // other: Category = {title: "Other", skills: []}; categories: Category[] = []; @@ -61,7 +60,6 @@ export class SkillsComponent { 'PowerShell', 'Wireguard', ); - // this.other.skills.push("MS Office", "Machine Learning", "Computer Vision"); this.categories.push(this.frontend, this.backend, this.devOps); } } diff --git a/src/styles.scss b/src/styles.scss index 1d0553f..82bf79b 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -41,28 +41,4 @@ html { } .fade-in-left-ani { animation: fadeInLeft 0.95s ease-out; -} - - - -/* Custom scrollbar styles for Sass */ -// ::-webkit-scrollbar { -// width: 4px; -// } - -// ::-webkit-scrollbar-track { -// background: rgb(61, 61, 61); -// } - -// ::-webkit-scrollbar-thumb { -// background:rgb(116, 116, 116);//rgb(226, 147, 0); -// border-radius: 20px; -// transition: background 0.3s; -// } - -// ::-webkit-scrollbar-thumb:hover { -// background: #357ABD; -// } - -// scrollbar-width: thin; -// scrollbar-color: #4A90E2 #f0f0f0; \ No newline at end of file +} \ No newline at end of file