练习-托育项目
需求
- H5
- CMS
- Node 服务
功能点
- 家长端,手机号,验证码登录
- 教师端,邮箱密码登录
- 每日评价数据保存
- 每月评价数据保存
- 家长端是否阅读过消息
- 切换学员
技术选型
使用 Vue 开发 CMS 系统,API 使用一套 Node 服务器。
构建完整的架构,添加 API 参数校验工具,添加全局异常处理,统一错误信息,密码加密,使用jwt生成用户令牌
项目分层结构
在controller中定义路由,接受参数和返回结果。
在service中编写具体的业务逻辑。
在model中定义模型,且操作数据库。
数据库结构设计
概要设计
轮播模块数据表
- ID(主键)、模块名称、模块类型、模块排序值、图片、跳转链接
学员信息表
- ID(主键)、学员号、学员姓名、学员性别、看护教师邮箱、看护教师姓名、家长手机号
家长信息表
- 家长手机号(主键)、密码
教师信息表
- 教师邮箱(主键)、密码、教师姓名
每日评价表
- ID(主键)、学员号、教师邮箱、家长手机号、评价状态、评价时间、已读手机号、在园数据、图片评论
月度评价表
- ID(主键)、学员号、教师邮箱、家长手机号、评价状态、评价时间、已读手机号、主题内容、教学目标、详细信息、本月进步、童言童语、难忘的事、想对爸爸妈妈说的
逻辑设计
轮播模块数据表nursery_banner
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| name | varchar(128) | 模块名称 |
| type | varchar(32) | 模块类型 |
| index | int(2) | 模块排序值 |
| images | varchar(256) | 图片,多张图片用,分割 |
| link | varchar(128) | 跳转链接 |
学员信息表nursery_user_info
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| userCode(UK) | varchar(32) | 学员号 |
| userName | varchar(8) | 学员姓名 |
| userSex | varchar(4) | 学员性别 |
| teacherEmail | varchar(64) | 看护教师邮箱 |
| teacherName | varchar(64) | 看护教师姓名 |
| parentPhone | varchar(64) | 家长手机号 |
家长信息表nursery_parent_info
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| phone(UK) | varchar(64) | 家长手机号 |
| password | varchar(64) | 密码 |
教师信息表nursery_teacher_info
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| email(UK) | varchar(64) | 教师邮箱 |
| name | varchar(64) | 教师姓名 |
| password | varchar(64) | 密码 |
每日评价表nursery_day_evaluation
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| userCode(UK) | varchar(32) | 学员号 |
| teacherEmail | varchar(64) | 看护教师邮箱 |
| parentPhone | varchar(64) | 家长手机号 |
| state | int(2) | 评价状态 |
| date | date | 评价时间 |
| isReadPhone | varchar(64) | 已读手机号 |
| appraiseInfo | varchar(256) | 在园数据 |
| appraiseText | varchar(1024) | 在园评价 |
| appraisePicUrl | varchar(256) | 在园图片 |
月度评价表nursery_monthly_evaluation
| 字段名称 | 类型 | 说明 |
|---|---|---|
| id(PK) | int | 主键 |
| userCode(UK) | varchar(32) | 学员号 |
| teacherEmail | varchar(64) | 看护教师邮箱 |
| parentPhone | varchar(64) | 家长手机号 |
| state | int(2) | 评价状态 |
| date | date | 评价时间 |
| isReadPhone | varchar(64) | 已读手机号 |
| subjectContent | varchar(1024) | 主题内容 |
| teachingTarget | varchar(1024) | 教学目标 |
| remark | varchar(1024) | 详细信息 |
| monthImprove | varchar(1024) | 本月提升情况 |
| tyty | varchar(1024) | 童言童语 |
| teacherRemark | varchar(1024) | 让老师难忘的事 |
| toParent | varchar(1024) | 想对爸爸妈妈说的 |
开发路由与接口
教师端
教师登录:
post - /loginByTeacher- 入参:
email,password
- 入参:
获取每日评价列表:
get - /getDayListByTeacher- 入参:
date,email
- 入参:
获取每日评价详情:
get - /getDayDetailByTeacher- 入参:
id,email
- 入参:
提交每日评价信息:
post - /postDayInfoByTeacher- 入参:
id,email,appraiseInfo,appraiseText,appraisePicUrl
- 入参:
删除每日评价:
post - /delDayInfo- 入参:
id,email
- 入参:
获取月度评价列表:
get - /getMonthListByTeacher- 入参:
date,email
- 入参:
获取月度评价详情:
get - /getMonthDetailByTeacher- 入参:
id,email
- 入参:
提交月度评价信息:
post - /postMonthInfoByTeacher- 入参:
id,email,subjectContent,teachingTarget,remark,monthImprove,tyty,teacherRemark,toParent
- 入参:
删除月度评价:
post - /delMonthInfo- 入参:
id,email
- 入参:
家长端
家长登录:
post - /loginByParent获取每日评价列表:
get - /getDayListByParent获取每日评价详细:
get - /getDayDetailByParent获取月度评价列表:
get - /getMonthListByParent获取月度评价详细:
get - /getMonthDetailByParent
CMS 系统
获取轮播:
get - /getBanner新建轮播:
post - /addBanner编辑轮播:
put - /editBanner删除轮播:
delete - /delBanner新增学员:
post - /addNewStudent编辑学员:
put - /editNewStudent删除学员:
delete - /delNewStudent
需要补充的知识
- sequelize、关联、多表查询