Commit Graph
17 Commits
Author SHA1 Message Date
mahdiarghyani bda5f86a79 feat: Implement initial portfolio website structure with components for various sections, i18n, and GitHub integration. 2025-12-13 12:59:24 +03:30
mahdiarghyani e11a59f02d style: refine language switcher width and improve PDF resume spacing
- Update LanguageSwitcher component width from 76px to 77px on small screens for better alignment
- Adjust PDF generation CSS padding from 1rem to 1.2rem for improved content spacing
- Increase section margin-bottom from 1.5rem to 1.85rem for better visual separation
- Enhance section heading margins and padding for improved readability
- Adjust work experience block spacing from 1rem to 1.15rem
- Refine bullet list spacing with margin-bottom increased to 0.38rem
- Improve line-height values across paragraphs (1.82rem) and list items (1.52rem) for better readability
- Update CSS comments to reflect readability improvements rather than page-fitting constraints
- Ensure consistent spacing between web and PDF versions while maintaining 2-page layout
2025-12-08 17:35:33 +03:30
mahdiarghyani 7c8b701426 chore: clean up test documentation and refine resume header layout
- Remove outdated SSG testing guide documentation
- Remove duplicate test-ssg.md file
- Add LinkedIn post draft for future content
- Refine ResumeHeader spacing and contact information layout
- Consolidate contact details into single line with improved gap spacing
- Add whitespace-nowrap to prevent contact info wrapping
- Update resume data with refined professional information
- Improve ResumePreview component styling and spacing
- Reduce top margin on header from mb-10 to mb-8 for better visual hierarchy
2025-12-08 10:55:31 +03:30
mahdiarghyani 12c8847447 feat(resume): enhance spacing, styling, and add markdown text parsing
- Update section spacing from mb-8 to mb-12 for improved visual hierarchy
- Refine heading padding and margins for consistent section styling
- Adjust work experience highlights spacing and add leading-relaxed for readability
- Implement markdown bold text parsing in job highlights using new composable
- Add color-coded icons in resume header (red for location, green for phone, amber for email, blue for website)
- Reorganize contact information into two lines for better layout organization
- Standardize icon sizing with explicit w-4 h-4 dimensions across header
- Create useMarkdownText composable for markdown formatting utilities
- Update resume data and PDF export endpoint to support enhanced styling
- Improve print styling consistency across all resume components
2025-12-06 14:04:45 +03:30
mahdiarghyani 73afa9f5a6 feat(resume): enhance styling and improve visual hierarchy across components
- Update section spacing from mb-6 to mb-8 for better visual separation
- Enhance heading styles with text-blue-700, increased padding (pb-1.5), and letter-spacing
- Improve typography hierarchy by changing font-semibold to font-bold for titles
- Increase spacing between list items and skill categories for better readability
- Add font-medium styling to dates and institution names for improved emphasis
- Enhance bullet point styling with explicit color and font-weight in experience highlights
- Reorganize ResumeHeader contact section with improved link styling and layout
- Promote Portfolio website link with bold styling and blue color for better visibility
- Adjust print-specific spacing to maintain consistency across screen and print layouts
- Update resume data with refined content structure
- Archive outdated resume content technical specification document
2025-12-06 11:28:45 +03:30
mahdiarghyani df9b181a90 feat(resume): enhance print styling and refactor component structure
- Add print media queries to main.css for proper PDF export formatting
- Ensure white background and light color scheme when printing
- Refactor ResumeAdditionalInfo component to display skills in categorized format
- Remove languages and certifications from additional info section
- Add ResumeLanguages component for dedicated language display
- Optimize spacing with print-specific margin utilities across all resume sections
- Improve text wrapping and hyphenation in ResumeExperience component
- Enhance ResumeHeader layout with print-optimized image sizing
- Update resume data structure to support new component organization
- Add research documentation on mentioning AI skills in resume
- Update PDF export endpoint to work with refactored component structure
- Remove outdated chat history file
2025-12-03 12:53:16 +03:30
mahdiarghyani 477a12af65 feat(resume): refine resume content and optimize additional info display
- Update professional summary to reflect accurate experience level (3+ years instead of 5+)
- Simplify job highlights for NexaPortal position to focus on key achievements
- Limit technical skills display to top 3 categories for cleaner resume layout
- Update contact information (email and portfolio URL) with current details
- Refactor ResumeAdditionalInfo component to use computed property for key skills filtering
- Modify certifications display format to show issuer and summary instead of name and issuer
- Adjust spacing in additional information section (mb-3 to mb-2 for languages)
- Add chat history documentation for resume content strategy research
- Update resume content tech spec documentation with latest guidelines
2025-12-02 15:56:37 +03:30
mahdiarghyani 4dd0ed6f2a feat(portfolio): add resume navigation and improve layout handling
- Add "View Resume" button to Hero component with responsive design (desktop/mobile variants)
- Implement gradient styling with hover animations and pulse effect on desktop button
- Wrap Hero content in flex container for proper button alignment
- Remove client:only directive from TopNav component in default layout
- Add semantic <main> tag wrapper around slot content in default layout
- Implement layoutKey computed property to force re-render on route changes
- Add scrollToTop meta and onMounted scroll reset to resume page
- Add "Back to Home" navigation button to resume page with print-safe styling
- Improve resume page background with white/dark mode support
- Add print media query to hide navigation elements during printing
- Enhance user navigation flow between home and resume pages
2025-12-02 13:20:12 +03:30
mahdiarghyani 43ad1bb5be feat(pdf): complete Epic 3 - PDF Export functionality
Story 3-1: Create PDF Generation API Route
- Add server/api/resume/pdf.get.ts with Puppeteer integration
- Support both dev (puppeteer) and prod (puppeteer-core + chromium)
- Navigate to /resume?print=true for WYSIWYG capture
- Return PDF with proper headers (Content-Type, Content-Disposition)
- Add error handling with 500 status and JSON response
- Update vercel.json with function config (memory: 1024, maxDuration: 10)

Story 3-2: Create PDF Download Composable
- Add app/composables/useResumePdf.ts
- Implement isGenerating ref for loading state
- Implement downloadPdf() with blob handling
- Add toast notifications for errors
- Revoke object URL to prevent memory leaks

Story 3-3: Connect Download Button to PDF Generation
- Update ResumeDownloadButton.vue to use useResumePdf()
- Bind :loading and :disabled to isGenerating
- Connect @click to downloadPdf
- Remove placeholder handler

Dependencies Added:
- puppeteer ^24.31.0
- puppeteer-core ^24.31.0
- @sparticuz/chromium ^141.0.0

Closes Epic 3
Closes Story 3-1, 3-2, 3-3
2025-12-01 12:20:30 +03:30
mahdiarghyani 56676771ca feat(resume): complete Epic 2 - Resume Preview Page
Epic 2: Resume Preview Page - All 5 stories completed

Story 2-1: Create Resume Page Route
- Add /resume standalone page with layout: false
- Implement print mode detection (?print=true)
- Add SEO meta tags (noindex for privacy)
- Set page title "Resume - Ali Arghyani"

Story 2-2: Create ResumePreview Container
- Add single-column A4 container (210mm × 297mm)
- Implement white background with 24px margins
- Add print styles with .no-print class
- Configure responsive layout

Story 2-3: Create Header, Summary, Experience Components
- Add ResumeHeader with profile photo, name, contact info
- Add ResumeSummary with blue uppercase section header
- Add ResumeExperience with sorted jobs and date formatting
- Add image property to ResumeBasics interface
- Integrate all components into ResumePreview

Story 2-4: Create Education & Additional Info Components
- Add ResumeEducation with date formatting
- Add ResumeAdditionalInfo with skills, languages, certifications
- Integrate components into ResumePreview

Story 2-5: Create Download Button Component
- Add ResumeDownloadButton FAB (fixed bottom-right)
- Add download icon and "Download PDF" text
- Implement print mode detection
- Add placeholder click handler for Epic 3 integration
- Responsive: text on desktop, icon-only on mobile

Additional:
- Add profile image to resume data (/img/AliProfile.webp)
- Update sprint-status.yaml: all Epic 2 stories marked done

Files Created:
- app/pages/resume.vue
- app/components/resume/ResumePreview.vue
- app/components/resume/ResumeHeader.vue
- app/components/resume/ResumeSummary.vue
- app/components/resume/ResumeExperience.vue
- app/components/resume/ResumeEducation.vue
- app/components/resume/ResumeAdditionalInfo.vue
- app/components/resume/ResumeDownloadButton.vue

Files Modified:
- app/types/resume.ts (added image property)
- app/data/resume.en.ts (added profile image)
- docs/sprint-artifacts/sprint-status.yaml (updated story statuses)
- docs/sprint-artifacts/2-1-create-resume-page-route.md (completed)
- docs/sprint-artifacts/2-2-create-resume-preview-container-component.md (completed)
- docs/sprint-artifacts/2-3-create-resume-header-main-content-components.md (completed)
- docs/sprint-artifacts/2-4-create-resume-sidebar-components.md (completed)
- docs/sprint-artifacts/2-5-create-download-button-component.md (completed)

Closes Epic 2
Closes Story 2-1, 2-2, 2-3, 2-4, 2-5
2025-12-01 11:46:46 +03:30
mahdiarghyani 6541cfec16 feat(resume): add ResumePreview container component (Story 2-2)
- Create app/components/resume/ResumePreview.vue with single-column layout
- Implement A4 container (210mm × 297mm) with 24px margins
- Add all resume sections: Header, Summary, Experience, Education, Additional Info
- Apply blue (#2563eb) and white color scheme with Inter typography
- Add print styles with .no-print class and break-inside-avoid
- Integrate useResumeData() composable for reactive data
- Update pages/resume.vue to use ResumePreview component

Closes Story 2-2
2025-12-01 11:22:16 +03:30
mahdiarghyani af8b45aadb chore: remove VueSchool promotional banner and assets 2025-11-25 02:48:56 +03:30
mahdiarghyani 5f28eaa179 feat(blog): Enhance blog content styling and readability
- Add comprehensive blog content CSS with RTL support
- Implement responsive typography and layout improvements
- Create dedicated CSS for blog prose and content styling
- Optimize code blocks, headings, and typography for better readability
- Add scroll padding and responsive design considerations
- Improve dark mode color contrast and styling
- Enhance code and blockquote styling with better visual hierarchy
2025-11-11 16:52:54 +03:30
mahdiarghyani 713bb83981 implement ssg config for blog posts in project , 2025-11-10 18:09:18 +03:30
mahdiarghyani d2333d3db2 blog mvp completed 2025-11-09 15:31:41 +03:30
mahdiarghyani c7e5eb0713 add blog to project 2025-11-09 13:56:03 +03:30
Ali Arghyani e1bc3d8adf Initial commit (secrets removed) 2025-11-04 09:09:29 +03:30