CrazyNicolas / Online-Programming-Platform

软件工程课程设计-在线编程笔试平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Online-Programming-Platform

项目课题:

​ 实现一个在线编程笔试平台

课题详情:

​ 该课题是一个在线编程笔试平台,主要功能是候选人在线完成代码编写,面试官可查看编程结果。该课题涵盖了前端和后端常用的技术栈,前端部分推荐使用 React / Vue 等视图框架进行开发,后端推荐使用 轻服务 / NodeJs 技术开发。

【挑战】部分为非必须完成。

任务拆解:

  1. 登录/注册模块

    1. 支持邮箱登录和注册
    2. 支持退出登录
  2. 面试题模块

    1. 面试官可填写面试题
    2. 每个面试题有固定链接
    3. 支持新建面试题和修改面试题目
    4. 支持邀请一个候选人编程
    5. 面试题目支持富文本格式
  3. 在线编程模块

    1. 候选人可在线编写代码
    2. 代码支持多种语言高亮
    3. 候选人侧提交最终编程代码
    4. 面试官侧刷新能看到最终代码
  4. 在线留言模块

    1. 候选人可以通过文字给面试官留言
    2. 面试官可以回复
    3. 留言内容长期保存
    4. 留言模块自动刷新
  5. 【挑战⭐️】

    在线编程模块支持自动刷新

    1. 候选人侧代码支持自动保存
    2. 面试官侧代码自动刷新
  6. 【挑战⭐️⭐️】

    在线留言模块改成实时文字聊天

    1. 候选人和面试官可实时文字聊天
    2. 其他获得链接的人都可参与文字聊天
  7. 【挑战⭐️⭐️⭐️】

    在线语音聊天模块

    1. 候选人和面试官可实时语音聊天
  8. 【挑战⭐️⭐️⭐️⭐️⭐️】

    在线编程模块支持运行 JS 代码

    1. 候选人和面试官可在线运行 JS 代码并查看输出
  9. 【挑战⭐️⭐️⭐️⭐️⭐️】

    在线编程模块支持协同编辑

    1. 候选人和面试官可实时协作编程

拟用技术:

前端

​ 1.Vue

前后端交互

​ 1.基于Promise的HTTP库Axios

后端

​ 1.服务端JavaScript运行环境node.js

​ 2.基于node.js的Express框架

​ 3.Mysql数据库

前端页面模块划分:

​ 1.注册登录页面

​ 分为注册、登录两个模块

​ 注册:用户ID、用户类型、密码、确认密码

​ 登录:用户ID、密码

​ 根据后端返回的用户类型跳转到相应主页

​ 2.面试官页面——面试题模块

​ 页面上显示面试题模块(每个面试题一个box),点进模块跳转至面试题链接查看面试题目以及候选人提交的最终代码结果

​ 面试题的增、改

​ 面试题页面下有评论区

​ 3.候选人页面

​ 分两个模块,一个模块是在线编程模块,进入此模块后显示面试题在线编程,底部设置评论区可给面试官留言;另一模块是查看以往提交过的面试题结果,底部设置评论区可给面试官留言也可查看面试官的回复

后端:

​ 数据库保存:

​ 1.用户表,包含用户ID、用户类型、密码

​ 2.面试题表,包含面试官用户ID,题目

​ 3.候选人提交的代码表,包含候选人用户ID,题目,提交代码,提交时间

​ 4.评论,包含用户ID,评论,评论时间……

​ 后端返回数据:

​ 1.注册模块:先判断用户ID是否已存在,已存在则注册失败,返回失败提示信息;不存在则在用户表中新建用户,返回成功提示信息

​ 2.登录模块:先判断用户ID是否已存在,不存在则登录失败返回失败提示信息;已存在则登录成功,返回成功提示信息以及用户类型(前端根据用户类型进行页面跳转)

​ 3.面试题模块:返回数据库中保存的面试题

​ 4.提交代码查看模块:返回数据库中保存的提交代码

​ 5.评论区模块:根据面试题页面,返回相应的评论内容

成员分工:

前端 曾一鸿 丘卓栩

后端 桂引暄 江晓昀 罗惠心

About

软件工程课程设计-在线编程笔试平台