SpellingCard Svelte Themes

Spellingcard

Using Svelte to biuld a English study app on web

单词拼写练习 | Word Spelling Practice

一个基于 Svelte 5 构建的现代化英语单词拼写练习应用,通过科学的练习方法提升英语拼写能力。

功能特性技术栈快速开始项目结构核心功能


✨ 功能特性

🎯 核心功能

  • 📚 丰富词库:涵盖 CET-4 至 CET-6 共 290+ 个精选词汇,难度分级清晰(1-6级)
  • 🎨 五种拼写模式
    • 前缀拼写(Prefix):隐藏单词前 2-3 个字母
    • 后缀拼写(Suffix):隐藏单词后 2-3 个字母
    • 中间拼写(Middle):隐藏单词中间部分
    • 单字母拼写(Single):隐藏单个随机字母
    • 多字母拼写(Multiple):隐藏 3-5 个随机字母
  • 🔊 真人发音:基于 Web Speech API 的标准英语发音
  • ⭐ 收藏功能:收藏重点单词,随时复习
  • 📊 智能分析
    • 错误模式分析
    • 字母混淆统计
    • 个性化学习建议
    • 针对性错题练习

🎨 设计亮点

  • 现代化 UI:采用深色主题 + 玻璃态设计(Glassmorphism)
  • 渐变色彩:精心设计的紫粉渐变配色方案
  • 流畅动画:丰富的微交互动画和过渡效果
  • 响应式布局:完美适配桌面端和移动端

💾 数据持久化

  • 本地存储:使用 LocalStorage 保存用户数据
  • 历史记录:保存最近 50 次练习记录
  • 错题本:自动记录错误单词及出错次数
  • 学习统计:追踪总练习次数、正确率等数据

🛠 技术栈

前端框架

  • Svelte 5.29.0:最新版本的 Svelte,采用 Runes API
  • Vite 6.0.0:极速的前端构建工具
  • TypeScript 5.9.3:类型安全的 JavaScript 超集

核心技术

  • Web Speech API:实现单词发音功能
  • LocalStorage API:本地数据持久化
  • CSS3:现代化样式和动画效果
  • Google Fonts:Inter + Poppins 字体组合

开发工具

  • @sveltejs/vite-plugin-svelte:Svelte 的 Vite 插件
  • ESLint:代码质量检查
  • Prettier:代码格式化

🚀 快速开始

环境要求

  • Node.js >= 16.0.0
  • npm >= 7.0.0

安装步骤

# 克隆项目
git clone <repository-url>
cd spell-app

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 预览生产构建
npm run preview

访问应用

开发服务器启动后,在浏览器中访问:

http://localhost:5173

📁 项目结构

spell-app/
├── public/                 # 静态资源
│   └── vite.svg           # 网站图标
├── src/
│   ├── components/        # Svelte 组件
│   │   ├── FavoritesList.svelte      # 收藏列表组件
│   │   ├── FeedbackAnimation.svelte  # 反馈动画组件
│   │   ├── ProgressBar.svelte        # 进度条组件
│   │   ├── ResultsView.svelte        # 结果页面组件
│   │   ├── SpellingCard.svelte       # 拼写卡片组件
│   │   └── WordBadge.svelte          # 词性标签组件
│   ├── lib/              # 核心库
│   │   ├── analytics.js          # 数据分析模块
│   │   ├── audioService.js       # 音频服务模块
│   │   ├── storage.js            # 本地存储模块
│   │   ├── wordDatabase.js       # 单词数据库(290+ 词汇)
│   │   └── wordGenerator.js      # 单词生成器
│   ├── App.svelte        # 主应用组件
│   ├── app.css           # 全局样式
│   ├── main.ts           # 应用入口
│   └── counter.ts        # 计数器工具
├── index.html            # HTML 入口
├── package.json          # 项目配置
├── tsconfig.json         # TypeScript 配置
├── vite.config.js        # Vite 配置
└── README.md             # 项目文档

🎮 核心功能详解

1. 单词拼写练习

拼写模式生成

应用提供 5 种不同的拼写模式,通过 wordGenerator.js 实现:

// 示例:单词 "beautiful"
PREFIX:   "___utiful"  // 填写 "bea"
SUFFIX:   "beauti___"  // 填写 "ful"
MIDDLE:   "be____ful"  // 填写 "auti"
SINGLE:   "be_utiful"  // 填写 "a"
MULTIPLE: "_e_u_i_ul"  // 填写 "batf"

智能出题策略

  • 每次练习 20 个单词
  • 20% 来自历史错题(针对性练习)
  • 80% 来自词库随机选择
  • 自动分配随机拼写模式

2. 音频发音系统

基于 Web Speech API 实现:

// 支持的语音
- 英式英语(en-GB)
- 美式英语(en-US)
- 自动降级处理

3. 数据分析系统

错误分析

  • 字母混淆分析:统计最常见的字母替换错误
  • 模式错误分析:识别哪种拼写模式错误率最高
  • 个性化建议:根据错误率提供学习建议

统计指标

  • 总练习次数
  • 总单词数
  • 正确单词数
  • 整体正确率
  • 难度分布

4. 本地存储架构

// LocalStorage Keys
spelling_favorites  // 收藏的单词
spelling_history    // 练习历史(最多50条)
spelling_errors     // 错题记录(带错误次数)
spelling_stats      // 统计数据

🎨 设计系统

色彩方案

/* 主色调 */
--primary: #6366f1        /* 靛蓝色 */
--secondary: #ec4899      /* 粉红色 */
--accent: #14b8a6         /* 青色 */

/* 功能色 */
--success: #10b981        /* 成功绿 */
--error: #ef4444          /* 错误红 */
--warning: #f59e0b        /* 警告橙 */

/* 背景色 */
--bg-primary: #0f172a     /* 深蓝黑 */
--bg-secondary: #1e293b   /* 次级背景 */
--bg-tertiary: #334155    /* 三级背景 */

渐变效果

/* 主渐变 */
--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

/* 功能渐变 */
--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);
--gradient-error: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);

动画效果

  • fadeIn:淡入动画
  • slideIn:滑入动画
  • scaleIn:缩放动画
  • shake:抖动动画(错误反馈)
  • pulse:脉冲动画(音频图标)
  • shimmer:光泽动画(进度条)

📊 词库统计

词汇分布

难度等级 描述 词汇量 占比
1-2 基础词汇 ~90 31%
3 四级词汇 ~80 28%
4 四六级词汇 ~70 24%
5 六级词汇 ~40 14%
6 高级词汇 ~10 3%

词性分布

  • 名词(Noun):~40%
  • 动词(Verb):~30%
  • 形容词(Adjective):~20%
  • 副词(Adverb):~5%
  • 其他(Other):~5%

🔧 配置说明

Vite 配置

// vite.config.js
export default defineConfig({
  plugins: [svelte()],
  server: {
    port: 5173,
    open: true
  }
})

TypeScript 配置

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "moduleResolution": "bundler",
    "strict": true
  }
}

🌟 使用指南

开始练习

  1. 点击首页的"开始练习"按钮
  2. 系统自动生成 20 个单词的练习题
  3. 查看单词的中文释义、词性和音标
  4. 点击"播放发音"听取标准发音
  5. 在输入框中填写缺失的字母
  6. 点击"提交答案"或按 Enter 键提交
  7. 查看即时反馈(正确/错误)
  8. 完成所有单词后查看详细分析报告

收藏单词

  1. 在练习过程中点击卡片右上角的星标按钮
  2. 单词会被添加到"我的收藏"
  3. 从首页点击"我的收藏"查看所有收藏的单词
  4. 可以对收藏的单词进行单独测试

查看分析

练习结束后,系统会显示:

  • 本次练习的正确率
  • 难度等级评估
  • 错误单词列表
  • 字母混淆分析
  • 学习建议

🎯 学习建议

初学者(正确率 < 60%)

  1. 从基础词汇(难度 1-2)开始
  2. 多听发音,培养语感
  3. 重点练习错题本中的单词
  4. 每天练习 10-15 分钟

进阶者(正确率 60-80%)

  1. 混合练习四级和六级词汇
  2. 注意总结拼写规律
  3. 重点关注字母混淆问题
  4. 增加练习时长至 20-30 分钟

高级者(正确率 > 80%)

  1. 挑战高难度词汇(难度 5-6)
  2. 尝试所有拼写模式
  3. 追求 100% 正确率
  4. 帮助他人学习

🔄 更新日志

v1.0.0 (2025-12-02)

  • ✨ 初始版本发布
  • 📚 内置 290+ CET-4/6 词汇
  • 🎯 实现 5 种拼写模式
  • 🔊 集成 Web Speech API
  • 📊 完整的数据分析系统
  • ⭐ 收藏和错题本功能
  • 🎨 现代化 UI 设计

📝 开发计划

近期计划

  • 添加更多词汇(托福、雅思)
  • 支持自定义词库导入
  • 添加每日打卡功能
  • 实现学习曲线图表
  • 支持多用户账号系统

长期计划

  • 移动端 App 开发
  • 社区分享功能
  • AI 智能推荐
  • 语音识别拼写
  • 多语言支持

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

贡献流程

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

代码规范

  • 使用 ESLint 和 Prettier
  • 遵循 Svelte 最佳实践
  • 编写清晰的注释
  • 保持代码简洁

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢


📧 联系方式

如有问题或建议,欢迎联系:

  • 📮 提交 Issue
  • 💬 发起 Discussion
  • 📧 发送邮件

⭐ 如果这个项目对你有帮助,请给它一个星标!

Made with ❤️ and Svelte

Top categories

Loading Svelte Themes