Skip to content

推出全新的 Alyonka.app 网站

我非常高兴地宣布全新 alyonka.app 网站正式上线 — 这是一个为 Alyona Novikova(常驻葡萄牙卡斯凯什和里斯本的英语与葡萄牙语教师)打造的互动式语言学习平台与专业个人网站。

该项目最初只是一个简单的单词卡构想,如今已发展为一个功能完善的全栈 Web 应用程序。它将互动学习练习(配对游戏、动态填字游戏和测验)与现代教师主页及教学内容管理系统完美结合。


什么是 Alyonka.app?

该平台主要提供两大核心功能:

  1. 教师主页与课程预约:为寻找英语和葡萄牙语课程的学生提供在线门户(支持全球线上授课及里斯本和卡斯凯什线下授课)。支持多语言界面(英语、葡萄牙语、俄语、乌克兰语、德语、法语),展示教学大纲、学员评价与直接联系方式。
  2. 互动练习引擎:游戏化的练习环境,学生可以通过趣味练习巩固词汇、语法和听力技能。

互动学习功能

1. 配对游戏 (Match-Up)

配对播放器允许学生将单词、短语、释义和图片进行匹配。具备流畅的动画效果、进度追踪以及完成时的五彩纸屑庆祝动画。

2. 程序化填字游戏

平台内置自动填字游戏布局生成器,可将词汇与提示放置于最优交叉网格中。互动播放器提供:

  • 键盘与触控屏操作支持
  • 词汇提示与详细解析
  • 自定义视觉主题
  • 即时答案校验

3. 互动测验 (Quizzes)

支持单选题和多选题,提供丰富的答案解析与详细的分数统计。

4. 可搜索的练习目录

学生可以根据标题、分类、标签和语言级别浏览与筛选练习。


技术栈与架构

层次技术
前端框架SvelteKit 2 + Svelte 5 (Runes)
样式Tailwind CSS v4
后端与 SSRSvelteKit (@sveltejs/adapter-node)
数据库PostgreSQL + Kysely (类型安全查询构建器)
身份验证Better Auth (@better-auth/kysely-adapter)
图像处理Sharp (WebP 转换与优化)
测试Vitest + Testcontainers (PostgreSQL 容器)
部署Docker 与 Docker Compose
可观测性Pino 结构化日志 + Prometheus 指标

工程亮点

使用 Svelte 5 Runes 管理游戏状态

练习播放器基于 Svelte 5 全新的响应式 Runes 系统($state$derived$props),无需引入外部复杂状态库即可简洁优雅地管理游戏复杂状态(如填字游戏光标位置、卡片选择历史、倒计时等)。

基于 Kysely 的类型安全数据层

所有数据库操作均严格保持类型安全。数据迁移通过 TypeScript 脚本执行,集成测试使用 Testcontainers 动态启动真实的隔离 PostgreSQL 容器。

自动化图像优化管道

上传自定义插图或通过 AI 生成练习图片时,系统会通过 Sharp 自动调整大小并转换为 WebP 格式,确保移动端加载迅速流畅。


项目链接