Commit Graph
79 Commits
Author SHA1 Message Date
mahdium b6a875b0d9 Minor improvements 2025-12-26 14:18:02 +03:30
mahdium b818cf8226 Merge remote-tracking branch 'upstream/main' into feature/sync-with-upstream 2025-12-26 13:28:08 +03:30
mahdiarghyani 010d8bd8ea feat: add cursor pointer style to buttons and toggle elements for better UX 2025-12-15 14:59:04 +03:30
mahdiarghyani d4cf695911 hot-fix : currect some link references 2025-12-15 14:18:13 +03:30
mahdiarghyani 950ba8eac5 hot-fix: add spacing before GitHub link in footer component 2025-12-15 14:12:02 +03:30
mahdiarghyani 98600904ed Merge pull request #9 from aliarghyani/visualEdit
Visual edit
2025-12-15 13:35:30 +03:30
mahdiarghyani 45b98f442e feat: add current month and year tag to resume filename generation 2025-12-15 13:32:08 +03:30
mahdiarghyani 7c566b5752 feat: update theme color usage and enhance button styles across components 2025-12-15 13:15:12 +03:30
mahdiarghyani c5b8b6773b Merge pull request #8 from aliarghyani/visualEdit
feat: update caching strategy for blog routes to prevent stale HTML i…
2025-12-14 14:14:01 +03:30
mahdiarghyani 4141593875 feat: update caching strategy for blog routes to prevent stale HTML issues 2025-12-14 14:09:03 +03:30
Ali Arghyani 897dfd4693 Merge pull request #7 from aliarghyani/visualEdit
some blog issues fixed
2025-12-14 13:47:14 +03:30
mahdiarghyani c6b09fabc9 feat: enhance blog components, improve routing, and add clean script for build process 2025-12-14 13:37:51 +03:30
mahdiarghyani 25aa41bcb8 feat(blog): update SEO metadata and improve RSS feed handling for blog posts 2025-12-14 11:56:37 +03:30
Ali Arghyani 8557244076 Merge pull request #6 from aliarghyani/visualEdit
feat(blog): enhance content styling and add new blog post with sharin…
2025-12-13 18:07:10 +03:30
mahdiarghyani 13031465e3 feat(blog): enhance content styling and add new blog post with sharing capabilities
- Refine blog typography with optimized font sizes and line heights for better readability
- Adjust heading margins and sizes (h1-h4) for improved visual hierarchy
- Implement custom bullet styling with primary color indicators for lists
- Add highlighted key phrases styling with left border accent for emphasized content
- Create new BlogShare component for social sharing functionality
- Add Callout and PullQuote content components for enhanced blog formatting
- Introduce resume-button.css for improved button styling
- Update blog post template with slug-based routing support
- Add new blog post "Career Change: From Huawei to Frontend" in English and Persian
- Enhance portfolio components (Hero, Skills, AIStack, etc.) with refined styling
- Improve RTL language support with better spacing and alignment for Persian content
- Add blog hero image asset (big-career-change.webp)
- Update i18n translations for new blog content and UI improvements
- Optimize code block and inline code styling with CSS variables for consistency
- Refine blockquote styling with better contrast and spacing
2025-12-13 18:05:39 +03:30
Ali Arghyani eb6a4adef3 update github username 2025-12-13 13:33:33 +03:30
Ali Arghyani a1bbf1222d Merge pull request #5 from aliarghyani/feature/resume-builder
enhanced resume builder functionality - some visual bugs fixed
2025-12-13 13:17:05 +03:30
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 47d5f61f7d Merge pull request #4 from aliarghyani/feature/resume-builder
style: refine language switcher width and improve PDF resume spacing
2025-12-08 17:37:12 +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
mahdium b5f6b7cb3c Added TorrentMax github links 2025-12-08 13:38:29 +03:30
mahdiarghyani 19ceff2102 Adjust width of language switcher component 2025-12-08 11:25:24 +03:30
mahdiarghyani 0712f327c6 Merge pull request #3 from aliarghyani/feature/resume-builder
Feature/resume builder
2025-12-08 11:07:43 +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
mahdium 4dba66eba9 Added vercel analytics 2025-12-04 18:45:15 +03:30
mahdiarghyani 193e2b6e6d feat: Add resume update system and cleanup docs
- Add RESUME-STANDARDS.md (constitution), RESUME-UPDATE-RULES.md (entry point)
- Add resume sync automation and Kiro steering
- Update resume: add Vuetify, Cypress, VueUse; mention Artemis Clinics
- Archive old specs and cleanup docs/ folder
- Single entry point for AI-agnostic resume updates
2025-12-04 13:07:18 +03:30
mahdiarghyani 0076910a32 chore(vercel): remove PDF generation function configuration
- Remove serverless function memory and duration settings for PDF endpoint
- Simplify vercel.json configuration by eliminating unused function constraints
- Keep rewrites configuration intact for analytics script routing
- Reduces configuration complexity as PDF generation may be handled differently
2025-12-03 15:13:32 +03:30
mahdiarghyani abdadd5b14 feat(resume): update professional summary with improved metrics
- Update development acceleration metric from 40% to up to 50%
- Reflect more accurate performance improvement claims based on recent project outcomes
- Enhance credibility of AI-first engineering approach in professional positioning
2025-12-03 15:10:27 +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
mahdium 2033b996e0 Improved README.md 2025-12-03 11:55:51 +03:30
mahdium 15e1a1bea1 Update profile description 2025-12-03 11:53:36 +03:30
mahdium f89b57493b Added more projects 2025-12-03 11:43:40 +03:30
mahdium 224fb2e149 Removed unused images 2025-12-03 11:24:19 +03:30
mahdium fe4f3cf3bd Removed old icons 2025-12-03 11:14:49 +03:30
mahdium 08b0eaba62 Remove unused files 2025-12-03 10:41:52 +03:30
mahdium d32f61037d Removed unused and old code 2025-12-03 10:35:23 +03:30
mahdium 72e3df0536 Removed unused code 2025-12-03 08:44:21 +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 9c40914d6a feat(resume): complete Epic 4 - Resume Content Strategy and Guidelines
- Update resume data with comprehensive professional summary and optimized work experience highlights
- Add resume content tech-spec and strategy documentation for 2025 best practices
- Create resume guidelines reference document for content consistency
- Enhance PDF composable with openPdf preview function alongside downloadPdf
- Expand CSS banner hiding rules to block certificates.dev promotional content
- Add research documentation on resume best practices and ATS optimization
- Update i18n translations for resume content in English and Persian
- Include sample Ali Arghyani resume PDF template in design assets
- Refactor resume.en.ts with improved professional positioning and achievement metrics
- Update API route documentation for PDF generation story artifacts
- Establish foundation for Epic 4 sprint planning with tech specifications
2025-12-02 12:54:26 +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 3ecd1616e0 feat(resume): add PDF download functionality with server endpoint
- Add useResumePdf composable for client-side PDF download handling
- Implement /api/resume/pdf server endpoint for PDF generation
- Add puppeteer and @sparticuz/chromium dependencies for PDF rendering
- Add puppeteer-core for headless browser automation
- Update Vercel configuration to support PDF generation
- Include loading state management and error handling with toast notifications
- Implement blob download with automatic filename generation
- Add memory leak prevention through object URL revocation
2025-12-01 12:19:00 +03:30
mahdiarghyani 6571c83025 docs(epic-3): add story context XML files for all stories
Story Context Generation Complete:
- 3-1: PDF Generation API Route context (8 ACs, Puppeteer interfaces)
- 3-2: PDF Download Composable context (8 ACs, blob handling)
- 3-3: Download Button Integration context (8 ACs, UButton binding)

Each context includes:
- Acceptance criteria mapping
- Relevant code artifacts and snippets
- Interface definitions
- Constraints and dependencies
- Test ideas per AC

Status Updates:
- All 3 stories: drafted → ready-for-dev

Files Created:
- docs/sprint-artifacts/3-1-create-pdf-generation-api-route.context.xml
- docs/sprint-artifacts/3-2-create-pdf-download-composable.context.xml
- docs/sprint-artifacts/3-3-connect-download-button-to-pdf-generation.context.xml

Files Modified:
- docs/sprint-artifacts/sprint-status.yaml
- docs/sprint-artifacts/3-1-create-pdf-generation-api-route.md
- docs/sprint-artifacts/3-2-create-pdf-download-composable.md
- docs/sprint-artifacts/3-3-connect-download-button-to-pdf-generation.md

Ready for: Dev Agent implementation
2025-12-01 12:09:58 +03:30
mahdiarghyani 9d05829503 docs(epic-3): add tech spec and story drafts for PDF Export
Epic 3: PDF Export - Planning Phase Complete

Tech Spec:
- Create tech-spec-epic-3.md with 10 acceptance criteria
- Define API contracts, workflows, and NFRs
- Document dependencies (puppeteer, @sparticuz/chromium)
- Add Vercel deployment configuration
- Include traceability mapping and test strategy

Story Drafts:
- 3-1: Create PDF Generation API Route (8 ACs, Puppeteer integration)
- 3-2: Create PDF Download Composable (8 ACs, download logic)
- 3-3: Connect Download Button to PDF Generation (8 ACs, integration)

Sprint Status Updates:
- epic-3: backlog → contexted
- All 3 stories: backlog → drafted

Files Created:
- docs/sprint-artifacts/tech-spec-epic-3.md
- docs/sprint-artifacts/3-1-create-pdf-generation-api-route.md
- docs/sprint-artifacts/3-2-create-pdf-download-composable.md
- docs/sprint-artifacts/3-3-connect-download-button-to-pdf-generation.md

Files Modified:
- docs/sprint-artifacts/sprint-status.yaml

Ready for: Story context generation or implementation
2025-12-01 12:04:37 +03:30
mahdiarghyani b5d29295a7 docs(retrospective): add Epic 2 retrospective report
Epic 2 Retrospective - Resume Preview Page

Summary:
- 5/5 stories completed (100%)
- All FR5-9, FR15-25 covered
- Modular component architecture delivered
- Successfully adapted to single-column layout change

What Went Well:
- Modular component design enabled easy maintenance
- Rapid architecture adaptation (two-column → single-column)
- Type safety throughout with zero TypeScript errors
- Print mode detection ready for Epic 3

Challenges & Lessons:
- Mid-epic architecture change due to late UX validation
  → Lesson: Run UX validation before tech spec creation
- Missing image property in interface
  → Lesson: Review design templates when creating interfaces
- Inconsistent story context usage
  → Lesson: Decide policy - always or never for small epics

Technical Debt: None

Ready for Epic 3:
- All prerequisites met
- Action items identified for PDF generation
- Dependencies and risks documented

Files:
- docs/sprint-artifacts/epic-2-retrospective.md (created)
- docs/sprint-artifacts/sprint-status.yaml (updated: epic-2-retrospective: completed)

Closes Epic 2 Retrospective
2025-12-01 11:52:34 +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 171cac9101 feat(epic-2): implement resume page route and design validation
- Create `app/pages/resume.vue` as standalone page with print mode detection
- Add page metadata configuration with SEO noindex tag and custom title
- Implement `isPrintMode` computed property for print parameter handling
- Add placeholder content for ResumePreview component integration
- Create design validation report identifying critical mismatches between tech spec and design template
- Update Story 2.1 task completion status and add dev notes
- Clean up context XML files from sprint artifacts documentation
- Update tech spec and sprint status documentation for Epic 2 alignment
- Story 2.1 now marked as complete with all acceptance criteria met
2025-12-01 11:17:49 +03:30