Files
portfolio/docs/source-tree-analysis.md
T
mahdiarghyani 1586bb7f80 chore: add BMAD agent workflows and configuration system
- Add comprehensive agent workflow definitions for 8 specialized roles (analyst, architect, developer, product manager, scrum master, technical writer, UX designer, QA engineer)
- Add 35+ workflow definitions covering analysis, planning, solutioning, and implementation phases
- Add BMAD configuration system with agent, task, tool, workflow, and file manifests
- Add BMM (Business Model Methodology) documentation including quick-start guides, architecture references, and workflow analysis
- Add test architecture knowledge base with 20+ testing patterns and best practices
- Add team configuration templates and party mode setup for collaborative development
- Establish foundation for enterprise agentic development framework with adaptive scaling capabilities
2025-11-30 14:36:05 +03:30

7.5 KiB

Source Tree Analysis

Project Structure Overview

This is a Nuxt 4 Portfolio application with bilingual support (English/Persian RTL).

nuxt-portfolio/
├── app/                          # Source directory (srcDir)
│   ├── app.vue                   # Root component
│   ├── app.config.ts             # Nuxt UI theme tokens & configuration
│   ├── error.vue                 # Error page handler (404, 500)
│   │
│   ├── assets/
│   │   └── css/
│   │       └── main.css          # Tailwind CSS & global styles
│   │
│   ├── components/               # Auto-imported Vue components
│   │   ├── LanguageSwitcher.vue  # EN/FA language toggle
│   │   ├── ThemeSelector.vue     # Dark/Light mode toggle
│   │   │
│   │   ├── blog/                 # Blog-related components
│   │   │   ├── BlogCard.vue
│   │   │   ├── BlogEmpty.vue
│   │   │   ├── BlogNavigation.vue
│   │   │   ├── BlogPost.vue
│   │   │   ├── BlogSearch.vue
│   │   │   ├── BlogTableOfContents.vue
│   │   │   └── BlogTagFilter.vue
│   │   │
│   │   ├── common/               # Shared UI components
│   │   │   ├── BottomNav.vue
│   │   │   ├── ClientTooltip.vue
│   │   │   ├── FooterCopyright.vue
│   │   │   ├── ThemeCustomizer.vue
│   │   │   └── TopNav.vue
│   │   │
│   │   ├── content/              # MDC content components
│   │   │   ├── Alert.vue
│   │   │   ├── BlogCallout.vue
│   │   │   └── ProseCode.vue
│   │   │
│   │   └── portfolio/            # Portfolio-specific components
│   │       ├── AIStack.vue
│   │       ├── EducationList.vue
│   │       ├── ExperienceList.vue
│   │       ├── FloatingActions.vue
│   │       ├── Hero.vue
│   │       ├── LanguageSkills.vue
│   │       ├── ProjectsList.vue
│   │       ├── RecommendationsCarousel.vue
│   │       ├── SkillFilters.vue
│   │       ├── SkillGrid.vue
│   │       ├── Skills.vue
│   │       ├── SoftSkills.vue
│   │       ├── TagGroupCard.vue
│   │       ├── TagGroups.vue
│   │       └── WorkExperience.vue
│   │
│   ├── composables/              # Auto-imported composables
│   │   ├── useBlog.ts            # Blog data fetching
│   │   ├── useLocaleSwitching.ts # Locale transition state
│   │   ├── usePortfolio.ts       # Portfolio data by locale
│   │   ├── useSectionObserver.ts # Intersection observer for sections
│   │   ├── useSocialText.ts      # Social text formatting
│   │   ├── useViewTransition.ts  # View Transitions API wrapper
│   │   └── useViewTransitionRipple.ts # Ripple effect transitions
│   │
│   ├── data/                     # Static content data
│   │   ├── aiStack.ts            # AI tools/stack data
│   │   ├── portfolio.ts          # Portfolio data loader
│   │   ├── portfolio.en.ts       # English portfolio content
│   │   ├── portfolio.fa.ts       # Persian portfolio content
│   │   ├── recommendations.ts    # Recommendations data
│   │   ├── sections.ts           # Page sections config
│   │   └── skills.ts             # Skills data
│   │
│   ├── layouts/                  # Layout components
│   │   ├── default.vue           # Main layout with nav
│   │   └── marketing.vue         # Marketing/landing layout
│   │
│   ├── middleware/               # Route middleware
│   │   └── demo.ts               # Demo middleware
│   │
│   ├── pages/                    # File-based routing
│   │   ├── index.vue             # Homepage (/)
│   │   └── blog/
│   │       ├── index.vue         # Blog listing (/blog)
│   │       └── [...slug].vue     # Blog post (/blog/:slug)
│   │
│   ├── plugins/                  # Nuxt plugins
│   │   ├── remove-banners.client.ts
│   │   └── vueschool.client.ts
│   │
│   ├── types/                    # TypeScript definitions
│   │   ├── blog.ts
│   │   ├── components.types.ts
│   │   ├── global.d.ts
│   │   ├── portfolio.types.ts
│   │   └── recommendation.types.ts
│   │
│   └── utils/                    # Helper functions
│       ├── any_all.ts
│       ├── chipTones.ts
│       ├── findBy.ts
│       ├── getDisplayableNumber.ts
│       └── isSubset.ts
│
├── content/                      # Nuxt Content (MDC)
│   ├── en/
│   │   └── blog/                 # English blog posts
│   └── fa/
│       └── blog/                 # Persian blog posts (RTL)
│
├── i18n/                         # Internationalization
│   └── locales/
│       ├── en.json               # English translations
│       └── fa.json               # Persian translations
│
├── server/                       # Server-side code
│   ├── plugins/
│   │   └── prerender.ts          # SSG prerender plugin
│   └── routes/
│       ├── blog/
│       │   └── rss.xml.ts        # English RSS feed
│       └── fa/
│           └── blog/
│               └── rss.xml.ts    # Persian RSS feed
│
├── public/                       # Static assets
│   ├── favicon/                  # Favicon files
│   ├── fonts/                    # Local fonts (Roobert, Vazirmatn)
│   └── img/                      # Images
│
├── nuxt.config.ts                # Nuxt configuration
├── package.json                  # Dependencies & scripts
├── tsconfig.json                 # TypeScript config
└── vercel.json                   # Vercel deployment config

Critical Directories

Directory Purpose Key Files
app/ Source directory (srcDir) app.vue, app.config.ts
app/components/ Auto-imported Vue components 24 components in 4 categories
app/composables/ Reusable composition functions 7 composables
app/pages/ File-based routing 3 pages
app/data/ Static content by locale portfolio.en.ts, portfolio.fa.ts
content/ MDC blog content en/blog/, fa/blog/
i18n/locales/ Translation files en.json, fa.json
server/routes/ API endpoints RSS feeds

Entry Points

  • Application Entry: app/app.vue
  • Configuration: nuxt.config.ts, app/app.config.ts
  • Homepage: app/pages/index.vue
  • Blog: app/pages/blog/index.vue

Component Categories

  1. Blog Components (7): BlogCard, BlogEmpty, BlogNavigation, BlogPost, BlogSearch, BlogTableOfContents, BlogTagFilter
  2. Common Components (5): BottomNav, ClientTooltip, FooterCopyright, ThemeCustomizer, TopNav
  3. Content Components (3): Alert, BlogCallout, ProseCode
  4. Portfolio Components (15): AIStack, EducationList, ExperienceList, FloatingActions, Hero, LanguageSkills, ProjectsList, RecommendationsCarousel, SkillFilters, SkillGrid, Skills, SoftSkills, TagGroupCard, TagGroups, WorkExperience
  5. Root Components (2): LanguageSwitcher, ThemeSelector