1.1
编写目的
项目开发总结报告的编制是为了总结本项目开发工作的经验,说明
实际取得的开发结果以及对整个开发工作的各个方面的评价。
本文档是源代码教育公司在与XX公司的客户关系管理系统实施合同基础上编制的,基于saas模式。本文档的编写为下阶段的设计、开发提供依据,为项目组成员对需求的详尽理解,以及在开发开发过程中的协同工作提供强有力的保证。同时本文档也作为项目评审验收的依据之一。
项目名称:CRM
系统名称:CRM
英文名称:CRM
Saas: SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。
SaaS 应用软件的价格通常为“全包”费用,囊括了通常的应用软件许可证费、软件维护费以及技术支持费,将其统一为每个用户的月度租用费。 对于广大中小型企业来说,SaaS是采用先进技术实施信息化的最好途径。但SaaS绝不仅仅适用于中小型企业,所有规模的企业都可以从SaaS中获利。
客户关系管理系统,是指利用软件、硬件和网络技术,为企业建立一个客户信息收集、管理、分析和利用的信息系统。以客户数据的管理为核心,记录企业在市场营销和销售过程中和客户发生的各种交互行为,以及各类有关活动的状态,提供各类数据模型,为后期的分析和决策提供支持。
客户是公司最宝贵的资源,为了更好的发掘老客户的价值,并开发更多新客户,XX公司决定实施客户关系管理系统。希望通过这个系统完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;希望通过对潜在客户、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。并希望系统提供相关报表,以便公司高层随时了解公司客户情况。
客户服务是一个涉及多个部门,存在一定流程的工作。客户服务水平的高低决定着公司的核心竞争力。该客户关系管理系统应提供一个客户服务在线平台,使客户服务处理过程中相关人员可以在线完成服务的处理和记录工作。
客户关系管理系统在一个企业内部的成功构建,必须有一些前提和基础来做保障。
首先,必须得到高层和领导的全力支持。因为CRM系统是对原有客户关系管理的升级,其结果不可避免会与原来的营销策略不一致,同时会触及到某些人的利益,受到各方的阻力,若没有高层的支持,再好的系统也难以维持下去;
其次,必须重视团队的作用。CRM系统的实施不仅要求团队成员充分了解企业业务流程,而且要求能够将问题与流程结合起来去选择合适的技术,对团队成员的要求较高;再此,必须获得全员的认同。
人员组成(Java开发,实施人员)
管理员(项目经理,产品经理)
团队(3-5人)
Java开发员是必需有的
Java开发人员(3个左右)
集成了客户关系管理思想和先进技术成果的客户关系管理系统,是企业实现以客户为中心战略导向的有力助手。一个完整、有效的CRM系统应当包含以下四个子系统。
客户关系管理系统要突出以客户为中心的理念,首先应当使客户能够以各种方式与企业进行沟通交流,而客户合作管理系统就具备这项功能。
企业中每个部门都需要与客户进行接触,而市场营销、销售、客户服务部门与客户的接触最为频繁,因此,客户关系管理系统需要对这些部门提供支持,业务操作管理系统便应运而生。业务操作管理系统主要实现了市场营销、销售、客户服务与支持等三种基本功能。
数据分析管理系统中,将实现数据仓库、数据集市、数据挖掘等工作,在此基础上实现商业智能和决策分析。此系统主要负责收集、存储和分析市场、销售、服务及整个企业的各类信息,对客户进行全方位的了解,为企业市场决策提供依据,从而理顺企业资源与客户需求之间的关系,提高客户满意度,实现挖掘新客户、支持交叉销售、保持和挽留老客户、发现重点客户、支持面向特定客户的个性化服务等目标。
由于客户关系管理的各功能模块和相关系统运行都由先进的技术进行保障,因此对于信息技术的管理也成为CRM系统成功实施的关键。 [1]
项目的模块组成
基本组成
基础模块(所有系统都可能有)
营销模块(核心)
客户模块(核心)
系统模块(核心)
订单合同模块(扩展)
售后模块(扩展)
更细的一些组成
权限模块
产品模块
报表模块
可以直接使用客户表,然后通过额外添加的状态字段来区分是客户,还是潜在客户
市场专员对分配给自己的潜在客户制定开发计划,力争拿下客户
市场专员对收集客户详细信息的模块,用于分析客户的来源、喜好等信息,以便更好的跟进客户。
收集客户资料是一个漫长的过程,通过客户跟进模块记录下收集资料的每个细节。
公司管理人员,如市场部经理,可以根据实际情况,强制把客户从一个市场专员手里交给另一个市场专员。
在公司中,员工持有的客户信息,很可能会涉及到绩效,所以对客户市场专员的修改要添加控制,记录下移交的原因细节。
这个操作可以在独立的移交模块中移交,也可以在客户界面快速移交。
修改客户的状态字段,客户就被放到资源池
这里可以看作一个客户资源回收站。
市场人员能够主观把一些无法跟进的客户放入资源池。
其他市场人员,能够在这里找到其他人员无法跟进的可以,正所谓“肥水不流外人田”,该模块保证了客户资源的有效利用
多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:
在一台服务器上运行单个应用实例,它为多个租户提供服务。
在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。
多租户数据库隔离的三种设计模式:
①:可一个租户都单独的数据库:
在应用服务器中配制不同的数据源,或者使用不同的连接池。
优点:不同客户的数据物理分离,安全性比较好。
缺点:数据库连接的利用效率不高,技术难度大,需要动态的切换数据源。
②:共享数据库,独立的scheme
这个方案基本是方案①的变种。同一个数据库下可以有多个Schema
优点:除了方案①的优点以外,共享数据源或连接池,效率更高。
缺点:数据库连接池开销会比较大,在mysql数据库中,schema概念不想oracle那么明了。
https://www.2cto.com/database/201801/715711.html
③:共享数据库,共享scheme,共享数据库表,通过租户id进行区别:
t_dept
id name tenant_id
1 zs 1
所有租户的数据都存放在一个数据库的同一套表中, 在表中增加tenant_id标志字段,表明该记录是属于哪个租户的。
优点:数据源和数据库的管理都比较简单。和原来的应用没有差别。
缺点:数据权限比较复杂,增加程序的复杂性。如果应用比较复杂,很多数据表都需
租户在注册的时候,应该选择价格套餐。一个套餐对应多个权限,一个权限对应多个套餐,多对多关系。注意,如果有租户在使用这个套餐,本套餐是不应该被修改的
数据由真实公司企业员工构成,员工(即系统用户)是能够登录系统的最基本单位。可以参与各个业务模块的操作。
优点:这些系统有很大的用户群体;有这些大平台背书,用户的接收度和认可度较好;直接登录,避免用户注册和登录的繁琐过程。
管理员对公部门的维护。
在系统中,所有能够在浏览器中被访问到功能,都可以称作系统(URL)资源。
在资源基础上,对需要控制的资源添加权限,进行访问控制。
对权限的打包。
系统各模块中,会有很多特别简单,且需要客户公司自己维护的信息。为简化对这类信息的维护,基于表的抽取设计思想,建立数据字典模块。
在系统平台搭建起来以后,可以通过系统菜单管理模块对平台最左边的菜单树进行动态管理。
系统日志功能使用Spring AOP技术实现,记录系统用户在登录期间的一切操作,用于管理员对登录用户的使用行为进行分析。
客户交定金后,需要签订(定金)订单
在订单页面里面有一个按钮,可以生成合同,需要把部分订单的信息插入合同里面
客户签订(定金)订单,如果确定购买公司产品,需要签订购买合同
组合关系
公司对购买产品用户进行产品质量的保修。由合同完成自动生成。
保存合同的时候,自动生成一张为期1年的保修单
组合关系
前后端分离
前端:vue,elementui
后端:SSM,Maven多模块,swagger
跨源问题:前端访问 后台 需要得到后台的允许
两种解决:①注解:@CrossOrigin ②配置自定义资源