我正在开发一个面向备考学生的网络应用程序(后续会推出iOS和Android版本)。这个应用最初的方向几经调整——起初针对的用户群体非常狭窄,但后来范围扩大了。

我的应用将包含"官方"(正在考虑换一个更合适的术语)内容(含考题的考试、含闪卡的卡片组等)和社区创作的内容。

"官方"内容专指IT认证考试相关。社区创作内容则涵盖认证考试和课程(如大学课程)两大类。

因此,当用户备考思科CCNA认证时,既能看到我创建的考试和闪卡组(这些内容会以某种方式标注为非社区创作),也能看到其他用户添加的考试和卡片组。

我暂时用"官方"这个词作为占位符。其实我并不喜欢它,因为我不想让用户误以为这些题目或卡片是由认证机构(思科、CompTIA等)制作的,也不希望他们认为这些题目会出现在实际考试中。所以"官方"只是我打算替换的临时说法。

当用户找到想学习的课程或认证时,点击"报名"即可将其设为活跃状态。用户可以在多个活跃课程/认证间切换。"练习"页面是核心操作区:用户需在"考试"和"卡片组"之间选择,接着选择考试/卡片组模式,最后选定具体内容。基础流程大体如此。有些模式甚至无需用户选择考试/卡片组,比如"重温错题"模式所生成的练习内容源自用户近期答错的问题库。

另一个选项(这才是真正的难题)是"自定义考试"。用户可通过选择不同选项构建定制化考试,从而聚焦特定学科领域、模拟限时考试等。但难题在于如何将社区创作内容融入其中。

社区可能贡献成千上万的题目或卡片,其中存在重复/相似内容、错别字和错误答案,甚至可能有人恶意添加错误信息或不当内容。

我总不能把某个课程的所有社区创作题目或卡片混在一起随机抽取50道吧?这样用户体验肯定很差。

某个网站也提供类似的自定义考试功能,但对他们而言很简单——因为全是官方内容。所有题目按学科归类,经过严格审核。1000道题目分散在5-6个学科中。用户若需要A和C学科的题目,勾选后调整其他选项即可生成新试卷。但这一模式不适用于社区创作内容——后者可能包含数百个考试中的数万道题目,且由不同用户添加。

我尝试言简意赅地说明问题,但思绪纷乱、过度纠结于此,急需外部帮助来梳理解决思路。