SAAS平台每日开发进度

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

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

开发进度

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
本帖由系统于 2年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10

环境配置:

因为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系统等等,是租户注册后最终使用的产品。
管理后台:管理员登陆的后台,也就是中央应用的后台。
用户后台:用户登陆的后台,可以创建租户应用,可以进行资料完善以及付费购买产品等等操作。
租户后台:每个租户应用的后台,租户自己的团队人员登陆。

2年前 评论


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

用户

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

代理商

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

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

企业

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

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

付费

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

产品

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

Laravel

2年前 评论

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

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

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

2年前 评论

后续的了?

2年前 评论

求个后续

1年前 评论
QIN秦同学 1年前
xxx (作者) 1年前

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