Step 1. Introduction(引言)
1.1. Application domain and SDG goals(应用领域与 SDG 目标)
作为一个小组,你们首先需要选择一个应用领域(例如:健康、教育、智慧能源、绿色环境、野生动物保护、智慧园艺等),然后根据 联合国 17 个可持续发展目标(SDGs) 来确定其目标(参见
https://www.un.org/sustainabledevelopment/sustainable-development-goals/)
以下是一些应用领域和对应 SDG 目标的示例,用于启发你们,但你们的应用及其功能不限于这些示例:
野生动物保护/照护应用(SDG 15) —— 动物知识、保护策略、上报选项、救助热线、野生动物友好区域地图
食物共享与减少浪费应用(SDG 2) —— 分享剩余食物、查找捐赠点、食物过期提醒
平价健康与身心追踪应用(SDG 3) —— 情绪日记、居家锻炼、用药提醒
女性安全与赋权应用(SDG 5) —— SOS 按钮、位置共享、自卫技巧
清洁水资源获取与使用监测应用(SDG 6) —— 每日节水建议、水源地图、用水量计算器
节能与碳足迹追踪应用(SDG 7) —— 环保建议、用电追踪、二氧化碳减排目标
环保出行指南应用(SDG 11) —— 公交/火车时刻表、自行车路线图、拼车查找
垃圾分类与回收助手(SDG 12) —— 扫描物品了解如何回收、回收中心地图
在本节中,你需要简要描述应用领域,并说明它为何与某一个 SDG 目标相契合。
注意: 影响力较低的应用领域,例如任务或事件追踪/管理器,是不被接受的。
1.2 Impact and value(影响与价值)
所提出的移动应用必须清楚体现其对改善个人生活、社区、社会或世界的影响。这样的影响可以通过解决真实问题、填补现有空白,或改进人们当前完成某些任务的方式来实现。例如,该应用可以自动化或简化流程、提高可达性、增强认知,或鼓励积极的行为改变。
除了影响之外,应用还必须为用户提供价值。价值可以来自多个方面,例如:
在本节中,请简要描述拟议应用的预期影响和价值。
1.3 User group(用户群体)
在本节中,你需要描述目标用户群体,包括他们是谁(例如年龄、性别、职业),以及他们的特定需求或能力(如有)。说明谁会从该应用带来的影响中受益。受益者可能是特定个人、社区或群体。应包括相关细节,例如他们的技术熟悉程度、无障碍需求,以及他们将如何与应用进行交互。
用户群体必须以清晰的文字段落进行描述。不允许使用 Persona。
1.4 Context-awareness(情境感知)
所提出的移动应用必须具备**情境感知(context-aware)**能力,也就是说,它应收集情境信息,并将其用于情境感知计算。关于“情境”和“情境感知计算”的概念,将在 第 4 周 seminar 中讲解。
由于本单元使用的是虚拟设备,你们需要通过使用公开可用的传感数据集(例如智能电表读数、加速度计数据、步数、心率或血糖水平)来模拟真实传感器,并编写一个类,持续生成传感器数据,以模仿真实传感器的行为。
这可以通过从数据文件中读取数据,并以短时间间隔发布这些值来轻松实现。
你们可使用的公开数据集来源之一是 Kaggle:
https://www.kaggle.com/datasets
此外,你们还需要创建一个类,利用这些传感器数据,以及其他传感与非传感数据(即多种上下文信息),动态调整应用其他部分的参数或设置,或者基于当前情境和用户偏好实现个性化。
你们也可以将一个移动端 AI 模型纳入项目中,利用这些数据进行预测或检测(作为高级功能,见 Step 5)。
Step 2. Android components, App functionalities, and Screens
第 2 步:Android 组件、应用功能与界面
2.1. Android components(Android 组件)
所提出的应用必须包含本单元中讲授过的以下 Android 组件:
Room database
Navigation(Navigation Rail 或 Bottom Bar Navigation,避免同时使用两者;若与其他方式结合,可选 Drawer)
Retrofit
DatePicker
Expanded Dropdown Menu
LazyColumn
在报告的这一部分中,你必须列出以上全部六个组件,并用简短的一句话描述它们在你应用中的用途。例如,对于 Room,说明它将存储什么数据;对于 Retrofit,说明它将与哪个 API 交互。
除这些基础组件外,你还必须再加入 3–4 个额外的 Android 组件,例如 Checkbox、TimePicker、Switch、RadioButton、Progress indicators,或与你应用相关的其他有用功能。
你可以使用表格来展示这一部分。
2.2 App Functionalities(应用功能)
基于第 1 部分(Introduction),并与你创建的原型(screens)保持一致,本节应列出应用的主要功能。应用必须包含以下核心功能:
允许现有用户 登录 / Sign-in
允许新用户 注册 / Sign-up
通过移动端表单收集用户数据(例如个人资料或偏好)
显示已记录的数据或条目,并允许用户进行选择、新增、删除或编辑
提供搜索功能,让用户可以查找存储在 Room、Google Firebase/Firestore 中,或通过公共 API 获取的条目或信息
使用图表/图形来可视化展示存储在 Room 或 Google Firebase/Firestore 中的数据,或者集成地图以支持位置感知或追踪
除以上六项功能外,你还必须加入 1–2 个额外功能,这些功能应体现你们应用的创造性和复杂性。
作为第一个额外功能,对于功能 1 和 2,你们可以提议使用 Google Authentication 管理用户登录,并使用 Google Firebase/Firestore 存储可共享的非敏感数据。
作为第二个额外功能,你们可以提议加入实时消息功能,以后可使用 Firebase 或 Firestore 将其实现为一个聊天系统,使两个运行中的模拟器之间可以实时发送和接收消息。
你可以使用表格来展示这一部分。
2.3 Screens and User Interface(界面与用户界面设计)
在本节中,你需要列出你的应用将包含哪些界面,以及每个界面的主要用途。例如,一个疼痛日记应用可能有:登录界面、注册界面、主页、疼痛记录界面、历史记录界面、报告界面、医生搜索界面等。
界面必须与所提出的功能相匹配。
你可以使用表格来展示这一部分。
Step 3. The UI Design and Android UI Skeleton Prototype
第 3 步:UI 设计与 Android UI 骨架原型
基于你们提出的功能和界面,你们将使用 Jetpack Compose(Composable functions) 在 Android 中创建应用原型(仅实现 UI 界面,不需要功能代码)。
在本节中,你需要提供 一个原型总图(ONE diagram),其中包括:
在适当情况下,每个界面都应有一个有意义的标题。你可以在 Word、PowerPoint 或类似工具中制作这个图:插入应用界面截图,并添加箭头来表示导航流程。
你必须在 Android Studio 中运行模拟器,并对每个应用界面进行截图。
除了这一张总图之外,你还必须在报告中加入每页最多四张单独界面的截图,并为每张截图附上简短说明,以便我们能够更详细地评估这些界面。
你还必须将 Android 项目代码(即创建这些界面的 composable functions)一并提交到 Moodle。
骨架原型(Skeleton Prototype):
你们小组/团队需要实现一个骨架原型,它应提供一个带有脚手架结构的应用版本,包括核心界面结构、导航流程和基础样板代码。骨架原型不要求完全可运行,但应能够展示应用的整体架构和布局,并作为未来开发的基础。
Step 4 – Design Guidelines
第 4 步:设计规范
在设计界面时,你需要考虑 seminar(第 6 周)中讲授的设计规范。
你必须清楚指出这五条规范应用在何处,需要明确说明对应的界面标题和具体的 UI 元素。
Step 5 – Advanced Features
第 5 步:高级功能
作为本提案的一部分,你还需要从以下列表中选择并提出 两个(TWO)高级功能,这些功能将在 Assessment 4 中实现到你们提出的移动应用中。
Part 1
在描述中,清楚说明每个所选功能将如何为你的应用带来益处和增强作用。本部分将根据所选功能的相关性、实用性和意义性进行评估。
Part 2
你需要简要描述你将如何学习并在应用中实现这些功能,并为每个功能至少提供三个在线资源(例如在线教程、库、GitHub 页面或示例源码)。
这意味着总共需要提供 6 个经过充分研究的资源。
你必须从以下列表中选择两个高级功能:
Android WorkManager:在后台持续运行任务,例如收集传感器数据并写入文件,或运行 AI/ML 模型,使用加速度计数据进行活动识别。
使用 AlarmManager 在应用中安排提醒,在指定时间触发通知或应用内提醒。例如,提醒用户在某个时间服药。
通过 SDK 集成 Google Calendar API(不是简单使用 intent 打开日历应用)。这将涉及:配置 Google Cloud Console 凭据、使用 OAuth 2.0 认证、集成 Google Calendar SDK(REST API),以及处理 API 调用。
在应用中运行一个移动端版本的 AI 模型(例如使用 TensorFlow Lite 库)进行检测或预测。
使用 Google’s ML Kit 实现图像文本识别。
如需包含其他任何高级功能,你需要获得 tutor 的许可。
Step 6. Task Allocation
第 6 步:任务分配
你还需要完成 Task Allocation form(附录 B),在其中根据本提案为 Assessment 4(不是本次评估)分配小组成员的任务。
File Submission(文件提交要求)
(Moodle 可能会向其他组员显示迟交提醒;请忽略,因为我们已经知道这个问题。成绩上传后,该提醒会消失。)
Policies and Penalties(政策与扣分)
Late Submissions(迟交)
迟交每天扣 5%。
参考:
https://www.monash.edu/learning-teaching/teachhq/Assessment/marking-and-grading/how-to/calculating-late-penalties
Academic Integrity and Generative AI Use(学术诚信与生成式 AI 使用)
Academic Integrity Rules(学术诚信规则)
生成式 AI 工具可以用于本评估任务的一个或多个部分(不能用于整个任务)
你的提交必须体现出真诚的人类努力以及对学科知识的掌握
你必须对生成式 AI 的使用进行说明,包括描述,或任何其他用于创建 slides 的工具(包括模板)
Acknowledgement Requirements(声明要求)
请注意:本评估任务不限制使用生成式 AI 工具,但是你需要结合以下内容来声明你在学术作业中对生成式 AI 的使用情况:
在评分时,如果怀疑存在未经授权使用生成式 AI或发现未声明的相关工作,将按照现有纪律程序,作为学术不端行为指控处理。
Example Acknowledgment(示例声明,来自 Monash 网站)
Prompt: Was Sir John Monash a good man?
"Sir John Monash is widely regarded as one of Australia's greatest military leaders" (OpenAI, 2023)
Reference
OpenAI. (2023). ChatGPT (Jan 9 version) [Large language model] http://chat.openai.com/chat
请参阅 Moodle 第 4 周中的 seminar slides:
How to use Gen AI in FIT5046 assessments?