CRM项目知识点总结
CRM(Customer Relationship Management)
概述:客户关系管理简称CRM(Customer Relationship Management)
客户关系管理的定义是:企业为提高核心竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,从而提升其管理方式,向客户提供创新式的个性化的客户交互和服务的过程。其最终目标是吸引新客户、保留老客户以及将已有客户转为忠实客户,增加市场份额。
开发流程
1.需求分析》》2.画思维导图》》3.业务场景分析(用户使用场景)》》4.原型图(UI等等)》》5.选择开发工具(框架、IDE等等)
(1)需求分析
略
(2)画思维导图
先不涉及权限,暂定数据库十一张表,关联关系如下

1 class UserProfile(models.Model): 2 """用户信息表""" 3 user = models.OneToOneField(User) 4 name = models.CharField(verbose_name='姓名',max_length=64) 5 role = models.ManyToManyField('Role',blank=True,verbose_name='角色') 6 7 def __str__(self): 8 return '%s-%s'%(self.name,self.role.name) 9 10 class Role(models.Model): 11 """角色表""" 12 name = models.CharField(verbose_name='角色名',max_length=64,unique=True) 13 menus = models.ManyToManyField('Menus',verbose_name='菜单') 14 def __str__(self): 15 return self.name 16 17 class CustomerInfo(models.Model): 18 '''客户信息表''' 19 name = models.CharField(verbose_name='客户姓名',max_length=64,default=None) 20 contact_type_choices = ((0,'qq'),(1,'微信'),(2,'手机'),) 21 contact_type = models.SmallIntegerField(choices=contact_type_choices,default=0) 22 contact = models.CharField(verbose_name='联系方式详情',max_length=64) 23 source_choices = ( 24 (0,'QQ群'), 25 (1,'51CTO'), 26 (2,'百度推广'), 27 (3,'知乎'), 28 (4,'转介绍'), 29 (5,'其他'), 30 ) 31 source = models.SmallIntegerField(verbose_name='客户来源',choices=source_choices) 32 referral_from = models.ForeignKey('self',null=True,blank=True,verbose_name='转介绍') 33 consult_courses = models.ManyToManyField("Course",verbose_name='咨询课程') 34 consult_content = models.TextField(verbose_name='咨询内容') 35 status_choices = ( 36 (0,'未报名'), 37 (1,'已报名'), 38 (2,'已退学') 39 ) 40 status = models.SmallIntegerField(choices=source_choices,verbose_name='客户报名状态') 41 consultant = models.ForeignKey('UserProfile',verbose_name='课程顾问') 42 data = models.DateField(auto_now_add=True) 43 44 def __str__(self): 45 return self.name 46 47 class Student(models.Model): 48 """学员表""" 49 customer = models.ForeignKey('CustomerInfo',verbose_name='学员客户') 50 class_grades = models.ManyToManyField('ClassList',verbose_name='班级') 51 52 def __str__(self): 53 return self.customer 54 55 class CustomerFollowUp(models.Model): 56 """客户跟踪记录表""" 57 customer = models.ForeignKey('CustomerInfo',verbose_name='客户') 58 content = models.TextField(verbose_name='跟踪内容') 59 user = models.ForeignKey('UserProfile',verbose_name='跟进人') 60 status_choices = ( 61 (0,'近期无报名计划'), 62 (1,'一个月内报名'), 63 (2,'2周内报名'), 64 (3,'已报名') 65 ) 66 status = models.SmallIntegerField(choices=status_choices,verbose_name='报名意向') 67 data = models.DateField(auto_now_add=True) 68 69 def __str__(self): 70 return self.content 71 72 73 74 class Course(models.Model): 75 """课程表""" 76 name = models.CharField(max_length=64,verbose_name='课程名') 77 price = models.PositiveSmallIntegerField(verbose_name='课程价格') 78 period = models.PositiveSmallIntegerField(verbose_name='周期(月)',default=5) 79 outline = models.TextField(verbose_name='大纲') 80 81 def __str__(self): 82 return self.name 83 84 class ClassList(models.Model): 85 """班级列表""" 86 branch = models.ForeignKey('Branch',verbose_name='校区') 87 course = models.ForeignKey('Course',verbose_name='课程') 88 class_type_choices = ( 89 (0,'脱产'), 90 (1,'周末'), 91 (2,'网络班'), 92 ) 93 class_type = models.SmallIntegerField(choices=class_type_choices,default=0,verbose_name='班级类型') 94 semester = models.SmallIntegerField(verbose_name='学期') 95 teachers = models.ManyToManyField('UserProfile',verbose_name='任教老师') 96 start_date = models.DateField(verbose_name='开班日期') 97 graduate_date = models.DateField(verbose_name='毕业日期',blank=True,null=True) 98 99 def __str__(self): 100 return "%s(%s)期" %(self.course.name,self.semester) 101 102 class Meta: 103 unique_together = ('branch','class_type','course','semester') 104 105 106 107 108 109 class CourseRecord(models.Model): 110 """上课记录""" 111 class_grade = models.ForeignKey('ClassList',verbose_name='上课班级') 112 day_num = models.PositiveSmallIntegerField(verbose_name='课程节次') 113 teacher = models.ForeignKey('UserProfile',verbose_name='任课老师') 114 title = models.CharField(max_length=64,verbose_name='本节主题') 115 content = models.TextField('本节内容') 116 has_homework = models.BooleanField(verbose_name='是否有作业',default=True) 117 homework = models.TextField(verbose_name='作业需求',blank=True,null=True) 118 date = models.DateField(auto_now_add=True) 119 120 def __str__(self): 121 return "%s第(%s)节" % (self.class_grade, self.day_num) 122 class Meta: 123 unique_together = ('class_grade', 'day_num') 124 125 126 class StudyRecord(models.Model): 127 """学习记录表""" 128 course_record = models.ForeignKey("CourseRecord") 129 student = models.ForeignKey("Student") 130 131 score_choices = ((100,"A+"), 132 (90,"A"), 133 (85,"B+"), 134 (80,"B"), 135 (75,"B-"), 136 (70,"C+"), 137 (60,"C"), 138 (40,"C-"), 139 (-50,"D"), 140 (0,"N/A"), #not avaliable 141 (-100,"COPY"), #not avaliable 142 ) 143 score = models.SmallIntegerField(choices=score_choices,default=0) 144 show_choices = ((0,'缺勤'), 145 (1,'已签到'), 146 (2,'迟到'), 147 (3,'早退'), 148 ) 149 show_status = models.SmallIntegerField(choices=show_choices,default=1) 150 note = models.TextField("成绩备注",blank=True,null=True) 151 152 date = models.DateTimeField(auto_now_add=True) 153 154 def __str__(self): 155 156 return "%s %s %s" %(self.course_record,self.student,self.score) 157 158 class Branch(models.Model): 159 """校区""" 160 name = models.CharField(max_length=64,unique=True) 161 addr = models.CharField(max_length=128,blank=True,null=True) 162 def __str__(self): 163 return self.name 164 165 class Menus(models.Model): 166 """菜单表""" 167 name = models.CharField(max_length=64) 168 url_type_choices = ((0,'absolute'),(1,'dynamic')) 169 url_type = models.SmallIntegerField(verbose_name='URL类型',choices=url_type_choices,default=0) 170 url_name = models.CharField(verbose_name='URL',max_length=128) 171 172 def __str__(self): 173 return self.name 174 175 class Meta: 176 unique_together = ('name','url_name')
(3)用户使用场景分析
暂定角色:销售、学员、客户、教师、管理员 销售:招生、沟通客户、客户信息录入 学员:上课情况及成绩查询 客户:咨询课程及报名与否 教师:授课及课程记录填写 管理员:角色权限分配、全部信息查看 |
(4)原型图
由于CRM项目注重对数据的处理,所以暂定各个用户共用一套模板,数据动态生成
(5)开发工具的选择
开发环境:python3.5.3
框架:django1.10.6
创建项目
初始化项目结构:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步