现代软件工程_团队项目_阿尔法阶段_前端及后端新增功能_v1.0.1_2017.11.29

前端及后端新增功能v1.0.2

本篇文章的后端功能由php实现,可在阿里云服务器上查看源代码


一、实现功能简介:

  • 注册新用户
  • 登录
  • 检验是否登录
  • 完善我的信息
  • 发布我的自习
  • 显示已有自习列表
  • 翻页查看更多自习

二、具体实现

注册新用户

前端页面为regestered.html

1.表单信息

  • 账号account
  • 密码password
  • 确认密码confirmPassword
  • 昵称nickname
  • 手机号码cellphonNumber
  • 科大邮箱ustcEmail
  • 验证码verificationCode

2.前端验证

  • 通过regestered.js中的check_info(),每当输入完一个点击下一个输入框时对已有输入内容(不包含长度为0,也就是没有输入过的输入框)进行验证
  • 通过regestered.js中的goToLoginFromRegestered(),在提交表单数据时对所有输入内容进行验证,只有所有输入框都有输入,并且符合要求才可以提交
  • 前端验证具体流程 
    • 在form表单的最下方有一个type=’submit’的input标签
    • 点击该标签意味着提交当前表单数据
    • 由于form标签有onsubmit=”return goToLoginFromRegestered()” 
      • 故将先验证这个函数,返回值为false则不会跳转,将出现alert框,提示输入内容有误
      • 若果返回值为true则会执行form标签的action
    • form标签的action=”../php/regestered.php” 
      • 表单数据被提交到regestered.php中,之后将连接数据库并进行插入 
        【之后各项功能的前端验证部分流程均类似,不再赘述】

3.具体要求

  • 账号:

    • 6-12位字符
    • 账号错误提示account_warning
  • 密码: 
    • 6-12位字符
    • 密码错误提示password_warning
  • 确认密码: 
    • 6-12位字符
    • value与密码相同
    • 确认密码错误提示confirmPassword_warning
  • 昵称 
    • 6-12位字符
    • 密码错误提示nickname_warning
  • 手机号码: 
    • 11位阿拉伯数字
    • 手机号码错误提示cellphoneNumber_warning
  • 科大邮箱: 
    • 以@mail.ustc.edu.cn结尾
    • 邮箱错误提示ustcEmail_warning
  • 验证码: 
    • 验证码功能暂未完成
    • 目前逻辑是必须为klkq

4.已知未完成逻辑

  • 账号、手机、邮箱应该为数据库中没有的
  • 验证码应该生成随机验证码发送到邮箱

5.后台上传

通过regestered.php文件与数据库交互,当前端表单验证的goToLoginFromRegestered()函数验证通过,返回true时,转到regestered.php文件

后台连接本地的3306端口的数据库,数据库用户密码均为root

向klkq_account表中插入表单post上来的所有数据

成功插入后输出js语句转到登录界面。


登录

前端页面为index.html

1.表单信息

  • 账号account
  • 密码password
  • 记住密码remember

2.前端验证

  • 通过checkAccount.js中的checkAccount(),输入完用户名后点击密码输入框,就会调用checkAccount.php对已有输入做验证

    • 通过如果在数据库中检测,若检测到账号则返回“”到account_warning
    • 若没检测到账号则返回“账号不存在”到account_warning
  • 点击记住密码勾选框,增加两个cookies,分别为account和password 
    • 取消勾选后将两个cookies的值设为null(这里应该删掉cookies,需要改正)
  • 当提交表单时,直接调用checkAccountPassword.php(这里应该增加一个js,这样可以避免下面重新刷新页面的问题)对account和password进行比对 
    • 如果在数据库中看到同时满足account和password的数据

      • 则跳转到登录界面
      • 同时存储cookies,account_remember_login_state和password_remember_login_state用于记住登录状态
    • 如果不满足则提示密码错误后重新加载登录界面(这里应该更改,应该加一个js)

3.具体要求

  • 账号:

    • 能够在数据库中找到与之对应的
    • 账号错误提示account_warning
  • 密码: 
    • 在提交之前不能为空
    • 提交之后进行比对

4.已知未完成逻辑

  • 取消勾选记住密码时应该删除cookies而不是设置为null
  • 应该增加一个js用于传递数据,避免直接传递数据导致一旦账号密码错误登录页面必须重新刷新一次
  • 账号、邮箱、手机号码等应该增加验证数据库中是否已经存在的逻辑,如果验证为已存在应该提示已存在

5.后台上传

  • checkAccount.php验证是否存在账号
  • checkAccountPassword.php验证账号和密码是否存在并匹配

检验是否登录

在登录界面的checkAccountPassword.php执行成功的最后将会创建两个cookie 
account_remember_login_state 和 password_remember_login_state 
用于验证是否已经登录,使浏览器可以保存登录状态

  • 在的其他页面都引入check_login.js

    • 登录页面除外
    • 需要调用window.onload()函数的页面除外(这些页面会把本段写到这些页面的js中)
  • 将会在页面载入是检验是否有account_remember_login_state 
    • 如果有,将会把导航栏的account_remember_login_state_welcome赋值为用户名
    • 如果没有,将会提示请先登录,并跳转到登录页面

完善我的信息

前端页面为–/self_study/improve_information.html

1.表单信息

  • 账号account
  • 真实姓名realName
  • 昵称nickname
  • 性别sex(选择框)
  • 学院department(选择框)
  • 年级grade(选择框)
  • 手机号码cellphoneNumber(数据库中读取,不可更改)
  • 科大邮箱ustcEmail(数据库中读取,不可更改)
  • 学号studentNum
  • 科气值ustcGas(数据库中读取,不可更改)
  • 兴趣爱好interest
  • GPA gpa
  • 个人介绍introduction
  • 个人头像 功能暂未实现
  • 朋友圈 功能暂未实现

2.1表单自动填充–/js/improve_information.js 和 –/php/improve_information_read.php

考虑到用户可能需要对已经上传的数据进行更改,我们在加载本页面时添加了自动填充功能

  • 在页面加载时调用improve_information.js 的 fillExistedInfomation(account)
  • account为cookies中读取的数据
  • 调用improve_information.php
  • 如果数据存在则返回数据
  • 如果数据不存在则返回空数据“”

2.2前端验证–/js/improve_information.js

【已下验证规则均有待商榷】

  • 账号

    • 账号并非用来验证,是用来找到数据库中对应数据的id
  • 真实姓名 
    • 长度0-30
    • 错误提示realName_warning
  • 性别、学院、年级 
    • 长度>0
  • 学号 
    • 长度为10(还应该验证前两位为PB,SA或BA)
    • 错误提示studentNum_warning
  • 兴趣爱好 
    • 长度0-150
    • 错误提示interest_warning
  • GPA 
    • 数值0< gpa <4.3
    • 长度4(包含小数点)
    • 错误提示gpa_warning
  • 个人介绍 
    • 长度0-150
    • 错误提示introduction_warning

验证规则同注册页面

  • 每当点击其他的input框时check_info_improve_information()都对已有的进行验证
  • 提交表单时goToLoginFromImproveInformation()对所有输入框是否符合规范,是否均有输入进行验证

4.已知未完成逻辑

  • 个人介绍和兴趣爱好增加已输入字符统计功能
  • 学号验证增加PB/SA/BA
  • 部分信息应该增加第二次登陆设置为不可修改

5.后台上传–/php/improve_information_write.php

  • 上传逻辑同注册,只不过把insert换成了update

发布我的自习

前端页面为–/self_study/release_self_study.html

1.表单信息

  • 账号account
  • 自习时间段selfStudyTime
  • 自习地点selfStudyLocation
  • 自习科目selfStudySubject
  • 理由陈述reasonStatement
  • 朋友圈 功能暂未实现

2.1表单自动填充–/js/release_self_study.js 和 –/php/release_self_study_read.php

考虑到用户可能多次自习理由时间地点科目相同,我们在加载本页面时添加了自动填充功能

  • 在页面加载时调用release_self_study.js 的 fillExistedInfomation(account)
  • account为cookies中读取的数据
  • 调用release_self_study_read.php
  • 如果数据存在则返回数据
  • 如果数据不存在则返回空数据“”

2.2前端验证–/js/release_self_study.js

【已下验证规则均有待商榷】

  • 自习时间段

    • 时间需要按照规定格式输入(应该改成日期输入框,通过点击日历上的信息输入)
    • 改正过后只要验证长度大于0即可
    • 错误提示selfStudyTime_warning
  • 自习地点 
    • 长度大于0
  • 自习科目 
    • 长度0-30
    • 错误提示selfStudySubject_warning
  • 理由陈述 
    • 长度0-30
    • 错误提示reasonStatement_warning

验证规则同注册页面

  • 每当点击其他的input框时
  • check_info_improve_information()都对已有的进行验证
  • 提交表单时goToLoginFromImproveInformation()对所有输入框是否符合规范,是否均有输入进行验证

4.已知未完成逻辑

  • 增加时间选择框

5.后台上传–/php/release_self_study_write.php

  • 上传逻辑同注册,只不过把insert换成了update

显示已有自习列表

1.页面信息–/self_study/home_page.html

页面主干部分为3个div,用于显示目前已有的自习

  • self_study_0
  • self_study_1
  • self_study_2

2.1后台读取数据–/self_study/home_page.js 和 –/php/home_page_read.php

  • 页面加载时调用home_page.js 中的showSelfStudy(jsonId = 0) 0代表第一页
  • 该函数将会向服务器请求数据
  • home_page_read.php将会返回一个json格式的数据
  • home_page.js将会读取数据并传到页面

2.2翻页重新读取–/self_study/home_page.js 和 –/php/home_page_read.php

  • 首页firstPage()
  • 上一页previousPage()
  • 下一页nextPage()
  • 尾页lastPage()

3.已知未完成功能

    • 尾页函数过于理想化
    • 后台读取数据条数不是3的整数倍出现空白自习框
时间: 2024-11-08 16:28:44

现代软件工程_团队项目_阿尔法阶段_前端及后端新增功能_v1.0.1_2017.11.29的相关文章

【软件工程实践 &#183; 团队项目】 第一次作业

[软件工程实践 · 团队项目] 第一次作业 队员姓名与学号(标记组长) 学号 姓名 20165211 丁奕(组长) 20165208 孔月 20165230 田坤烨 20165226 刘香杉 队名 快奶我一口 队员风采: 全军出击!!!! 团队的首次合照 团队的特色描述 我们敲认真! 原文地址:https://www.cnblogs.com/KY-high/p/9000409.html

现代软件工程_团队项目_阿尔法阶段_需求分析文档_2017.11.13

用户需求分析 版本 v1.0.0 0.目录 1. 引言 1.1 编写目的1.2 项目背景1.3 预期的读者和阅读建议1.4 项目范围1.5 参考资料 2.用户需求分析 2.1. 调查问卷(User Survey) 2.2. 用户场景分析(User Analysis) 用户场景用户需求 2.3. 项目创新点与收益(Approach and Benefit) 创新点收益 2.4. 市场与竞争(Competitors) 市场分析竞争 1. 引言 1.1 编写目的 此需求规格说明书编制目的是明确本项目的

现代软件工程_团队项目_阿尔法阶段_第七次会议记录_2017.12.2

第七次会议记录 会议时间:2017.12.2 12:30-13:00 会议地点:中科大西区二号楼一楼吧台 参会人员:刘荪傲 姜博文 顾培健 徐宇飞 张淦霖 夏铭阳 [内容一]:github团队仓库使用 http://blog.csdn.net/gane_cheng/article/details/52205480 https://github.com/keqiyjs [内容二]:团队成员职能变更 刘荪傲由后端开发转到前端开发 姜博文由前端开发转到前端开发+前后端交互+后端开发 [内容三]:新的需

软件工程导论团队项目

Section1 团队介绍: 1. 团队成员信息: 张洪宇2016012092(组长) 韦佳妮2016012071 安然2016012088 杨岚青2016012086 李伟2016012023 李浩涌2016012027 郑书鸿2016011996 2. 团队名称: 极速光年 3. 项目描述:俗语有云,民以食为天.我们团队想要做一个能够查看每日食堂提供菜品图片并且能够进行"食堂预定点餐"的微信小程序,这个微信小程序还具有留言评论的功能. 4. 队员风采: (1)张洪宇 风格:随和,雷

现代软件工程_团队项目_阿尔法阶段_团队建设_第一次会议记录_2017.11.11

第一次会议记录 会议时间:2017.11.11  12:00-14:00 会议地点:中科大西区图书馆201研讨室 参会人员:刘荪傲 姜博文 夏铭阳 顾培健 徐宇飞 张淦霖 [内容一]:自我介绍 六位同学分别进行自我介绍,15级的四位同学均为信息学院英才班学生,刘荪傲与顾培健.徐宇飞与张淦霖为现代软件工程结对编程队友,夏铭阳为14级信息学院学生,姜博文为14级物理学院学生. 大家就自己的编程能力交流了一下,发现6个人中没有人会javascript和java和PHP(很尴尬),任重而道远啊!不过大家

现代软件工程_团队项目_阿尔法阶段_第三次会议记录_2017.11.15

第三次会议记录 会议地点:科大西区图书馆303 会议时间:2017.11.15 18:30-21:30 参会人员:全部 内容一:制作课堂汇报PPT 1.确定展示内容: 团队介绍 组员介绍 团队介绍 项目综述 灵感来源 产品简述 产品价值 市场分析 精品分析 预期收益 调研结果 效果展示 页面产品大纲 产品页面模型 页面原形网址 场景分析 研发计划 2.确定团队核心价值观 让每个科大都能约到合适的人 3.工作分工: 刘荪傲:ppt架构确定,团队介绍,项目综述 姜博文:市场调研分析.效果展示 夏铭阳

现代软件工程_团队项目_阿尔法阶段_第二次会议记录_2017.11.13

第二次会议记录 会议时间:2017.11.13  12:00-12::30 会议地点:中科大西区第三教学楼A教一楼讨论区 参会人员:刘荪傲 姜博文 顾培健 徐宇飞 张淦霖 [内容一]:页面原型v1.0展示 (一)介绍 经过对比,我们采用了mockplus做页面原型设计软件.于11月12日设计出了v1.0版本. 版本结构如下: v1.0 1.0.0 登录 1.0.1 创建新用户 1.0.2 找回密码 1.0.3 已有自习列表 1.0.4 发布我的自习 1.0.5 我已完成的自习 1.0.6 该自习

现代软件工程_团队项目_阿尔法阶段_市场调研问卷_2017.11.11

为了方便统计校内同学的需求情况,我们利用问卷星设计问卷并在学生群中进行转发,问卷收集正在进行. 问卷链接:https://www.wjx.cn/jq/18054499.aspx 问卷内容: 问卷内容在问卷星编写之后截图如下

现代软件工程_团队项目_阿尔法阶段_第四次会议记录_2017.11.20

第四次会议记录 会议时间:2017.11.20  12:00-12:15 会议地点:中科大西区第三教学楼一楼讨论区 参会人员:刘荪傲 姜博文 夏铭阳 徐宇飞 张淦霖 [内容一]:前端介绍页面原型v1.0.3 增加: 一.页面简单逻辑判断(没有连接数据库,单纯只是格式判断) 1.登录界面设置唯一的账号和密码,账号不对会提示账号不存在,账号正确密码不对提示密码错误,都正确点击登录连接到首页 2.注册界面设置账号密码昵称为6-16位字符,确认密码需要与密码相同,手机号为11位数字,邮箱后缀名为@mai