Skip to content
This repository has been archived by the owner on Jul 21, 2021. It is now read-only.

Syllabus PDF Upload #12

Open
ghost opened this issue Mar 8, 2020 · 0 comments
Open

Syllabus PDF Upload #12

ghost opened this issue Mar 8, 2020 · 0 comments

Comments

@ghost
Copy link

ghost commented Mar 8, 2020

Our proposal is to allow authorized users to upload syllabi through Hyperschedule backend to Firebase. The links to these syllabi will be included with courses.json.

  1. Verify user
    When a user attempts to upload a file from Hyperschedule, the frontend will verify that the user is logged in. The front end will send a request with the user token, the syllabus pdf, and the course name and professor. With the user token, the backend will confirm that they have signed in with an 5C email. If they have, then we accept the Syllabus upload.

  2. Send the Syllabus PDF to Firebase Storage, and update Firebase Database
    First, we store the PDF in Firebase Storage. We then create a link to this stored PDF, and update the Firebase syllabus database, creating a unique entry for this course and professor, with the PDF link. If a unique entry already exists, we will instead replace the old link and delete the old syllabus entry for that professor and course.

  3. Update local syllabi.json file
    Once the Firebase database has finished updating, we will pull the Syllabus PDF link, and add the link to our local syllabi.json file. This syllabi.json file will be structured as a list of courses, where each course has a list of professors who teach that course, and for each professor, there is either a syllabus link or not, depending on whether one has been uploaded yet.

  4. Merge the local syllabi.json file with the courses.json file
    After the scraper's information is added to the courses.json file, we will merge the syllabi.json file with the courses.json file, such that for every course section, it will append a syllabus link, given that we have a syllabus for that course and professor.

image

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants