Coder Social home page Coder Social logo

leetcode_mock_test_project's Introduction

一、说明
名称:设计文档
作者:陈志豪
作用:开发“模拟面试”功能
记录时间:2020年1月14日到1月20日

二、基本功能:
1.按照公司生成模拟面试。同一名用户每次打开同一家公司应该能看到不同的题目;
2.用户可以开始一场模拟面试,有规定时间;
3.用户可以根据公司回看自己的模拟面试记录。

三、项目目标
1.实现“模拟面试”基本功能
2.完成设计文档和配置文档
3.学习Django、Mysql、Redis等工具

四、需求分析和思路(以scrum形式书写)
Scrum分为2个sprint。第一个sprint实现部分功能,第二个sprint实现全部功能。
该项目将以sprint的方式管理,分为两个sprint管理用户故事与项目进度。第一个sprint实现用户登录与做题的功能,第二个sprint实现用户回看做题记录,以sprint迭代的方式实现持续交付。

小明是一名大四的学生,正在为即将到来的校招做积极准备。小明知道算法是拿到理想offer的核心竞争力。但是,不管是看《算法导论》还是自己找题,都觉得效率好低,也坚持不下去,为此很苦恼……
 
Sprint 1
周期:1/14-1/17
(一)用户故事—
小明感到看算法书效率太低了,自己找题做又总是坚持不下去,如果有一个网站,可以刷题就好了!

用户需求:有个网站可以做算法题
(二)用户故事二
小明希望,在网站上做题尽可能模拟真实的面试环境。真实的面试环境最重要的是有时间限制。这样可以更专注、更投入,到了真正面试的时候也不会太紧张。另外,真实的面试环境也不会提醒难度等级。

用户需求:有个模拟做题的产品(功能),可以倒计时。
(三)工作内容
1.搭建一个网站
2.设计题目subject表、user表、user和题目subject的关系表
3.完成模拟面试功能
4.完成用户注册、登录功能
(四)内容细化(按时间顺序排列)
1.画主页、模拟面试功能的UI和跳转关系;
2.设计面试功能,明确出题逻辑(见sprint 1附件);
3.设计和建立题目subject表(所有表设计见后文);
4.设计和建立用户user表;
5.设计和建立user和subject的关系表,一条记录表示user做过这道subject;
6.实现模拟面试功能(从题目表调取title和description,放上1.5小时的倒计时,实现手动结束面试和到时间被动结束面试);
7.实现注册、登录功能。
(五)Sprint 1 附件:面试规则和出题逻辑
1.面试规则
一场面试1小时30分钟,3道题(时间和题数都是变量,可以改变)。
2.结束面试的两种方法
面试结束有两种方式:主动结束和到时结束。只有结束才会跳转到主页,不放“返回”之类的按钮。
3.出题逻辑
(1)一场面试会出现三道题,三道题各不相同。当下一次再考,这三题不会再出现。除非题库中所有的题目被刷完,那么之前的题目会再次出现;
(2)三道题均从没有做过的题中随机抽取;
(3)当所有题都做过时,开始新的一轮,所有题会被标记成未做过;
(4)如果题库中只剩1题或2题,那么这1题或2题必出,同时在所有题中抽取新的题目(会检查是否跟这1题或2题重复,如果重复就去掉再抽)。新的题目会标记为已做过,其他所有题目标记为没做过。
 
Sprint 2
周期:1/18-1/21
(一)用户故事三
小明的dream company是腾讯,所以想主攻腾讯会出的题。小明想熟悉腾讯的出题风格和出题方式,为进入腾讯做努力,不想做腾讯从来没考过的题。

用户需求:根据公司做模拟面试
(二)用户故事四
小明现在可以只做腾讯的题了,但看不到已完成几次面试,每次做题花多少时间,当时提交了几道题,哪天做的,还是觉得不大方便。

用户需求:根据公司查看自己的做题记录(次数,用时,提交数,结束时间)。
(三)工作内容
1.设计company表、company和subject关系表
2.完成根据公司生成模拟面试的功能
3.设计面试quiz表、quiz和subject关系表
4.完成根据公司查看做题记录的功能
(四)内容细化(按时间顺序排列)
1.画出有company的主页UI和相关跳转;
2.在原先没有公司的出题逻辑的基础上加上公司的维度,明确出题逻辑(见sprint 2 附件);
3.设计和建立company表(字段包括id, name, status);
4.设计和建立company和subject关系表(字段包括id, company id, subject id);
5.实现选择公司模式的模拟面试功能;
6.画出回看面试记录的UI和相关跳转;
7.设计和建立面试quiz表(start time, finish time, status, company id外键, user id外键);
8.设计和建立quiz和subject关系表(submit time, status, quiz id外键, subject id外键);
9.实现回看面试记录(次数,用时,提交数,结束时间)的模拟面试功能。

(五)Sprint 2附件:有公司分类的出题逻辑
1.题目和公司是多对多的关系
以两家公司为例:百度和腾讯(可以添加任意多的公司)
题库中的题目和公司是多对多的关系,一道题目可能是:a.只有百度会考;b.只有腾讯会考;c.百度和腾讯都会考;d.百度和腾讯都不考(注:如果只有百度和腾讯这两家公司,那么情况d的题目永远不会被抽到)。

2.不同公司的互相影响
如果在刷百度面试题目时做了共有的题目,那么在腾讯面试时则不会碰到这道题,因为此时user和subject的关系是已经做过的关系。换言之,我们看的还是user和题目的关系。
如果把腾讯的题目都做完了,那么腾讯所有的题目和用户的关系都会重置,包括独属于腾讯的题和(不同公司)共有的题。

五、建议配置环境
Python==3.7.3
MySQL==8.0
asgiref==3.2.3
Django==3.0.2
PyMySQL==0.9.3
pytz==2019.3
redis==3.3.11
sqlparse==0.3.0

leetcode_mock_test_project's People

Contributors

xiajibads avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.