diff --git a/package.json b/package.json index 82c365d..f8dccda 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@trainto/sante": "^0.2.2", - "axios": "^1.8.4", + "axios": "^1.12.0", "date-fns": "^4.1.0", "gray-matter": "^4.0.3", "micromark": "^4.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02e6034..99550f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.2.2 version: 0.2.2(@types/react@19.0.10)(react@19.1.0) axios: - specifier: ^1.8.4 - version: 1.8.4 + specifier: ^1.12.0 + version: 1.12.0 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -671,8 +671,8 @@ packages: resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} - axios@1.8.4: - resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} + axios@1.12.0: + resolution: {integrity: sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1093,8 +1093,8 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -1110,8 +1110,8 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} fraction.js@4.3.7: @@ -2656,10 +2656,10 @@ snapshots: axe-core@4.10.3: {} - axios@1.8.4: + axios@1.12.0: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.2 + follow-redirects: 1.15.11 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -3216,7 +3216,7 @@ snapshots: flatted@3.3.3: {} - follow-redirects@1.15.9: {} + follow-redirects@1.15.11: {} for-each@0.3.5: dependencies: @@ -3227,11 +3227,12 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.2: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 fraction.js@4.3.7: {} diff --git a/public/capstec.png b/public/capstec.png new file mode 100644 index 0000000..942f63a Binary files /dev/null and b/public/capstec.png differ diff --git a/public/datasoda.jpg b/public/datasoda.jpg new file mode 100644 index 0000000..43497c3 Binary files /dev/null and b/public/datasoda.jpg differ diff --git a/public/flo.jpg b/public/flo.jpg new file mode 100644 index 0000000..a521dde Binary files /dev/null and b/public/flo.jpg differ diff --git a/public/querka.png b/public/querka.png new file mode 100644 index 0000000..6789b5c Binary files /dev/null and b/public/querka.png differ diff --git a/public/rb.png b/public/rb.png new file mode 100644 index 0000000..d99b247 Binary files /dev/null and b/public/rb.png differ diff --git a/public/tworld.jpg b/public/tworld.jpg new file mode 100644 index 0000000..28d07d2 Binary files /dev/null and b/public/tworld.jpg differ diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index f16adbe..2cbccc4 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -1,8 +1,48 @@ import Image from 'next/image'; +import Card from '@/components/common/portfolio-card'; import Contributions from '@/components/contributions'; import './terminal.css'; +const Portfolios = [ + { + title: 'Insight Lens', + desc: 'Text to Hadoop query using LLM for in-house data engineers', + img: '/querka.png', + tags: ['Node', 'Express', 'Typescript', 'React', 'Tailwind', 'MySQL', 'Redis', 'Turborepo'], + }, + { + title: 'RB Dialog', + desc: 'Total AI chatbot solution', + img: '/rb.png', + tags: ['Typescript', 'Next.js', 'React', 'AWS'], + }, + { + title: 'IOT sensor solution', + desc: 'IoT based remote facility monitoring solution', + img: '/capstec.png', + tags: ['Next.js', 'React', 'Typescript'], + }, + { + title: 'T World', + desc: "SKT's official mobile/web app", + img: '/tworld.jpg', + tags: ['Node', 'Express', 'Typescript', 'JQuery', 'Handlebar', 'Redis'], + }, + { + title: 'FLO (a.k.a. MusicMate)', + desc: 'Music streaming app', + img: '/flo.jpg', + tags: ['Java', 'Kotlin', 'Android', 'Retrofit', 'ExoPlayer', 'MVVM'], + }, + { + title: 'DataSoda', + desc: 'LTE data sharing app', + img: '/datasoda.jpg', + tags: ['Java', 'Android', 'Retrofit', 'MVP'], + }, +]; + export default function About() { return (