diff --git a/public/Quiz 1.jpeg b/public/Quiz 1.jpeg
new file mode 100644
index 0000000..dd70c04
Binary files /dev/null and b/public/Quiz 1.jpeg differ
diff --git a/public/Quiz 4.jpeg b/public/Quiz 4.jpeg
new file mode 100644
index 0000000..b0c3770
Binary files /dev/null and b/public/Quiz 4.jpeg differ
diff --git a/public/Quiz 5.jpeg b/public/Quiz 5.jpeg
new file mode 100644
index 0000000..2cf2e2d
Binary files /dev/null and b/public/Quiz 5.jpeg differ
diff --git a/public/classified clean.png b/public/classified clean.png
new file mode 100644
index 0000000..6c0b9d2
Binary files /dev/null and b/public/classified clean.png differ
diff --git a/public/classified.png b/public/classified.png
new file mode 100644
index 0000000..f3daba2
Binary files /dev/null and b/public/classified.png differ
diff --git a/public/classified2 cleaned.png b/public/classified2 cleaned.png
new file mode 100644
index 0000000..f539f54
Binary files /dev/null and b/public/classified2 cleaned.png differ
diff --git a/public/classified2.png b/public/classified2.png
new file mode 100644
index 0000000..073bdb8
Binary files /dev/null and b/public/classified2.png differ
diff --git a/src/app/projects/projects.component.html b/src/app/projects/projects.component.html
index 5241678..bb8b434 100644
--- a/src/app/projects/projects.component.html
+++ b/src/app/projects/projects.component.html
@@ -5,28 +5,35 @@
+ duration-300 group relative fade-in-up bg-white/5 border-none flex flex-col">

-
-
+
{{project.title}}
{{project.year}}
-
{{project.description}}
-
-
-
-
+
+
{{technology}}
+ class="bg-gray-800/55 text-white text-sm sm:text-md px-1 sm:px-2 py-1 rounded-md">{{technology}}
+
+
{{project.description}}
+
+
-
\ 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 b2893ca..372b45e 100644
--- a/src/app/projects/projects.component.ts
+++ b/src/app/projects/projects.component.ts
@@ -1,12 +1,18 @@
import { CommonModule } from '@angular/common';
import { AfterViewInit, Component } from '@angular/core';
+// export enum Link { Source, Demo, Link }
+
interface Project {
title: string;
year: string;
description: string;
image: string;
technologies: string[];
+ links: {address: string, type: 'source' | 'demo' | 'link'}[];
+ // source?: string;
+ // demo?: string;
+ // link?: string;
}
@Component({
@@ -26,7 +32,7 @@ export class ProjectsComponent {
'\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 3.jpeg',
+ image: 'Quiz 5.jpeg',
technologies: [
'Angular',
// 'Sass',
@@ -37,6 +43,9 @@ export class ProjectsComponent {
'Nginx',
'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',
@@ -55,7 +64,7 @@ export class ProjectsComponent {
// '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: 'Top Secret White.png',
+ image: 'classified2 cleaned.png',
technologies: [
'Angular',
'Sass',
@@ -71,6 +80,7 @@ export class ProjectsComponent {
'Scrum',
'Kanban'
],
+ links: [],
});
this.projects.push({
title: 'AI supplier identification',
@@ -85,6 +95,7 @@ export class ProjectsComponent {
'Python',
'Machine Learning',
],
+ links: [],
});
this.projects.push({
title: 'Seabed modification tool',
@@ -93,28 +104,13 @@ export class ProjectsComponent {
'A tool 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'],
- });
- this.projects.push({
- title: 'Flow Field pathfinding algorithm',
- year: '2018',
- 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. \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",
- technologies: ['Java', 'Swing', 'IntelliJ'],
- });
- this.projects.push({
- title: 'Jelly Rescue',
- 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',
- technologies: ['C++', 'SFML2.0', 'Platformer', 'Visual Studio'],
+ links: [],
});
this.projects.push({
title: 'Microcontroller Tetris',
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.',
+ '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',
technologies: [
'C',
@@ -123,22 +119,52 @@ export class ProjectsComponent {
'Dot-matrix displays',
'Group project',
],
+ links: [{type:'source', address: 'https://github.com/Ninjaws/Microcontrollers-Tetris'}, {type:'demo', address:'https://youtu.be/UnNgNyXE9ZY'}]
+ // source: 'https://github.com/Ninjaws/Microcontrollers-Tetris',
+ // demo: 'https://youtu.be/UnNgNyXE9ZY'
});
this.projects.push({
title: 'Augmented Reality game',
year: '2019',
description:
- 'The game uses computer vision to track a red ball, which serves as the controller. A system has been created for the rigging and animations for the player character and the opponents. The math for OpenGL is written by hand.',
+ 'The game uses computer vision to track a red ball, which serves as the controller. A system has been created for the rigging and animations for the player character and the opponents. The math for OpenGL is written by hand.',
image: 'AR Game.png',
technologies: ['C++', 'OpenCV', 'OpenGL', 'IrrKlang', 'Group project'],
+ links: [{type:'source', address:'https://github.com/Ninjaws/AR-Applicatie'}, {type:'demo', address: 'https://youtu.be/fHJQNnytocc'}]
+ // source: 'https://github.com/Ninjaws/AR-Applicatie',
+ // demo: 'https://youtu.be/fHJQNnytocc'
});
this.projects.push({
- title: 'Your dream project here?',
- year: '',
+ title: 'Flow Field pathfinding algorithm',
+ year: '2018',
description:
- '',
- image: 'Empty.png',
- technologies: [],
+ '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. \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",
+ 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'}]
+
+ // source: 'https://github.com/Ninjaws/2D-Computer-Graphics/tree/master/EindOpdracht/Pathfinding',
+ // demo: 'https://youtu.be/7rvWAWpkYus'
});
+ this.projects.push({
+ title: 'Jelly Rescue',
+ 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',
+ technologies: ['C++', 'SFML2.0', 'Platformer', 'Visual Studio'],
+ links: [{type:'source', address:'https://github.com/Ninjaws/JellyGame'}, {type:'demo', address: 'https://youtu.be/jCUnqbxuySI'}]
+
+ // source: 'https://github.com/Ninjaws/JellyGame',
+ // demo: 'https://youtu.be/jCUnqbxuySI'
+ });
+ // this.projects.push({
+ // title: 'Your dream project here?',
+ // year: '',
+ // description:
+ // '',
+ // image: 'Empty.png',
+ // technologies: [],
+ // });
}
}
diff --git a/src/styles.scss b/src/styles.scss
index f5883b1..1d0553f 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -46,23 +46,23 @@ html {
/* Custom scrollbar styles for Sass */
-::-webkit-scrollbar {
- width: 4px;
-}
+// ::-webkit-scrollbar {
+// width: 4px;
+// }
-::-webkit-scrollbar-track {
- background: rgb(61, 61, 61);
-}
+// ::-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 {
+// background:rgb(116, 116, 116);//rgb(226, 147, 0);
+// border-radius: 20px;
+// transition: background 0.3s;
+// }
-::-webkit-scrollbar-thumb:hover {
- background: #357ABD;
-}
+// ::-webkit-scrollbar-thumb:hover {
+// background: #357ABD;
+// }
// scrollbar-width: thin;
// scrollbar-color: #4A90E2 #f0f0f0;
\ No newline at end of file