SAAS平台每日开发进度

SAAS开发已经进行了几天了。准备在博客里记录一下每日开发进度。
对SAAS平台开发有兴趣的朋友可以加Q群:259960971
技术小站:wyz.xyz/ 其他一些零碎的想法会写在这里。

演示站近期上线。上线后会在本帖更新地址。

开发进度

1,框架搭建 - (6月20日)
2,主要的功能整理 - (6月20日)

本作品采用《CC 协议》,转载必须注明作者和本文链接
乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
本帖由系统于 1个月前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

环境配置:

因为saas平台是自己运营的,不是给客户私有部署的,所以不用照顾其他环境,尽量使用各种技术产品的最新版。
PHP 8.0
MYSQL 8.0 (为了数据安全,准备使用腾讯或者阿里的云数据库)

框架选型

SAAS系统使用PHP的框架LARAVEL最新版(8.x)进行。

平台本身主要使用laravel的两个扩展,Dcat Admin以及Tenancy。

Dcat Admin是一个快速生构建后台管理的扩展。
文档见:《Dcat Admin 中文文档》

Tenancy是一个在laravel下实现saas的扩展。
文档见:doc.wyz.xyz/

SAAS产品构思

小团队开发,面临着各方面资源和精力不足的问题,并且单一的saas产品不知道能否成功。
所以准备做多个产品。并且为了节省管理和宣传的成本,只使用单一的品牌。
也就意味着,我准备在一个SAAS平台下面放多个产品,用户注册后可以选择自己喜欢的产品。
这样做的好处是开发精力全部集中在一个平台上。管理也方便。
但坏处也有,就是多个产品放在一个平台内,会造成各种耦合,不利于产品的更新和部署以及风险隔离。
这个目前也是最大的一个困扰。有朋友如果有好的建议可以联系我,微信:shebaoting

开发构思

SAAS采用多数据库方式,也就是会给每个租户生成单独的数据库。这是Tenancy自带的功能。

使用Dcat的多后台功能,生成两个后台。一个是总管理后台,一个是用户后台。
总管理后台负责管理平台所有数据,只有管理人员可以进入。

用户后台是给普通用户登陆。用户注册后,可以登陆用户后台,然后在用户后台完善资料,以及创建多个租户应用。付费购买产品套餐等等操作。

名词解释

中央应用:SAAS平台本身。
租户应用:指的是SAAS平台内包含的每个产品本身。比如CRM系统,OA系统等等,是租户注册后最终使用的产品。
管理后台:管理员登陆的后台,也就是中央应用的后台。
用户后台:用户登陆的后台,可以创建租户应用,可以进行资料完善以及付费购买产品等等操作。
租户后台:每个租户应用的后台,租户自己的团队人员登陆。

4个月前 评论


对主要的功能需求进行一个整理,方便初始版本的开发构建。

用户

tenancy这个扩展是没有用户的概念的,只有租户,也就是说申请后就直接生成租户应用。之后所有的登陆都在租户应用进行。
但是因为我的saas是包含了多个租户应用。会有同一个用户开通多个租户应用的情况产生。所以为了方便管理,增加了用户的概念。
也就有了用户后台,用户在自己的后台可以开通多个应用,管理多个租户应用。

代理商

对于一个前途未卜的SAAS产品,个人觉得刚开始是不必有代理商的功能的,可以后期根据发展情况在扩展。但是因为我们有了用户这个概念,也有了用户后台,所以代理商在这里可以完全等同于用户。顶多给用户加一个等级字段,就有了代理商的功能。

给不用等级的用户,定不同的产品折扣即可。

企业

企业主要是用户对自身所在组织信息的完善,用户注册后,需要完善主体信息,比如个人或者企业,以及联系方式,开票信息等等。
企业的功能主要是为了SAAS平台收集客户的信息,日后方便维护客户以及联系客户。

企业的实现有两种。
一种是,用户登陆上去,完善一下自己的企业信息。一个用户只有1个企业。
另一种是,用户后台有个企业库,一个用户可以增加多个企业。这个是为了迁就代理商,比如代理商给自己的客户开通产品。那么可以给自己开通的每一个租户绑定一个企业信息。
目前这两种怎么选择,还在犹豫,个人倾向于前期先一个用户一个企业。先上线,后根据情况扩展。

付费

假设saas平台内有两个应用。一个是CRM产品,一个是博客产品(为了举例随便一说的)。
CRM产品的付费机制,是根据团队人数付费。比如团队有20个人都要使用,那么就需要购买20个使用名额。
但是博客产品,和团队人数无关,可能这时候的付费,购买的就是功能了。比如普通版本,专业版本。
所以也就意味着,不同的产品会有不同的付费机制。

产品

SAAS平台内可以有多个产品。所以增加一个产品管理。
每个产品有自己的英文标识,为了和租户应用关联。
产品有自己的标准价和阶梯价格。阶梯价格是一个json字段。不同的产品可以设置不同的阶梯。比如上面说的CRM,可以是购买时长的阶梯,比如一次性购买半年是多少钱。一次性购买一年是多少钱。
博客产品的阶梯是,普通版多少钱,专业版多少钱。
因为产品的付费机制不一样。所以这里的阶梯价格设计形成json字段,产品根据自己的需求将阶梯内容写进json存储。

Laravel

4个月前 评论

基于具体的业务问题去构建项目会更好

4个月前 评论
shebaoting (楼主) 4个月前
一直不太理解SaaS系统,数据库怎么设计。
有相关学习资料吗?求科普、多谢!
1个月前 评论

macOS QQ 太烂了,搜索群的功能坏了很久,我用 QQ 加下。

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!