crm项目-需求分析
############### crm需求分析 ###############
讲师和学生:
1,批量生成上课记录,
2,考勤点名,
3,录入成绩,
4,显示成绩
5,上传作业,os模块,
6,下载成绩,
############### crm需求分析 ###############
销售和客户
1,公共客户,
2,根据客户
3,绑定客户
4,取消绑定
############### crm需求分析 ###############
"""
为什么开发这个crm?
我需要把这个作为一个通用的crm,
开发这个项目要解决企业的痛点
几个角色,销售,客户,检查员,老板, 解决一个销售人员的痛点:
1,聊得多了记不住
2,出现两个销售人员抢单的问题,
3,辞职了怎么办?客户都带走了,
需求:
1,存储客户信息,
2,办理报名手续,
3,跟进记录,一个客户需要跟进多次,所以是一个一对多的关系,需要分表
4,各种维度查询客户信息, 解决客户的管理的痛点:
1,客户要培训,考试,交试卷,要做阶段性的考核,检查,对客户进行管理,
2,最好是每一个客户的培训都有记录
3,每一个客户的业绩最后有问题,都是有原因的,
4,客户都是比较懒的,客户时间是不固定的,需要监督,需要考核
5,客户需要分等级,到的等级之后,可以给各种福利,
需求:
1,查询考核结果,以及排名
2,我的合同
3,我的推荐,推荐别人来加入,
6,投诉建议, 解决培训管理监督人员的痛点:
1,有一个评估
2,跟踪每一个客户的情况,看看客户的经营效果,
需求:
1,检查内容,检查结果批示,通报奖励和通报批评,
3,创建检查记录,考试记录,
4,查看成绩,考核结果, 解决老板的痛点:
1,有多少客户,客户的来源,分析这个来源是否产生了客户,是否还需要继续投入这个渠道,比如百度竞价排名,可以是招商,
2,每个客户业绩怎么样,
3,老板需要看报表,数据都是零散的,不利于分析,聚集起来就利于分析,就知道该往哪一个方向发展,
需求:
1,销售报表分析
2,管理质量分析, """
############### 考虑系统架构 ###############
"""
考虑系统架构 架构设计需要考虑的因素:
1,用户人群,是怎么样的,这个crm主要面对企业内部用户,所以对于各方面的要求不是很高,
页面不需要太炫,甚至安全程度也可以适当降低,公司一般要求越快开发出来越好,
2,用户量,针对企业内部用户量不多,如果是微博,每天上亿用户,用户量特别大,使用django就不合适了,
需要使用tornado,django天生就是做内容管理的,就是通过不同形式把内容展现出来,
这个crm就特别适合django做,微博会有高并发的问题,
3,业务场景,业务比较简单,就是页面点击什么,然后就从数据库查询就可以了,没有复杂的后端逻辑,就是增删改查, 用到的技术:
1,django
2,jQuery,本质就是对原生js的封装,
3,bootstrap 做完这个项目之后,涉及到数据的curd操作,你就都会了,直接就能用,
"""
############### 设计表结构 ###############
""" 需求分析完了,架构设计完成,下一步就是设计表结构,
大部分的交互都是和数据库交互,必须要确定好表结构,否则后续会出现问题,会有很多的坑,不断的出现坑,就填不过来了,
但是肯定会有问题,因为业务是复杂的,多变的,牛逼的开发,架构师,就能把路铺好,提前想到一些坑, 通用相关的表:
1,账号表,
2,角色表,
3,菜单表, 销售相关的表:
1,客户表:没有报名的是客户,报名的是学生,报名的学生要到报名表,
2,客户跟进表,
3,报名表,需要一个学生表,一个学生可能有多条报名信息,可以报多个课程,
4,缴费表, 管理监督相关的表:
1,课程表-----(相当于考核点一样,前台,管理,卫生,等,)这是固定的,
2,班级表-----(相当于是区域一样)
3,上课记录表,一个课程每天都要有记录,一对多的,-----(相当于是培训指导监督考核记录一样)
4,学习记录表,------(相当于培训指导监督考核的结果考核的最后等级一样) 这个东西有很多可以和erp相关的内容, """
############### 展示左侧菜单 ###############
"""
django自带后台admin的使用:
1,注册每个表,
2,创建超级管理员,用来登陆
3,登陆进去里面有user和group,这是django自带的,
4,你可以在user中,创建一个用户,然后登陆,是没有任何的权限的,
5,可以给新建的用户,添加权限,但是这个权限级别只能到表,不能到更具体的了,
6,对于表名,是显示的英文,但是你可以配置表的元信息来改变成为汉字,
7,我们可以使用django自带的认证系统,来创建自己的用户表, ########################## 我们要一个自己的系统,
需求:
1,每一个角色进去之后显示不一样的页面,
比如销售看到的客户表,是一个表格,
比如讲师看到的学员表,也是一个表格, 应该实现每一个人进去看到的是不一样的?
1,笨办法就是每一个表对应的页面都写一遍,但是这样会导致大量的代码冗余,
2,页面应该都是一个页面,只是说展示的数据不一样,然后不一样的部分进行定制化,
3,每一个人进去的菜单,都是动态的,这个菜单也可以使用一个页面,只是展示的菜单数据不同而已,
4,现在来实现前端的展示,前端可以使用bootstrap,可以使用他们提供的页面模板, 步骤:
1,创建一个base ,只保存css,js,等,可以把出去body的部分都放到base,
2,创建一个index,然后继承base,body放到这个index
3,创建static文件夹,放js,css等静态文件, 需求:
一个角色要显示哪些菜单,不同的角色进去,要显示不一样的菜单,要怎么做?
1,他能看到那些菜单,需要定义一下,而且这个数据需要在数据库存放,
2,url和角色怎么关联,肯定是数据库里面关联,crm_roles_menu,crm_roles,crm_menu这个角色和菜单是多对多的,
就是一个角色可以有多个菜单,菜单也可以有属于多个角色,url可以给url起一个别名,然后保存这个别名,
3,创建客户主页面,和销售人员主页面,然后继承index.html,
4,注意,user表中和role表是多对多的,
对于django自带的认证系统还是理解的不够深刻, """
############### 展示所有注册的表 ###############
""" 实现客户库-----客户列表页面
1,有列表
2,搜索
3,有过滤
4,有分页
5,有批量操作, 要做成一个通用的页面,每个页面不配置都一样,然后特殊的部分通过 配置来实现,
你把这个搞出来了,就相当于自己写了一个admin了,
我们可以做成一个模块,可以应用到别的项目,单独做成一个app, 分析url,就是admin/appname/tablename
通过url找到这个表名,这个可以使用反射来找到,就可以把表里面的数据取出来,
然后把数据放到页面,页面上就可以传什么表就展示什么表了,
这是基本的思路 代码怎么写?
首先第一步,先实现一个所有表的列表页面,
1,创建页面,table_index.html
2,继承base,把菜单的部分删除掉,保留单行条,
3,使用bootstrap的面板,上面是appname,下面是tablename, 现在最重要的是解决为什么一注册就展示了这个表,
思路就是创建了一个字典:
{appname:{tablename: tableadminclass,
tablename: tableadminclass,
},
appname:{tablename: tableadminclass,
tablename: tableadminclass,
},
} 怎么通过表名获取到modelclass,和app的名字呢?
1,model_class._meta.app_label
2,model_class._meta.model_name 怎么把admin_class 和model_class 进行关联呢?
admin_class.model = model_class 加了一个属性,利于前端调用, """
############### 展示客户列表页面 ###############
角色和需求
1,销售人员,
1.1,要对客户进行维护,可以对客户进行查看,新增,删除,修改,跟进等操作
代码上的要求:
增删查改各使用一个页面,然后根据每一个表的配置来控制,展示的字段,筛选字典,查询字段,批量操作,要求是可配置的,
1.2,最复杂的是客户查看页面,有查询,有筛选,有批量,有表头,有列表,有分页,
1.3,要有客户报名的业务,
1.4,客户池的概念,可以把没有成交可能的放入客户池,也可以把你认为有可能成交的客户拉入自己的名下,
2,讲师
1.1,要批量生成上课记录,对学生考勤
1.2,每天的作业成绩需要录入
3,学生
1.1,要交作业,
4,老板
要看报表,
5,登陆,注册,菜单展示,权限控制,
############### 展示客户列表页面 ###############
############### 展示客户列表页面 ###############
############### 展示客户列表页面 ###############
############### 展示客户列表页面 ###############
############### 展示客户列表页面 ###############
############### 展示客户列表页面 ############## #
crm项目-需求分析的更多相关文章
- CRM项目之RBAC权限组件-day26
写在前面 上课第26天,打卡: 世间安得双全法 不负如来不负卿 s17day26 CRM项目 项目概要:XX公司CRM - 权限管理,公共组件,app ***** - 熟悉增删改查,Low *** - ...
- 读《31天学会CRM项目开发》记录2 - 企业信息管理系统
在信息技术的快速推动下,企业如果依然利用传统的管理方式,以人为主,那效率便会大打折扣.在此背景下,企业信息化系统得 到了高速发展.如我们常见的ERP系统.MES系统,都是提高公司运行效率,降低运营以及 ...
- crm项目开发之架构设计
CRM customer relationship management 客户管理系统 1. 干什么用的? 管理客户 维护客户关系 2. 谁去使用? 销售 班主任 项目经理 3. 需求: 1. 登录 ...
- 某CRM项目招投标工作的感悟
最近参与了某公司的CRM项目招标工作, 由于此项目涉及到的二级单位比较多,以及项目金额比较大,所以此招标工作从准备到宣布中标一直持续了大概3个月时间,中间过程发生了一些颇有意思的事情,因为保密的原因无 ...
- BI项目需求分析书-模板
目录 目录 .............................................................................................. ...
- CRM项目总结
CRM项目总结 一:开发背景 在公司日益扩大的过程中,不可避免的会伴随着更多问题出现. 对外 : 如何更好的管理客户与公司的关系?如何更及时的了解客户日益发展的需求变 ...
- NO.7 项目需求分析
NO.7 项目需求分析 由于我们组的第一次选题并没有通过,所以我们又重新选择了一个题目--高校学生征信系统. 结合老师的作业要求,我们对该项目进行了详细的需求分析,软件需求规格说明书地址请点击这里.软 ...
- 《Miracle-House团队》项目需求分析改进
(一)团队项目需求分析改进 一.<西小餐项目需求规格说明书>的不足 通过老师和其他同学的指正和建议,我们发现上次的需求规格说明书存在以下不足: 1.需求规格文档不够完整和规范: 2.系统设 ...
- 读《31天学会CRM项目开发》记录1 - 认识软件开发
今天闲来无事,心中又对软件开发充满了向往和憧憬.一直认为实践是检验真知的唯一标准,也是快速提升的绝密方法,是巩固基础加深基础的好去处.故在JD上搜了下软件开发,看到了这本<31天学会CRM项目开 ...
随机推荐
- k8认证机制
参考下面博文 http://www.mamicode.com/info-detail-2270627.html 需要补充: k8s的的认证机制场景使用 客户端证书认证 采用双向证书进行 ...
- pytorch 数据操作
数据操作 在深度学习中,我们通常会频繁地对数据进行操作.作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作. 在PyTorch中,torch.Tensor是存储和变换数据的主要工具.如果你 ...
- DLL对应的导入库一定会生成的
测试代码: #pragma once #define TESTDEPEND_EXPORTS #ifdef TESTDEPEND_EXPORTS #define TESTDEPEND_API __dec ...
- VS2017中使用ReportViewer控件,vs2017找不到Microsoft Rdlc Report Designer for Visual Studio
VS2017中没有ReportViewer控件,这个控件用来实现在项目中显示和打印关系数据库中的表比较容易,特别是想要打印的时候,这个比用DataGridView和PrintDocument要简单一些 ...
- CSU_1414 Query On a Tree BFS序+DFS时间戳进行预处理
2014 csu校赛 I 题,比赛的时候拿着他看了几个小时愣是没弄出好的方法,我们也想过统计出每个root的节点总数,然后减去离它d层的子节点的数目,即为答案.但是因为树的存储是无序的,所以每次为了找 ...
- i春秋-web-爆破-1
题目内容:flag就在某六位变量中. 题目 include "flag.php"; $a = @$_REQUEST['hello']; if(!preg_match('/^\w*$ ...
- 1-4 无监督学习(Unsupervised Learning)
无监督学习定义: [无监督学习]中没有任何的标签或者是有相同的标签或者就是没标签.所以我们已知数据集,却不知如何处理,也未告知每个数据点是什么.别的都不知道,就是一个数据集.你能从数据中找到某种结构吗 ...
- h5-语义化标签的兼容性问题
1.html代码 <header>头</header> <nav>导航栏</nav> <main> <article>左< ...
- 《Docekr入门学习篇》——Docker仓库harbor
Harbor Harbor仓库介绍 我们在日常Docker容器使用和管理过程中,渐渐发现部署企业私有仓库往往是很有必要的, 它可以帮助你管理企业的一些敏感镜像, 同时由于Docker Hub的下载速度 ...
- Java之线程通信的方法
/** * 线程通信的例子:使用两个线程打印 1-100.线程1, 线程2 交替打印 * * 涉及到的三个方法: * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器. * no ...