Compare commits

...

3 Commits

Author SHA1 Message Date
Josh Patra
d59afd04e8 New Resume 2025-12-04 12:54:56 -05:00
Josh Patra
b323f146cf update vite 2025-11-25 10:14:26 -05:00
Josh Patra
90c2592e46 faster page loads 2025-11-25 10:13:19 -05:00
13 changed files with 46 additions and 27 deletions

31
package-lock.json generated
View File

@@ -9,6 +9,7 @@
"version": "0.0.1",
"devDependencies": {
"@sveltejs/adapter-auto": "^4.0.0",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.16.0",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"@tailwindcss/vite": "^4.0.0",
@@ -20,7 +21,7 @@
"svelte-eslint-parser": "^1.1.2",
"tailwindcss": "^4.0.0",
"typescript": "^5.8.3",
"vite": "^6.2.5"
"vite": "^6.4.1"
}
},
"node_modules/@ampproject/remapping": {
@@ -1039,10 +1040,20 @@
"@sveltejs/kit": "^2.0.0"
}
},
"node_modules/@sveltejs/adapter-static": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz",
"integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"@sveltejs/kit": "^2.0.0"
}
},
"node_modules/@sveltejs/kit": {
"version": "2.43.2",
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.43.2.tgz",
"integrity": "sha512-M27eBoqWmU7dEpotMGBaA1CK6Y/wK1b176mVOkrSJZwt17bk6Z1IjLQv0iuVYm7D8d1Z/I4HzJ3hSqy8auj1Sw==",
"version": "2.49.0",
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.49.0.tgz",
"integrity": "sha512-oH8tXw7EZnie8FdOWYrF7Yn4IKrqTFHhXvl8YxXxbKwTMcD/5NNCryUSEXRk2ZR4ojnub0P8rNrsVGHXWqIDtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2168,9 +2179,9 @@
}
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3224,9 +3235,9 @@
"license": "MIT"
},
"node_modules/vite": {
"version": "6.3.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz",
"integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==",
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"dev": true,
"license": "MIT",
"dependencies": {

View File

@@ -13,6 +13,7 @@
},
"devDependencies": {
"@sveltejs/adapter-auto": "^4.0.0",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.16.0",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"@tailwindcss/vite": "^4.0.0",
@@ -24,6 +25,6 @@
"svelte-eslint-parser": "^1.1.2",
"tailwindcss": "^4.0.0",
"typescript": "^5.8.3",
"vite": "^6.2.5"
"vite": "^6.4.1"
}
}

2
src/routes/+layout.ts Normal file
View File

@@ -0,0 +1,2 @@
// Enable prerendering for all pages - generates static HTML at build time
export const prerender = true;

View File

@@ -6,7 +6,7 @@
name: "Josh Patra",
role: "Computer Science & Philosophy Student",
bio: "Passionate about tackling complex problems through thoughtful and efficient solutions. I specialize in system architecture, IT infrastructure, and low-level programming in UNIX/Linux environments, with a strong foundation in C and systems-level problem-solving. I'm also experienced in Java and JavaScript, bringing versatility across both backend and frontend development. Currently pursuing a BS in Computer Science and Philosophy with a focus on systems and security.",
avatar: "/headshot_square.jpg", // Your profile image
avatar: "/headshot_square.webp",
};
// Experience Data
@@ -39,7 +39,7 @@
"Real-time updates and notifications",
"Seamless meal-swipe trading experience with a responsive UI",
],
image: "/RuSwipeShare.png",
image: "/RuSwipeShare.webp",
},
{
name: "TrackCovid19",
@@ -54,7 +54,7 @@
"Open source and easily editable in Android Studio",
"CI integrations for code quality and Gradle builds",
],
image: "/TrackCovid19.png",
image: "/TrackCovid19.webp",
},
{
name: "BlueBubbles Contribution",
@@ -68,7 +68,7 @@
"Collaborated closely with the open-source community",
"Assisted in the deployment of a major desktop app release",
],
image: "/BlueBubbles.png",
image: "/BlueBubbles.webp",
},
{
name: "Terminal Portfolio",
@@ -97,7 +97,7 @@
"Extension settings allow full customization of controls",
"GPLv3 licensed and actively maintained",
],
image: "/VideoSpeed.png",
image: "/VideoSpeed.webp",
},
{
name: "Maisie Heardle",
@@ -118,7 +118,7 @@
"Deployed on Netlify with zero data collection",
"Built to be easily modifiable for any artist",
],
image: "/MaisieHeardle.png",
image: "/MaisieHeardle.webp",
},
{
name: "Fair Housing Map",
@@ -133,7 +133,7 @@
"Dynamic legend with zoom-to-overlay functionality",
"Fully responsive single-file project for easy integration",
],
image: "/FairHousingMap.png",
image: "/FairHousingMap.webp",
},
{
name: "BeReal Export Manager",
@@ -148,7 +148,7 @@
"Fixes inconsistent BeReal timestamps using default timezone settings",
"Flexible command-line options with ExifTool integration",
],
image: "/BeRealExportManager.png",
image: "/BeRealExportManager.webp",
},
];
@@ -554,7 +554,7 @@
</p>
<div class="flex flex-wrap gap-4">
<a
href="https://cloud.joshpatra.me/s/qTfJcm3Q7cCnaYy/download"
href="https://cloud.joshpatra.me/s/7TcAf4FfwEiXcrF/preview"
target="_blank"
rel="noopener noreferrer"
class="px-4 py-2 bg-green-600 hover:bg-green-700 text-white rounded-md transition"
@@ -592,6 +592,7 @@
src={project.image}
alt={project.name}
class="w-full h-full object-cover"
loading="lazy"
/>
</div>
<div class="p-6 flex flex-col flex-grow">

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
static/BlueBubbles.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
static/FairHousingMap.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

BIN
static/MaisieHeardle.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
static/RuSwipeShare.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
static/TrackCovid19.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/VideoSpeed.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
static/headshot_square.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

View File

@@ -1,17 +1,21 @@
import adapter from '@sveltejs/adapter-auto';
import adapter from '@sveltejs/adapter-static';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://svelte.dev/docs/kit/integrations
// for more information about preprocessors
preprocess: vitePreprocess(),
kit: {
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter()
adapter: adapter({
pages: 'build',
assets: 'build',
fallback: undefined,
precompress: true, // Generates .gz and .br files for even faster serving
strict: true
}),
prerender: {
handleHttpError: 'warn'
}
}
};