产品路线图 · 技术规划与讨论 · 逐步实施中
首页产品化改造 — 从专业导航列表改为产品展示首页,面向感兴趣的用户展示基础功能和亮点。
竞赛体系 Phase 2 + Bug修复 + 体验优化
个人中心 & 学习路径系统 — 基于 Supabase 的完整用户数据体系,包含收藏夹、学习路径、申请进度 Tracker、截止日期提醒。
不同角色看到不同的界面和功能,模拟数据先行,后续接入真实权限系统。
| 角色 | 英文 | 核心权限 | 数据范围 |
|---|---|---|---|
| 学生 | Student | 个人Dashboard / 学习路径 / 申请Tracker / 收藏 / 测评 | 仅自己的数据 |
| 家长 | Parent | 查看孩子进度 / 费用计算 / 时间线概览 / 消息通知 | 关联孩子的数据(只读) |
| 顾问 | Counselor | 多学生管理 / 批量跟踪 / 备注 / 资源共享 / 数据导出 | 所有关联学生 |
| 管理员 | Admin | 内容管理 / 用户管理 / 数据统计 / 系统配置 | 全站数据 |
auth.uid() = user_id 或 parent_id = auth.uid()user_roles 表 + Supabase Auth Hook,支持细粒度权限控制数据结构设计:
-- profiles 表 profiles ( id UUID REFERENCES auth.users, role TEXT DEFAULT 'student', -- student | parent | counselor | admin display_name TEXT, avatar_url TEXT, grade INT, -- 学生年级 target_major TEXT, -- 目标专业 target_schools TEXT[], -- 目标学校 parent_of UUID[], -- 家长关联的学生ID counselor_students UUID[] -- 顾问关联的学生列表 )
现状:已有 Supabase Auth 和 Vercel KV(统计用)
推荐:用户数据用 Supabase Database,KV 继续存访问统计。两套各尽其职。
推荐:先做方案 A(零成本),后续迭代加方案 C。邮件提醒作为高优先级功能单独评估。
用 JSON 配置化驱动,每个专业对应一条学习路径:
freshman / sophomore / junior / senior 四个阶段user_progress 表社区系统 & UGC 内容 — 用户生成内容平台,包括问答、经验分享、评论互动。
推荐:第一阶段用 Giscus 快速上线,验证需求。用户量起来后再考虑自建。
推荐:Markdown 先行(开发成本最低),后续再上 TipTap 富文本。
-- UGC 内容表 posts (id, author_id, title, content, category, status, created_at) comments (id, post_id, author_id, content, parent_id, created_at) reactions (id, user_id, target_type, target_id, type) follows (follower_id, followee_id, created_at) user_badges (user_id, badge_id, awarded_at)
国际竞赛体系 — 常见国际竞赛全收录,按学科分类、难度分级、适合专业推荐,帮助学生找到适合自己的背景提升竞赛。
| 竞赛名称 | 缩写 | 难度 | 适合年级 | 含金量 |
|---|---|---|---|---|
| AMC 8 / 10 / 12 | AMC | ⭐⭐⭐⭐ | 8-12 年级 | 极高 |
| AIME 美国数学邀请赛 | AIME | ⭐⭐⭐⭐⭐ | 10-12 年级 | 极高 |
| USA(J)MO 数学奥赛 | USAMO | ⭐⭐⭐⭐⭐ | 10-12 年级 | 顶级 |
| Physics Bowl 物理碗 | — | ⭐⭐⭐ | 9-12 年级 | 高 |
| UKChO 英国化学奥赛 | UKChO | ⭐⭐⭐⭐ | 11-12 年级 | 高 |
| USNCO 美国化学奥赛 | USNCO | ⭐⭐⭐⭐ | 10-12 年级 | 高 |
| BBO 英国生物奥赛 | BBO | ⭐⭐⭐ | 9-12 年级 | 中高 |
| USABO 美国生物奥赛 | USABO | ⭐⭐⭐⭐ | 10-12 年级 | 高 |
| 竞赛名称 | 缩写 | 难度 | 适合年级 | 含金量 |
|---|---|---|---|---|
| USACO 信息学奥赛 | USACO | ⭐⭐⭐⭐⭐ | 9-12 年级 | 极高 |
| CCC 加拿大计算机竞赛 | CCC | ⭐⭐⭐ | 9-12 年级 | 中高 |
| VEX 机器人竞赛 | VEX | ⭐⭐⭐⭐ | 6-12 年级 | 高 |
| FRC 机器人竞赛 | FRC | ⭐⭐⭐⭐ | 9-12 年级 | 高 |
| Google Science Fair | GSF | ⭐⭐⭐⭐⭐ | 13-18 岁 | 顶级 |
| ISEF 国际科学与工程大奖赛 | ISEF | ⭐⭐⭐⭐⭐ | 9-12 年级 | 顶级 |
| 竞赛名称 | 缩写 | 难度 | 适合年级 | 含金量 |
|---|---|---|---|---|
| NEC 全美经济学挑战赛 | NEC | ⭐⭐⭐ | 9-12 年级 | 高 |
| IEO 国际经济学奥赛 | IEO | ⭐⭐⭐⭐ | 9-12 年级 | 高 |
| FBLA 未来商业领袖 | FBLA | ⭐⭐⭐ | 9-12 年级 | 中高 |
| DECA 商业挑战赛 | DECA | ⭐⭐⭐ | 9-12 年级 | 中高 |
| KWHS 沃顿商赛 | KWHS | ⭐⭐⭐⭐ | 9-12 年级 | 极高 |
| Marshall 社创挑战赛 | — | ⭐⭐⭐⭐ | 9-12 年级 | 高 |
| 竞赛名称 | 缩写 | 难度 | 适合年级 | 含金量 |
|---|---|---|---|---|
| NHSDLC 美式辩论联赛 | NHSDLC | ⭐⭐⭐ | 7-12 年级 | 中高 |
| NSDA 演讲与辩论 | NSDA | ⭐⭐⭐⭐ | 6-12 年级 | 高 |
| John Locke 论文竞赛 | — | ⭐⭐⭐⭐⭐ | 10-12 年级 | 极高 |
| Marshall 论文竞赛 | — | ⭐⭐⭐⭐⭐ | 11-12 年级 | 极高 |
| HiMCM 数学建模竞赛 | HiMCM | ⭐⭐⭐⭐ | 9-12 年级 | 高 |
| CTB 全球创新研究大挑战 | CTB | ⭐⭐⭐ | 9-12 年级 | 中高 |
/competitions/index.html — 竞赛总览页(8 大分类 + 搜索 + 筛选器)/competitions/math.html — 数学竞赛分类页/competitions/cs.html — 计算机竞赛分类页/competitions/amc.html — 单个竞赛详情页(模板化)/competitions/major-cs.html — 按专业推荐竞赛(CS 专业推荐竞赛 Top 10)/competitions/ 目录和总览页目标:验证内容需求,SEO 长尾词起量
目标:成为国内最全的国际竞赛中文信息库
目标:从信息库升级为竞赛规划平台,依赖 v21 用户系统
纯静态方案(推荐初期):
// competitions.js — 竞赛数据(静态 JSON)
const competitions = [
{
id: 'amc12',
name: 'AMC 12',
fullName: 'American Mathematics Competition 12',
category: 'math',
difficulty: 4, // 1-5
prestige: 5, // 含金量 1-5
grades: ['10', '11', '12'],
organizer: 'MAA',
website: 'https://www.maa.org/math-competitions',
region: 'global',
type: 'individual',
format: '笔试 · 25 题 · 75 分钟',
date: '每年 2 月',
fee: '约 ¥80-150',
relatedMajors: ['cs', 'math', 'physics', 'engineering'],
relatedComps: ['aime', 'usamo'],
tags: ['数学', '顶级', '理工科必选']
},
// ...
]
选型:初期纯静态 JSON + 静态页面生成,SEO 友好、开发成本最低;后期数据量大了再考虑数据库。
推荐:Phase 1/2 纯前端筛选(数据量 < 200 条完全没问题),到 Phase 3 再考虑后端。
推荐:手写简易月历 + 时间线列表,满足 80% 需求,包体小体验好。
Event / Course schema 标记teams 表 + team_members 关联表AI 深度集成 & 个性化推荐 — 全场景 AI 赋能,从选校到文书一站式智能辅助。
核心思路:基于历史录取数据 + 用户背景特征,计算匹配度。
推荐:先方案 A(规则引擎)上线,积累数据后迭代到方案 B。LLM 作为补充,生成自然语言解释。
远期构想 — 更远期的产品方向,待市场验证。
协作架构 & 核心成员小范围测试平台 — 平台已邀请多位有影响力的准备阶段核心成员参与产品共建,本版本构建支撑多角色协作、多端访问、版本快照对比、可控邀请机制的整套基础架构,让外部专家可以在受控环境下完整体验产品并提供反馈。
/collab 私有路径,公开搜索引擎不收录,需登录访问feedback.member_id = auth.uid() OR auth.role() = 'admin'
// 注入到所有公开页面的浮动反馈按钮
(function() {
if (!window.CollabUser) return;
const btn = document.createElement('div');
btn.className = 'collab-feedback-btn';
btn.innerHTML = '反馈';
btn.onclick = () => openFeedbackPanel(location.pathname);
document.body.appendChild(btn);
})();
scripts/snapshot.sh,对全站 HTML 生成 SHA + 行级 diff 索引/snapshots/vXX/,保留最近 10 个版本jsdiff 库做文本 diff,可视化用 diff2html/collab/join?code=xxx 完成首次登录,绑定邮箱全流程模拟体验 & 个性化模拟结果 — 用户填写或自动生成个性化档案后,系统为该用户模拟出从选校、前期材料准备、中期申请提交、后期录取结果的全套场景化内容;点击任意大学卡片即可看到"如果我申请这所学校,我在该校的完整画像、模拟材料、模拟面试、模拟 Offer/拒信"。所有内容先使用模拟数据占位,未来 v27 接入真实数据源。
点击任意段落都会跳到一份独立页面,提供与真实场景几乎一模一样的细节(文书题目原文、面试真题、模拟 Offer PDF、模拟成绩单、模拟活动描述等)。所有页面顶部都有"← 返回学校页"链接,不打断浏览节奏。
simulate/{school}/summary.htmlsimulate/{school}/distribution.htmlsimulate/{school}/activities.htmlsimulate/{school}/reading.htmlsimulate/{school}/competitions.htmlsimulate/{school}/essays.htmlsimulate/{school}/essay-draft.htmlsimulate/{school}/supplements.htmlsimulate/{school}/recommendations.htmlsimulate/{school}/interview.htmlsimulate/{school}/transcript.htmlsimulate/{school}/checklist.htmlsimulate/{school}/result.htmlsimulate/{school}/financial.htmlsimulate/{school}/pre-arrival.html/simulate/ index.html # 模拟入口(选择国家) us.html # 美国全流程模拟(通用 Ivy/Top 30 模板) uk.html # 英国全流程模拟(通用 G5/Russell Group 模板) au.html # 澳洲全流程模拟(通用 Group of Eight 模板)
v26 核心决策:按"国家"而非"学校"组织模拟内容。原因:(1) 维护成本低(3-6 个国家 vs. 50+ 学校);(2) 更符合"全球留学"定位;(3) 通用模板可覆盖同一国家 90% 的申请场景;(4) 用户在实际申请时可以再细化到具体学校。后续可扩展:ca.html 加拿大 / hk.html 香港 / sg.html 新加坡 / de.html 德国。
data/personas/*.json 按年级 + 目标国家预置 8 套典型画像profile.toJSON() 提供统一序列化
function calcChance(user, school) {
// 简化版 - 仅用于模拟演示
const userScore = (
user.gpa * 0.4 +
user.testScore / 1600 * 0.3 +
user.activities.length * 2 +
user.awards.length * 5
);
const schoolAvg = school.avgAdmitScore;
const stddev = school.stddev || 10;
const z = (userScore - schoolAvg) / stddev;
const prob = 1 / (1 + Math.exp(-z)); // sigmoid
return Math.round(prob * 100);
}
/simulate/school.html?school=harvard&profile=xxxsimulate-school.html 模板,通过 URL 参数渲染data/simulate/harvard.json,包含该校专属文案、面试题、文书题、Offer 模板data/simulate/*.json,约 200 KB 静态文件html2canvas + jspdf 生成 PDFsimulate_{school}_{date}.pdf