练习-托育项目

需求

  • H5
  • CMS
  • Node 服务

功能点

  • 家长端,手机号,验证码登录
  • 教师端,邮箱密码登录
  • 每日评价数据保存
  • 每月评价数据保存
  • 家长端是否阅读过消息
  • 切换学员

技术选型

使用 Vue 开发 CMS 系统,API 使用一套 Node 服务器。

构建完整的架构,添加 API 参数校验工具,添加全局异常处理,统一错误信息,密码加密,使用jwt生成用户令牌

项目分层结构

controller中定义路由,接受参数和返回结果。

service中编写具体的业务逻辑。

model中定义模型,且操作数据库。

数据库结构设计

概要设计

  • 轮播模块数据表

    • ID(主键)、模块名称、模块类型、模块排序值、图片、跳转链接
  • 学员信息表

    • ID(主键)、学员号、学员姓名、学员性别、看护教师邮箱、看护教师姓名、家长手机号
  • 家长信息表

    • 家长手机号(主键)、密码
  • 教师信息表

    • 教师邮箱(主键)、密码、教师姓名
  • 每日评价表

    • ID(主键)、学员号、教师邮箱、家长手机号、评价状态、评价时间、已读手机号、在园数据、图片评论
  • 月度评价表

    • ID(主键)、学员号、教师邮箱、家长手机号、评价状态、评价时间、已读手机号、主题内容、教学目标、详细信息、本月进步、童言童语、难忘的事、想对爸爸妈妈说的

逻辑设计

轮播模块数据表nursery_banner

字段名称类型说明
id(PK)int主键
namevarchar(128)模块名称
typevarchar(32)模块类型
indexint(2)模块排序值
imagesvarchar(256)图片,多张图片用,分割
linkvarchar(128)跳转链接

学员信息表nursery_user_info

字段名称类型说明
id(PK)int主键
userCode(UK)varchar(32)学员号
userNamevarchar(8)学员姓名
userSexvarchar(4)学员性别
teacherEmailvarchar(64)看护教师邮箱
teacherNamevarchar(64)看护教师姓名
parentPhonevarchar(64)家长手机号

家长信息表nursery_parent_info

字段名称类型说明
id(PK)int主键
phone(UK)varchar(64)家长手机号
passwordvarchar(64)密码

教师信息表nursery_teacher_info

字段名称类型说明
id(PK)int主键
email(UK)varchar(64)教师邮箱
namevarchar(64)教师姓名
passwordvarchar(64)密码

每日评价表nursery_day_evaluation

字段名称类型说明
id(PK)int主键
userCode(UK)varchar(32)学员号
teacherEmailvarchar(64)看护教师邮箱
parentPhonevarchar(64)家长手机号
stateint(2)评价状态
datedate评价时间
isReadPhonevarchar(64)已读手机号
appraiseInfovarchar(256)在园数据
appraiseTextvarchar(1024)在园评价
appraisePicUrlvarchar(256)在园图片

月度评价表nursery_monthly_evaluation

字段名称类型说明
id(PK)int主键
userCode(UK)varchar(32)学员号
teacherEmailvarchar(64)看护教师邮箱
parentPhonevarchar(64)家长手机号
stateint(2)评价状态
datedate评价时间
isReadPhonevarchar(64)已读手机号
subjectContentvarchar(1024)主题内容
teachingTargetvarchar(1024)教学目标
remarkvarchar(1024)详细信息
monthImprovevarchar(1024)本月提升情况
tytyvarchar(1024)童言童语
teacherRemarkvarchar(1024)让老师难忘的事
toParentvarchar(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、关联、多表查询
Last Updated: 2022/4/21 11:37:56
Contributors: 黎聪