返回作品集
Prizely — 多租户游戏化线索生成SaaS平台

Prizely — 多租户游戏化线索生成SaaS平台

我们设计并开发了Prizely,一个基于Laravel 12的多租户SaaS平台,将线索捕获转化为品牌化游戏体验。商家注册后,可创建一个或多个品牌(每个品牌拥有独立的slug、双色调色板、标志以及最多8个带图片的奖励),配置每个奖励的中奖百分比,并激活幸运转盘或刮刮乐游戏。每个品牌托管在简洁的/{brand-slug} URL下,拥有独立的视觉标识——玩家仅能看到该品牌。游戏前,线索需填写姓名、邮箱和电话表单(GDPR同意复选框可按品牌配置);通过邮箱+电话的重复检测防止作弊。中奖者会收到自动化的奖励邮件,可选择包含兑换码。积分包通过Stripe Checkout购买(按次计费),提供自助账单历史页面。管理仪表板展示每日游戏次数图表、奖励分布统计、转化率以及可筛选、可导出的线索表格(.xlsx)。沙盒测试游戏模式允许所有者在预览游戏时不消耗积分或记录线索。针对线下活动,自助服务终端模式可将设备锁定在单一品牌,仅所有者可解锁。平台支持双语(希腊语/英语),符合WCAG 2.2 AA标准,包含GSAP滚动动画、带JSON-LD的SEO、每页hreflang备用链接以及面向AI爬虫可见性的llms.txt文件。

技术栈

Laravel 12 PHP 8.5 Tailwind CSS GSAP Stripe MySQL Multilingual (el/en) JSON-LD / SEO WCAG 2.2 AA Responsive Design Kiosk Mode Email Automation

挑战

设计一个多租户架构,使每个品牌在单一Laravel安装中保持独立的视觉标识(颜色、标志、奖励),构建两个截然不同的游戏引擎(转盘 vs. 刮刮乐)同时共享通用的游戏/奖励管道,并实现按次计费的Stripe结算,在不影响玩家体验的情况下扣除每次游戏的积分。

解决方案

使用Laravel的租户无关路由配合{brand}通配符和基于策略的所有权门控——单一代码库,无限品牌店面。每个游戏构建为独立的Blade/Alpine组件,输入共享的PlayController,该控制器验证积分、防止重复、通过加权随机选择确定奖励,并发送队列化的确认邮件。Stripe Checkout会话携带元数据(pack_id、brand_id、user_id),通过webhook完成处理;积分余额缓存列避免每次游戏的数据库写入。自助服务终端模式使用会话标志+解锁PIN流程,限制尝试次数。管理仪表板使用Chart.js展示游戏次数/奖励分布,以及基于DataTables的可筛选线索表格,支持.xlsx导出。