1
3
Create Resume Data Composable
ready-for-dev
2025-11-30
BMAD Story Context Workflow
docs/sprint-artifacts/1-3-create-resume-data-composable.md
developer
a composable to access resume data
components can easily consume the data reactively
Create app/composables/useResumeData.ts file
Import dependencies and export useResumeData function
Implement resume reactive reference
Implement formatDate helper (YYYY-MM to "Jan 2023")
Implement getFullName helper
Implement getPdfFilename helper
Return composable interface
Verify TypeScript compilation
File exists at app/composables/useResumeData.ts
Exports useResumeData() function
Returns resume as reactive reference
Returns formatDate() that converts "2023-01" to "Jan 2023"
Returns getFullName() that returns full name
Returns getPdfFilename() that returns "FirstName_LastName_Resume.pdf"
docs/architecture.md
Resume Export Feature - Architecture Document
Implementation Patterns - Composable Organization
Composables use camelCase with 'use' prefix. Use computed for derived values. Error handling pattern with useToast.
docs/epics.md
Resume Export Feature - Epic Breakdown
Story 1.3: Create Resume Data Composable
Composable returns resume ref, formatDate, getFullName, getPdfFilename helpers.
docs/sprint-artifacts/tech-spec-epic-1.md
Epic Technical Specification: Resume Data and Types
APIs and Interfaces - Composable Interface
useResumeData returns: resume (ComputedRef), formatDate(date: string): string, getFullName(): string, getPdfFilename(): string
app/data/resume.en.ts
data
resumeData
MUST import resumeData from this file. Created in Story 1.2.
app/types/resume.ts
types
Resume
Type reference for resume data structure.
app/composables
directory
composables pattern
Reference for existing composable patterns in project.
vue
^3.5.x
computed for reactive references
nuxt
^4.1.3
Auto-imports composables
File must be at app/composables/useResumeData.ts
Function name: useResumeData (camelCase with 'use' prefix)
Use computed for derived values
Input: YYYY-MM string (e.g., "2022-01")
Output: "Jan 2023" for English
Format: "FirstName_LastName_Resume.pdf"
Default locale: 'en', support future i18n
useResumeData
Vue Composable
function useResumeData() {
resume: ComputedRef<Resume>
formatDate(date: string, locale?: string): string
getFullName(): string
getPdfFilename(): string
}
app/composables/useResumeData.ts (to be created)
TypeScript compiler validates composable structure. Manual testing in components. No unit tests required for simple data access composable.
TypeScript compilation (pnpm typecheck)
Manual testing in components (Story 1.3+)
Verify file exists after creation
TypeScript validates function export
Test resume ref returns data
Test formatDate with various inputs: "2023-01" → "Jan 2023"
Test getFullName returns "Ali Arghyani"
Test getPdfFilename returns "Ali_Arghyani_Resume.pdf"