Проектирование системы посещаемости с использованием QR-кода с Firebase - PullRequest
0 голосов
/ 10 октября 2018

Я делаю академический проект.просто идея заключается в создании системы посещаемости, которая выглядит следующим образом:

  1. Учитель входит в свою учетную запись на веб-сайте .
  2. Учитель выбирает раздел.
  3. Учитель генерирует QR-код, чтобы ученики могли сканировать его для посещения.
  4. Ученик Войдите в свою учетную запись, используя приложение android .
  5. Ученики Открывает сканер для сканирования QR-кода.
  6. Система отмечает посещаемость этого ученика в этом конкретном разделе и в определенную дату.

Вот мой дизайн базы огнябаза данных, которую я использую

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 будет идентификатором раздела, тогда как-то мне нужно объединить его с идентификатором студента, когдастудент сканирует его, после получения двух значений мне нужно автоматически сгенерировать дату лекции, поэтому у меня будет 3 значения (secID, stuID, date) , чтобы вставить его в дерево посещаемости и сделать "участие"атрибуты установлены в "true"

Теперь мои вопросы:

  1. Есть ли лучший способ для разработки моей БД?
  2. моя идея qr вышеможно выполнить или есть лучший способ?

1 Ответ

0 голосов
/ 11 октября 2018

Вам нужен инструктор, чтобы получить список посещаемости?Вложенный объект, который вы показываете выше, может быть более плоским, если ваши потребности будут другими.В Firebase вам нужно создать структуру БД после просмотра (например, что вы получите из БД для показа пользователям).Настоятельно не рекомендуется вложение и дублирование данных допустимо.

Например, если бы я хотел, чтобы пользователи читали список участников, выбрав идентификатор раздела и дату, я бы создал такую ​​таблицу:

Attendance:{
    "123456":                //section ID
       {"01-08-2019":        //date
           {"865768": true}  //student ID: attendance status  
       }
           }

Я могу получить список участников, используя ссылку:

`Attendance/${sectionID}/${date}/`

Или у меня может быть более плоский список, если я хочу, чтобы мои пользователи нажимали на идентификатор учащегося и извлекали все записи о посещаемости поstudent:

AttendanceRecord: {
     "865768": {     //student ID
     "LxLy1a":   {   //unique attendance record key
               date: "01-08-2019",
               sectionId: "123456",
               status: true
                }                       
                   }

Если бы представления моего приложения были другими, мне пришлось бы по-разному структурировать базу данных, чтобы было проще читать данные из Firebase, не вдаваясь слишком глубоко во вложенный объект.

Вы не должны бояться дублировать свои данные.Измените базу данных на основе представлений в вашем приложении.

...