首页 > 其他分享 >爱码单车队——项目原型设计+概要设计

爱码单车队——项目原型设计+概要设计

时间:2024-10-30 18:58:53浏览次数:3  
标签:String int private name 爱码 user 设计 id 概要

作业所属课程 班级链接
作业要求 作业要求链接
作业的目标 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

标签:String,int,private,name,爱码,user,设计,id,概要
From: https://www.cnblogs.com/aaaauv/p/18516120

相关文章

  • 前端开发设计模式: 单例模式
    什么是单例模式?(SingletonPattern) 单例模式,也叫单体模式,是一种创建型设计模式,是全局(或某一作用域范围)唯一实例,大家共享、复用一个实例对象。——最基础、最常见的设计模式1、保证对象实例只创建一次,后续的引用都是同一个实例对象2、保证一个类只有一个实例,并提供一个访问它......
  • Java项目实战II基于Spring Boot的交通管理在线服务系统设计与实现(开发文档+数据库+源
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着城市化进程的加速和交通流量的剧增,传......
  • Java项目实战II基于Spring Boot的火锅店管理系统设计与实现(开发文档+数据库+源码)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着餐饮行业的蓬勃发展,火锅店作为备受欢......
  • AI Illustrator矢量图形设计软件下载安装
    一、软件简介1.1基本信息AdobeIllustrator,简称AI,是Adobe系统公司推出的一款专业矢量图形设计软件。自1987年首次发布以来,它已成为出版、多媒体和在线图像领域的行业标准之一。AI广泛应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面制作等领域,为设计师......
  • springboot停车系统-计算机毕业设计源码27192
    摘 要随着城市化进程的不断加快和汽车保有量的持续增加,城市停车难题成为居民生活中的一大挑战。针对停车资源紧张、停车管理效率低下等问题,智能停车系统应运而生。本研究旨在探讨基于安卓平台的停车系统的设计与实现,利用Java编程语言、MySQL数据库和SpringBoot框架,为用户提......
  • SSM人才信息招聘系统-计算机毕业设计源码28084
    摘要本研究旨在基于Java和SSM框架设计并实现一个人才信息招聘系统,旨在提升招聘流程的效率和精准度。通过深入研究Java和SSM框架在Web应用开发中的应用,结合人才招聘领域的需求,构建了一个功能完善、稳定高效的招聘系统。利用SSM框架的优势,如依赖注入、AOP编程等,实现了系统的模块......
  • 2025年计算机专业毕业设计选题推荐 速存
    2025年计算机专业毕业设计选题推荐博主介绍CSDN特邀作者、博客专家、CSDN新星计划导师Java领域优质创作者,荣获“博客之星”称号掘金、华为云、阿里云、InfoQ等平台优质作者专注于Java技术及学生毕业项目实战指导高校教师/讲师,擅长同行交流合作文末获取源码联系方式主要内......
  • 设计模式 - 简单工厂模式
    目录一、基本概念二、组成部分三、举例说明3.1 定义产品接口 3.2 定义具体产品类3.3 定义工厂类3.4 客户端代码四、优缺点4.1优点4.2缺点五、总结5.1适用场景5.2不适用场景5.3替代模式简单工厂模式(SimpleFactoryPattern)虽然不是GoF设计模式的一......
  • 2025年计算机专业毕业设计选题推荐
    2025年计算机专业毕业设计选题推荐博主介绍CSDN特邀作者、博客专家、CSDN新星计划导师Java领域优质创作者,荣获“博客之星”称号掘金、华为云、阿里云、InfoQ等平台优质作者专注于Java技术及学生毕业项目实战指导高校教师/讲师,擅长同行交流合作文末获取源码联系方式主要内......
  • javaweb基于SSM开发简单的学生考勤管理系统源码 课程设计 大作业
    作品编号:1127数据库:mysql后端技术:SSM文档资料:无文档......