Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6247137
🚀 Deployment (#12)
volcodes Apr 20, 2025
f93ddd2
🚀 Deployment (#9) (#10)
volcodes Apr 18, 2025
1221d4f
Implement canvas-based matrix animation in AppHero component
volcodes Apr 18, 2025
f0cbcd4
Refactor AppHero and projects pages for improved layout and performance
volcodes Apr 18, 2025
b3971b6
Remove INFRASTRUCTURE.md and update visual components for enhanced us…
volcodes Apr 18, 2025
8145ff6
Update styles and project details for improved layout and clarity
volcodes Apr 18, 2025
a1c5577
Update GitHub Actions workflows for deployment and testing
volcodes Apr 18, 2025
0513978
Remove push event triggers from GitHub Actions test workflow for stre…
volcodes Apr 18, 2025
ee9837f
Enhance Terraform configuration for improved error handling and caching
volcodes Apr 19, 2025
e882e1d
Enhance AppHero component with achievement image mapping
volcodes Apr 19, 2025
5e9285c
Update project description for clarity
volcodes Apr 19, 2025
f7c01f1
Enhance styling and functionality of modal and header components
volcodes Apr 19, 2025
897aded
Enhance Nuxt configuration and optimize performance
volcodes Apr 19, 2025
5bb7148
Update resume file and references in the project
volcodes Apr 19, 2025
feaee93
Fix YAML syntax errors in GitHub Actions workflow
volcodes Apr 20, 2025
c5d8b8b
Enhance deployment workflow and infrastructure configuration
volcodes Apr 20, 2025
112e248
Update S3 bucket website configuration and enable custom error respon…
volcodes Apr 20, 2025
cb16a39
Update resume PDF file to the latest version
volcodes Apr 20, 2025
4c91d2a
🚀 Deployment (#12)
volcodes Apr 20, 2025
2bd88d4
feat(error): add custom error page for handling 404 and general errors
volcodes Apr 20, 2025
9a95159
feat(error): add dedicated error page and update routing
volcodes Apr 20, 2025
faef25e
feat(error): create error.vue component and update Terraform for SPA …
volcodes Apr 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,18 @@ jobs:
run: |
npm ci
npm run generate


- name: Prepare S3 uploads
run: |
# Ensure the dist directory exists
if [ -d "dist" ]; then
# Copy index.html to each route directory
mkdir -p dist/experience dist/projects dist/contact
cp dist/index.html dist/experience/index.html
cp dist/index.html dist/projects/index.html
cp dist/index.html dist/contact/index.html
fi

- name: Sync to S3
env:
AWS_REGION: us-east-1
Expand Down
Binary file added assets/files/Mehmet_Deveci_Resume.pdf
Binary file not shown.
Binary file removed assets/files/resume.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion assets/styles/colors.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ $tooltipBg: #1f2131; // Tooltip background
$redButton: #da7164; // Red UI button
$yellowButton: #ebc063; // Yellow UI button
$greenButton: #3fdd78; // Green UI button

$blueButton: #103cfc; // Blue UI button
// Status colors
$error: #b80000; // Error state

Expand Down
3 changes: 3 additions & 0 deletions assets/styles/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -677,4 +677,7 @@ p {
font-size: 1.25rem;
line-height: 1.75rem;
}
.modal-wrapper--full {
max-height: 260px;
}
}
43 changes: 34 additions & 9 deletions components/AppHeader.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
<script setup>
import { useRoute } from 'vue-router';
import { useScroll } from '~/composables/useScroll';
import Resume from '~/assets/files/resume.pdf';
// Remove direct import and use dynamic import for the PDF
// import Resume from '~/assets/files/Mehmet_Deveci_Resume.pdf';

const route = useRoute();
const isMobileMenuActive = ref(false);
const { isFixed: isHeaderFixed } = useScroll(100);
const resumeUrl = ref(''); // Store the resume URL after it's loaded

// Preload the resume URL but don't block rendering
onMounted(() => {
// Dynamically import the resume only when needed
import('~/assets/files/Mehmet_Deveci_Resume.pdf').then((module) => {
resumeUrl.value = module.default;
});
});

// Watch for route changes to close the mobile menu
watch(
Expand All @@ -21,16 +31,29 @@ const toggleMenu = () => {

const downloadFile = () => {
try {
const link = document.createElement('a');
link.href = Resume;
link.download = 'MehmetDeveciResume.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// If resumeUrl is not loaded yet, load it first
if (!resumeUrl.value) {
import('~/assets/files/Mehmet_Deveci_Resume.pdf').then((module) => {
resumeUrl.value = module.default;
triggerDownload();
});
} else {
triggerDownload();
}
} catch (error) {
console.error('Error downloading file:', error);
}
};

// Separate function to trigger the download
const triggerDownload = () => {
const link = document.createElement('a');
link.href = resumeUrl.value;
link.download = 'MehmetDeveciMehmet_Deveci_Resume.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
</script>

<template>
Expand All @@ -54,7 +77,8 @@ const downloadFile = () => {
<NuxtLink to="/projects" :class="{ 'router-link-active': route.path.startsWith('/projects') }">Projects</NuxtLink>
<!-- <NuxtLink to="/blog">Blog</NuxtLink> -->
<NuxtLink to="/contact" exact>Contact</NuxtLink>
<button class="btn" @click="downloadFile">Download Resume</button>
<!-- Add loading="lazy" and optimize rendering priority -->
<button class="btn" loading="lazy" @click="downloadFile">Download Resume</button>
</nav>
</div>
</header>
Expand All @@ -66,7 +90,8 @@ const downloadFile = () => {

#header {
box-sizing: border-box;
box-shadow: 0px 30px 40px colors.$navyBlue;
box-shadow: 0px 30px 40px #01020d;
background: #01020d;
}

#header .container {
Expand Down
Loading