0

我正在尝试围绕排行榜的概念设计一个 API 后端(用于移动应用程序)。

一些要求:

  • 我只对在验证某些规则后分配分数感兴趣
  • 后端应该是多应用程序:app1 应该有一些规则,app2 可以有另一组规则
  • 后端接收用户在移动应用程序上执行的操作,并且必须验证这些操作是否有效并分配积分
  • 规则可以是这样的:

如果这是您在 24 小时内第一次看到操作 A,则给用户 10 分

如果操作 B 发生,则给用户 10 分,但如果您每周看到操作 B 超过 10 次,则不给分

  • 必须有先前操作的日志,以便可以将其报告给移动应用程序

  • 计算点数、排行榜分数和报告(在给定的时间范围内)

我研究了优点,但我不明白一个模型是否可以有多个点规则文件(例如:userA 属于 appA,所以 rulesB 不适用于他),以及是否有每个动作的踪迹或只是当前分数。

简而言之:所有这些都值得支持吗?如果没有,你有什么建议?

4

1 回答 1

0

Merit 不支持所有这些开箱即用的功能,但提供了足够的基础设施来通过一些额外的代码解决所有问题。

后端应该是多应用程序:app1 应该有一些规则,app2 可以有另一组规则

您是否希望后端成为所有移动应用程序的单一应用程序计算声誉?如果是这样,移动应用程序的命名空间路由将解决这个问题。例如/app1/purchased,并且/app2/won可以映射到不同的操作,通过遵循该约定,您可以确保每个应用程序都有自己的一组规则。

必须有先前操作的日志,以便可以将其报告给移动应用程序

有一张merit_activity_logs表格,上面记录了发生的每一个动作。您可以从中构建一些逻辑,以便您的移动应用程序向用户显示其先前的活动。

计算点数、排行榜分数和报告(在给定的时间范围内)

计算点是开箱即用的,保留每次更改的历史记录。曾经有Merit::Badge.last_grantedand Merit::Score.top_scored,但我删除了,因为它是特定于应用程序的并且需要太多配置。检查查询的样子可能对您有用:


您提到的其他功能由开箱即用的优点支持。

于 2015-02-20T22:10:23.980 回答