The website is built with the following stack:
Frontend:
Backend:
- Firebase (access via ShockSoc's google account)
- GitHub OAuth App (registered under ShockSoc's GitHub account)
- GitHub Actions Workflow
The workflow is triggered anytime an event is modified by an admin using the admin's OAuth token provided by GitHub (via the Firebase authentication flow). The token must contain the repo
scope. Alternatively, the workflow can be triggered using the GitHub web interface. The administrator must be a member of the organisation and have admin rights to the website repo.
Anyone can sign in using the GitHub OAuth API. For that reason, the database allows read/write operations only when performed by certain users. To add a new administrator:
- Make them log in via the log-in page so that a user account is generated for them by the Firebase authentication flow.
- Visit the Firebase users panel and copy their unique identifier (found under the
User UID
column). - Give them access to the database by adding their identity to the
admins
object. Note: It's a key:value pair. The only relevant information is the key which should be their UID. The value is for you to make sense of who's who. - Give them access to the storage bucket by adding their identity to the
admins
array in the storage rules. This time you only need to add their UID.
All images should be uploaded in the right dimensions and .webp
format.
Text information about the committee should be added here. Note: the expected form is:
Name: {
bio: "Their Bio";
}
Their picture should be added here.