{project.systemType}
diff --git a/src/lib/data/projects.ts b/src/lib/data/projects.ts index 1dcb4f1..ccc9c0a 100644 --- a/src/lib/data/projects.ts +++ b/src/lib/data/projects.ts @@ -159,32 +159,105 @@ const sharedCases: Project[] = [ }, { id: 'elynd', - featured: false, - type: 'experiment', + featured: true, + type: 'product', status: 'building', role: 'Founder & Developer', - impact: 'Exploring AI-assisted development workflows in production-like scenarios', - systemType: 'AI-assisted workspace', - context: 'An open workspace product exploring practical AI collaboration in software development.', - title: 'Elynd', - icon: 'Zap', + impact: 'Built an AI-powered English reading and learning platform for language learners', + systemType: 'AI-powered English reading & learning platform', + context: 'An AI-assisted English reading learning tool that combines reading, listening, word lookup, and AI Q&A to help users practice low-barrier language input.', + title: 'Elynd - AI English Learning Platform', + icon: 'BookOpen', color: 'purple', image: { bg: 'from-purple-500/20 to-blue-500/20', hover: 'from-purple-500/30 to-blue-500/30', text: 'text-purple-500', }, - challenges: ['Designing useful AI workflows without adding process burden'], - responsibilities: ['Product exploration and end-to-end implementation'], - outcomes: ['Validated several practical AI-assisted development patterns'], - description: [ - 'An open AI workspace for builders.', - 'Used as an R&D track, not the primary professional narrative.', + challenges: [ + 'Designing a smooth graded reading experience with content difficulty adaptation', + 'Implementing real-time TTS audio playback with Azure Speech SDK', + 'Building an efficient word lookup system with instant definitions', + 'Creating AI-powered Q&A that understands reading context', ], - coverImage: '', - coverImageAlt: 'Elynd project cover', - tech: ['TypeScript', 'React', 'AI Workflow', 'Open Source'], - link: '#', + responsibilities: [ + 'End-to-end product development from concept to launch', + 'Designed and implemented backend API with AdonisJS v6', + 'Built frontend with Vue 3, TypeScript, and modern UI components', + 'Integrated OpenAI SDK for AI conversation features', + 'Implemented EPUB import and content parsing pipeline', + ], + outcomes: [ + 'Launched a complete learning platform with 4 core features', + 'Achieved smooth reading experience with progress tracking', + 'Integrated Azure TTS for immersive listening practice', + 'Enabled AI-powered interactive learning with context awareness', + ], + description: [ + 'AI-powered English reading and learning platform.', + 'Combines reading, listening, word lookup, and AI Q&A for comprehensive language learning.', + ], + tech: [ + 'AdonisJS v6', + 'PostgreSQL', + 'Redis', + 'Vue 3', + 'TypeScript', + 'Pinia', + 'Reka UI', + 'shadcn-vue', + 'Tailwind CSS 4', + 'OpenAI SDK', + 'Azure Speech SDK', + 'pnpm workspace', + ], + link: 'https://github.com/zguiyang/elynd', + links: { + github: 'https://github.com/zguiyang/elynd', + demo: 'https://elynd.zhaoguiyang.com/', + }, + }, + { + id: 'linky', + featured: true, + type: 'product', + status: 'completed', + role: 'Founder & Developer', + impact: 'Built a self-hosted knowledge management tool for bookmarks and notes', + systemType: 'Personal knowledge management system', + context: 'A simple, self-hosted tool for organizing bookmarks and writing notes with full user data control.', + title: 'Linky', + icon: 'Link', + color: 'cyan', + image: { + bg: 'from-cyan-500/20 to-blue-500/20', + hover: 'from-cyan-500/30 to-blue-500/30', + text: 'text-cyan-500', + }, + challenges: [ + 'Designing intuitive bookmark organization with tags', + 'Implementing AI-powered auto-tagging feature', + 'Building self-hosted authentication system', + ], + responsibilities: [ + 'End-to-end product development', + 'Backend API design with AdonisJS', + 'Frontend implementation with Nuxt', + ], + outcomes: [ + 'Launched self-hosted version with full user data ownership', + 'Integrated AI auto-tagging with OpenAI compatible APIs', + ], + description: [ + 'A self-hosted bookmark manager and note-taking tool.', + 'Focus on privacy, simplicity, and AI-assisted organization.', + ], + tech: ['AdonisJS', 'Nuxt', 'PostgreSQL', 'Vue', 'Pinia', 'Tailwind CSS'], + link: 'https://github.com/zguiyang/linky', + links: { + github: 'https://github.com/zguiyang/linky', + demo: 'https://linky.zhaoguiyang.com/', + }, }, ]; @@ -246,15 +319,74 @@ export const projects = { { ...sharedCases[4], role: '创始人 & 开发者', - impact: '在真实场景中探索 AI 协作开发工作流', - systemType: 'AI 协作工作空间', - context: '探索 AI 在软件工程中可落地协作方式的开放产品。', - title: 'Elynd', - challenges: ['在不增加流程负担前提下设计有效 AI 工作流'], - responsibilities: ['产品探索与端到端实现'], - outcomes: ['验证多种可实践的 AI 协作开发模式'], - description: ['一个面向构建者的开放 AI 工作空间。', '作为研发探索方向,不作为职业主叙事。'], - tech: ['TypeScript', 'React', 'AI 协作', '开源'], + impact: '打造 AI 辅助英语阅读学习平台,帮助语言学习者提升阅读能力', + systemType: 'AI 驱动英语阅读学习平台', + context: 'AI 辅助的英语阅读学习工具,通过「阅读 + 听读 + 查词 + AI 提问」四位一体帮助用户完成低门槛的语言输入练习。', + title: 'Elynd - AI 英语学习平台', + challenges: [ + '设计流畅的分级阅读体验,实现内容难度自适应', + '集成 Azure Speech SDK 实现实时 TTS 音频播放', + '构建高效的即点查词系统,支持即时释义显示', + '打造理解阅读上下文的 AI 智能问答功能', + ], + responsibilities: [ + '从概念到上线的端到端产品开发', + '使用 AdonisJS v6 设计与实现后端 API', + '使用 Vue 3、TypeScript 和现代 UI 组件构建前端', + '集成 OpenAI SDK 实现 AI 对话功能', + '实现 EPUB 导入与内容解析流程', + ], + outcomes: [ + '上线具备 4 大核心功能的完整学习平台', + '实现流畅阅读体验与学习进度跟踪', + '集成 Azure TTS 实现沉浸式听读练习', + '支持上下文感知的 AI 智能交互学习', + ], + description: [ + 'AI 驱动的英语阅读学习平台。', + '融合阅读、听读、查词、AI 问答,一站式语言学习体验。', + ], + tech: [ + 'AdonisJS v6', + 'PostgreSQL', + 'Redis', + 'Vue 3', + 'TypeScript', + 'Pinia', + 'Reka UI', + 'shadcn-vue', + 'Tailwind CSS 4', + 'OpenAI SDK', + 'Azure Speech SDK', + 'pnpm workspace', + ], + }, + { + ...sharedCases[5], + role: '创始人 & 开发者', + impact: '打造自托管的书签管理与笔记工具,让用户完全掌控自己的数据', + systemType: '个人知识管理系统', + context: '简单、自托管的工具,用于组织书签和写笔记,数据完全由用户自己掌控。', + title: 'Linky', + challenges: [ + '设计直观的书签组织系统,支持标签化管理', + '实现 AI 自动标签功能', + '构建自托管认证系统', + ], + responsibilities: [ + '端到端产品开发', + '使用 AdonisJS 设计后端 API', + '使用 Nuxt 实现前端', + ], + outcomes: [ + '上线自托管版本,用户完全拥有数据主权', + '集成 AI 自动标签功能,支持 OpenAI 兼容 API', + ], + description: [ + '自托管的书签管理器和笔记工具。', + '注重隐私、简洁和 AI 辅助整理。', + ], + tech: ['AdonisJS', 'Nuxt', 'PostgreSQL', 'Vue', 'Pinia', 'Tailwind CSS'], }, ], }; diff --git a/src/pages/projects.astro b/src/pages/projects.astro index 8500ce3..9997226 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -11,7 +11,7 @@ const lang = (Astro.currentLocale as Lang) || defaultLang; const isZh = lang === 'zh'; const pageProjects = projects[lang].map((project) => ({ ...project, - category: project.id === 'elynd' ? 'indie' : 'enterprise', + category: project.id === 'elynd' || project.id === 'linky' ? 'indie' : 'enterprise', })); const enterpriseProjects = pageProjects.filter((project) => project.category === 'enterprise'); const indieProjects = pageProjects.filter((project) => project.category === 'indie'); @@ -66,7 +66,7 @@ const indieProjects = pageProjects.filter((project) => project.category === 'ind
{project.systemType}
{isZh ? '独立项目' : 'Independent'}
-{project.context}
-{project.context}
} +{isZh ? '结果:' : 'Outcome:'} {project.outcomes?.[0] ?? project.impact}
- {project.link !== '#' && ( - - {isZh ? '查看项目' : 'Open Project'} - - )}{project.systemType}
{isZh ? '独立项目' : 'Independent'}
-{project.context}
-{project.context}
} +{isZh ? '结果:' : 'Outcome:'} {project.outcomes?.[0] ?? project.impact}
- {project.link !== '#' && ( - - {isZh ? '查看项目' : 'Open Project'} - - )}