该项目用了阿里云OSS对象存储,不需要的话可以删了,使用 UploadServlet 即可。
想法起源于学习文化课时错题,因为懒,因此老是不复习,以及文化课笔记较杂。由于本学期有 JSP+Servlet 课程,要完成大作业,因此借此机会实现我的想法。
借助 “Learning-Assistant” 来帮助自己定期规划复习时间。
在笔记方面,当你迷糊记得一定内容,可是不记得在那个笔记中时,“根据内容查找便成为有利的工具”,但无论是自己用 word 还是 typora 等笔记软件,几乎都缺少或不太完美完善(好吧,或许有的很完美但我没用过…)。
由于只教了 “Servlet+JSP”,只能用课本上的知识。因此该项目我尽量避免使用 JSON 和 Ajax 等(老师说教的不深,因此尽量别用),emmm…所以我也留了很多坑,例如文件上传的验证、CSRF 安全、异常处理、404处理等,现在该项目用的几乎都是同步(除了迫不得已)。
2023年 06月 13日 星期二 15:21:16 CST
注册:没有,暂时考虑辅助个人学习使用。
登陆:每个账号都是独立的。
信息 icon:直接跳转到个人主页的信息箱。
个人主页
错题训练:复习错题。
错题世界。
笔记:用富文本?还是便利贴?(那就富文本吧…)
功能如下:
笔记本:
宿舍台式机:
字段名 | 类型 | 备注 |
---|---|---|
u_id | int | 用户唯一标识 |
username | varchar | 用户名 |
password | varchar | 密码 |
CREATE TABLE users (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`username` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`signature` VARCHAR(255),
`image` VARCHAR(255)
);
insert into users values(null, "admin", "admin", "哈哈", "default.jpeg");
字段名 | 类型 | 备注 |
---|---|---|
id | int | 唯一标识 |
total | int | 答题总次数 |
mistake | int | 答错总次数 |
countdown_day | int | 倒数日 |
save_countdown | int | 保存 countdown_day |
u_id | int | 所属用户 |
m_id | int | 所属错题 |
CREATE TABLE statistics (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`total` INT NOT NULL,
`mistake` INT NOT NULL,
`countdown_day` INT NOT NULL,
`save` INT NOT NULL,
`u_id` INT NOT NULL,
`m_id` INT NOT NULL
);
insert into statistics values(null, 1, 1, 3, 1, 1, 1); #100%
insert into statistics values(null, 4, 2, 3, 1, 1, 2); #50.00%
insert into statistics values(null, 6, 2, 1, 1, 1, 3); #33.33%
概率计算公式:
P = m i s t a k e t o t a l P = \frac{mistake}{total} P=totalmistake
概率等级:
没学过概率统计,无法用更加科学准确的计算方法,因此只能用这种最简单的了…
字段名 | 类型 | 备注 |
---|---|---|
id | int | 错题唯一标识 |
mistake | varchar | 错题图片路径 |
correct | varchar | 答案图片路径 |
comment | varchar | 错题备注信息 |
m_info_id | int | 关联到 mistake_info 表 |
u_id | int | 属于那个用户 |
CREATE TABLE mistakes (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`question` VARCHAR(255),
`correct` VARCHAR(255),
`comment` VARCHAR(255),
`m_info_id` INT NOT NULL,
`u_id` INT NOT NULL
);
insert into mistakes values(null, 'question.png', 'correct.png', '测试1', 1, 1);
insert into mistakes values(null, 'question.png', 'correct.png', '测试2', 2, 1);
insert into mistakes values(null, 'default.png', 'default.png', '测试3', 3, 1);
字段名 | 类型 | 备注 |
---|---|---|
id | int | 信息表唯一标识 |
date | date | 录入的时间,无法更改 |
tag_id | varchar | (多)标签,关联到 tag 表 |
CREATE TABLE mistake_info (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`date` DATE NOT NULL,
`tag_id` VARCHAR(255)
);
insert into mistake_info values(null, '2023-05-26', '1');
insert into mistake_info values(null, '2023-05-25', '2');
insert into mistake_info values(null, '2023-05-20', '1,2,3');
字段名 | 类型 | 备注 |
---|---|---|
t_id | int | Tag 唯一标识 |
name | varchar | Tag 名 |
u_id | int | 所属用户 |
CREATE TABLE tags (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`u_id` INT NOT NULL
);
insert into tags values(null, '数学', 1);
insert into tags values(null, '英语', 1);
insert into tags values(null, '计算机', 1);
字段名 | 类型 | 备注 |
---|---|---|
id | int | 唯一标识 |
tittle | varchar | 笔记标题 |
date | date | 新建笔记日期 |
content | text | 文本内容 |
overview | varcharr | 文本摘要,不超过 50 字 |
u_id | int | 所属用户 |
CREATE TABLE notebook (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`tittle` VARCHAR(255),
`date` DATE,
`content` TEXT,
`overview` VARCHAR(255),
`u_id` INT
);