Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Digital Exam Bank #56

Open
1 of 6 tasks
EarthenSky opened this issue Aug 5, 2024 · 1 comment · May be fixed by #69
Open
1 of 6 tasks

Digital Exam Bank #56

EarthenSky opened this issue Aug 5, 2024 · 1 comment · May be fixed by #69
Assignees

Comments

@EarthenSky
Copy link
Collaborator

EarthenSky commented Aug 5, 2024

This is a big project, which requires creating both frontend & backend tasks.

Backend Tasks

  • The exam bank will start by only being visible to sfu professors. This requires us to add support for determining whether a user is a professor or a student using SFU's API.

  • Next, we'll need to implement an endpoint for storing & retrieving pdfs from /opt/csss-site/media/exam-bank/

    • The storing part is less important; we can omit it for the time being (until we want students to upload scans of their exams as private until permission is obtained)
    • We should limit
  • Finally, we'll need to store exam entries in the database & create functions for searching & accessing them.

    • NOTE: this will require manually entering every exam into the db
    • If we don't know the author of an exam, we're not allowed to make it public
    • exam metadata will be passed as json; for testing the frontend we can simply construct some mock data

Frontend Tasks

  • After the backend is implemented, we'll need frontend pages which access the api to provide functionality

    • See valerie's site for inspiration (ask someone with access to #deepexec) or any single page app that has a similar visual style to the current csss homepage
  • Support for fuzzy filtering based on prof name

  • Support for filtering based on date, class number, and department name

@EarthenSky
Copy link
Collaborator Author

EarthenSky commented Aug 19, 2024

only visible by professors

The allow option for cas authentication lets us determine which group out of a list a user is part of. Even if a user is part of several groups, we will only get the first group in that list. Luckily, we're allowed to specify mail-lists too, so we can determine if a logged-in user is a CSSS-member!

The list we should use for now is: allow=faculty,!cmpt-students,student,alumni,sfu

  • This lets us determine csss-members (!cmpt-students), however it also allows others to login who may only be slightly affiliated to sfu (under the "sfu" group).

One possible danger is that a student who logs in as !cmpt-students one semester, may fall back to student another, and even alumni another! We might want to store a list of authentication methods over time for a user, so that a person might be able to have a badge that says "csss alumni", etc...

  • These kinds of features should be motivated by frontend developers. For the time being let's not implement this & just associate session level at login time with the current session.

@EarthenSky EarthenSky self-assigned this Aug 19, 2024
@EarthenSky EarthenSky linked a pull request Aug 19, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants