【发布时间】:2019-03-15 20:06:51
【问题描述】:
我正在做一个学术项目。简单的想法是创建一个如下所示的考勤系统:
- 教师在网站中登录他的帐户。
- 教师选择一个部分。
- 老师生成一个二维码,让学生扫描就可以上课。
- 学生使用 android 应用登录到他的帐户。
- 学生打开扫描仪扫描二维码。
- 系统会标记该学生在该特定部分和特定日期的出勤情况。
这是我正在使用的 firebase 数据库的设计
db{
Teachers{
"cEEbohuR2bK6opZJ1z5RoPrbbrx1":{ //auth uid
tchName:"Jason",
tchID:"24123"
}
Students:{
"GsBEVEtZ9CeqzztDWEQd9GluVJJ3":{ //auth uid
studentName:"Mark",
stuID:"37294"
}
Courses:{
"JAVA101":{ //courseID
courseName:"Java Programing",
}
Sections:{
"56345":{ //secID
tchID:"24123", //acts like a foreign key
courseID:"JAVA101", //acts like a foreign key
Students:{
"37294":{
studentName:"Mark"
}
}
}
Attendance:{
"56345":{ //secID
"1-8-2018":{ //auto generated date?
"37294":{ //stuID
attended:"true" // sets to true after scanning the qr code
}
}
}
}
}
我对 qr 代码的想法是,当老师生成它时,QR 中的值将是 Section ID,然后我需要在学生扫描它时将它与学生 ID 合并,在获得我需要的两个值之后自动生成讲座日期 ,所以我将有 3 个值(secID,stuID,日期) 将其插入到考勤树中,并使 “attended” 属性设置为“true”
现在我的问题是:
- 有没有更好的方法来设计我的数据库?
- 我上面的 qr 想法可以执行还是有更好的方法?
【问题讨论】:
-
如果该系统旨在出于任何重要原因实际跟踪出勤率,我发现学生拍摄 QR 码的照片并将其发送给不在场的其他人以便他们可以签到的潜在问题.
-
我以后可能会为二维码添加一个时间限制来解决这个问题。
标签: javascript android firebase firebase-realtime-database qr-code