-
Notifications
You must be signed in to change notification settings - Fork 9
Description
This is extremely important for scalability. I think for now for each course, we create 1 table each for quiz, feedback, etc. But these tables remain. This will make the database grow forever. We do allow for a course to be deleted, but we know that courses finish and so we should delete their records and free the space.
For courses that are not active, we should remove their records and free the space. A course can be defined as not active - if no activity has been done for some number of days (say 30). A message can be sent to the instructor(s) that it seems that the course has finished and so its records are being deleted; if the course is still running they can take a quiz/feedback .... in some days.
What does deletion means needs to be defined. Besides clearing the database - perhaps it should also signal to instructor's and student's app, and so whenever they open it, the course will be deleted and will not show on their apps.
With this, the size of the FIrebase will be defined by the number of active courses.
In addition, we have table of users (faculty/students) which keeps increasing - i.e. as they download ALT, their record will be there. This will keep increasing.
With these, we can estimate the size of Firebase database for N active courses (assuming some average no of students in each), and for M users. And can estimate the cost for different values of N, with M increasing.