作业所属课程 | 班级链接 |
---|---|
作业要求 | 作业要求链接 |
作业的目标 | Speak with AI的原型设计+概要设计 |
团队名称 | 爱码单车队 |
成员1 | 102201542--曾庆徽 |
成员2 | 102201211--池家益 |
成员3 | 102201302--毛震 |
成员4 | 102201420--林传昊 |
成员5 | 102201425--郑礼鑫 |
成员6 | 102201538--黄志梁 |
成员7 | 102201630--岳俊杰 |
成员8 | 102201227--陈铭扬 |
成员9 | 102201239--翁林靖 |
成员10 | 102201257--王党兵 |
一.原型设计
这是我们的原型链接:https://j58t0t.axshare.com/?id=z3hodb&p=登录界面&sc=3&g=1
原型真机演示动画:
特色说明(这里的图片参考我们的原型设计加概要设计的pdf):
1.核心功能介绍:
场景模拟对话:用户可以选择不同的日常生活场景进行模拟对话,以提高实际对话能力。
自然语言对话生成:通过集成AI,生成自然语言对话,提供语音互动功能。
发音纠正:利用调用语音识别技术,系统分析用户发音的准确性,并提供改进建议。
值得注意的是我们开发了语种选择功能,以便后续拓展到不同语种,初始时是英语(ENGLISH)。
2.主界面:
顶部显示当前语种
左上角为“个人”图标,点击可进入个人中心页面--(中心界面里可以看到历史对话记录,可以做到快速复盘),
中间区域为对话窗口,显示AI和用户的对话历史,
底部为输入区域,包含麦克风图标和“按住说话”提示。
用户通过按住麦克风图标说话,AI响应后以文字形式显示在对话窗口。
下方“示例回答”“场景选择”“翻译”和“设置”选项分别对应其功能,其中“场景选择”可以切换对话场景,“设置”可以切换对话难。
3.总结:
可以看到我们的原型里的界面设计主要就是简化操作流程,保持用户界面简洁友好。
同时还支持快速切换不同学习场景和翻译,示例回答等功能,方便用户操作,快速上手练习。
二.概要设计
这部分内容主要围绕图片来展示,分为两部分UML设计和数据库设计:
UML设计:
用例图:
活动图:
时序图:
类图:
协作图:
数据库设计:
E-R图:
关系数据模型:
对象关系映射:
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
// User 表
@Entity
@Table(name = "User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int userId;
private String username;
private String profession;
private String voice;
private String speechSpeed;
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private UserLogin userLogin;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<LearningRecord> learningRecords;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<UserEnglishScore> englishScores;
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private Settings settings;
// Getters and Setters
}
// UserLogin 表
@Entity
@Table(name = "UserLogin")
public class UserLogin {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int loginId;
@OneToOne
@JoinColumn(name = "user_id")
private User user;
private String password;
private Timestamp lastLogin;
// Getters and Setters
}
// UserEnglishScore 表
@Entity
@Table(name = "UserEnglishScore")
public class UserEnglishScore {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int scoreId;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
private String scoreType;
private int score;
private Date examDate;
// Getters and Setters
}
// LearningRecord 表
@Entity
@Table(name = "LearningRecord")
public class LearningRecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int recordId;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
private String studyContent;
private String studyFeedback;
private int studyTimes;
@OneToMany(mappedBy = "learningRecord", cascade = CascadeType.ALL)
private List<Dialogue> dialogues;
@OneToMany(mappedBy = "learningRecord", cascade = CascadeType.ALL)
private List<AudioRecord> audioRecords;
// Getters and Setters
}
// Scene 表
@Entity
@Table(name = "Scene")
public class Scene {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int sceneId;
private String sceneTopic;
private String sceneDescription;
@OneToMany(mappedBy = "scene", cascade = CascadeType.ALL)
private List<Dialogue> dialogues;
// Getters and Setters
}
// Dialogue 表
@Entity
@Table(name = "Dialogue")
public class Dialogue {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int dialogueId;
@ManyToOne
@JoinColumn(name = "record_id")
private LearningRecord learningRecord;
@ManyToOne
@JoinColumn(name = "scene_id")
private Scene scene;
private String dialogueContent;
private int score;
@OneToOne(mappedBy = "dialogue", cascade = CascadeType.ALL)
private ScoreDetail scoreDetail;
// Getters and Setters
}
// AudioRecord 表
@Entity
@Table(name = "AudioRecord")
public class AudioRecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int audioId;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "record_id")
private LearningRecord learningRecord;
private String audioPath;
private Timestamp uploadTime;
@OneToOne(mappedBy = "audioRecord", cascade = CascadeType.ALL)
private Transcription transcription;
// Getters and Setters
}
// Transcription 表
@Entity
@Table(name = "Transcription")
public class Transcription {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int transcriptionId;
@OneToOne
@JoinColumn(name = "audio_id")
private AudioRecord audioRecord;
private String transcribedText;
private Timestamp transcriptionTime;
// Getters and Setters
}
// ScoreDetail 表
@Entity
@Table(name = "ScoreDetail")
public class ScoreDetail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int scoreId;
@OneToOne
@JoinColumn(name = "dialogue_id")
private Dialogue dialogue;
private int pronunciationScore;
private int grammarScore;
private int fluencyScore;
private int overallScore;
private String feedback;
@OneToMany(mappedBy = "scoreDetail", cascade = CascadeType.ALL)
private List<Feedback> feedbacks;
// Getters and Setters
}
// Feedback 表
@Entity
@Table(name = "Feedback")
public class Feedback {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int feedbackId;
@ManyToOne
@JoinColumn(name = "score_id")
private ScoreDetail scoreDetail;
private String suggestion;
private String improvementArea;
// Getters and Setters
}
// Settings 表
@Entity
@Table(name = "Settings")
public class Settings {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int settingsId;
@OneToOne
@JoinColumn(name = "user_id")
private User user;
private String transcriptionLanguage;
private String scoringStandard;
private boolean notificationPreference;
// Getters and Setters
}
三.团队协作记录
预计计划安排表:
周次 | 日期范围 | 里程碑 | 产出 |
---|---|---|---|
第1周 | 11月2日 - 11月8日 | 后端开发初步完成 | 完成API接口文档,完成基础功能开发 |
第2周 | 11月9日 - 11月15日 | 前端开发初步完成 | 完成前端页面开发,进行初步集成测试 |
第3周 | 11月16日 - 11月22日 | 完成系统集成 | 提交集成测试报告,完成系统功能演示 |
第4周 | 11月23日 - 11月29日 | 代码审查与优化,用户测试与反馈 | 完成代码审查,进行性能优化,收集用户反馈,修复bug,完善功能 |
预计开发计划分工:
姓名 | 角色 | 负责的开发部分 |
---|---|---|
曾庆徽 | 组长 | 项目整体规划与管理,进度跟踪与沟通 |
岳俊杰,池家益 | 前端开发人员 | 前端界面设计与开发,用户交互功能实现 |
郑礼鑫,黄志梁 | 后端开发人员 | API设计与实现,数据库管理与接口集成 |
毛震 陈铭扬 | 测试人员 | 测试计划制定,功能测试与bug反馈 |
翁林靖 | 文档编写人员 | 项目文档撰写,需求文档与用户手册编写 |
林传昊 | UI/UX设计师 | 用户界面设计,用户体验优化 |
王党兵 | 数据分析员 | 数据收集与分析,用户反馈汇总与改进建议 |
团队协作记录:
项目管理平台:
GitHubDesktop
团队协作记录:
四.仓库连接以及下载链接:
github团队仓库链接:https://github.com/zqh666nb/home
爱码单车队_系统设计说明书.pdf:链接: https://pan.baidu.com/s/12UcIY0JMM8qMuRfVsh4MpA?pwd=1234 提取码: 1234
爱码单车队_数据库设计说明书.pdf:链接: https://pan.baidu.com/s/1MFtuVeA3aXwvwj8e06MByg?pwd=1234 提取码: 1234
爱码单车队_原型设计+概要设计答辩PPT.pdf:链接: https://pan.baidu.com/s/1d6F2WHHuza-jBAupIC5PDg?pwd=1234 提取码: 1234