Skip to content

Pandawan/classesfyi

Repository files navigation

Classes.fyi

Get updates when your classes's seats open up.

TODO

  • Clean up functions/update.ts
  • Add a self-cleanup function that runs once a month to check the current quarter & unregister all user from previous quarters
  • Improve class schedule rendering
  • Better frontend class searching
  • Add loading messages to lookup views; make loading only show up if taking longer than 1s
  • Add desktop browser notification support?

Frontend

Frontend website is made using Vue 3 and Vite. It uses the OpenCourseAPI directly to get class data. It's hosted using Firebase Hosting as a SPA.

Server

Backend server uses Firebase Functions in Node 12 and TypeScript. Emails are rendered using Handlebars.

Functions

  • cleanupUnusedClasses: Runs automatically when a user unregisters from a class; checks if that class is registered by any other user, and deletes it if not.
  • updateClassesData: Runs periodically through a pubsub; gets updated class data from OpenCourse, checks if any class status has changed significantly, and sends an email to each person registered to those classes.

Email

Sending

Emails are rendered using Handlebars with two different templates (one for html and one for plain text). They are sent through Mailgun.

Receiving

Email receiving & followup is done with a Zoho mail free account.

Credit

Made by Miguel Tenant de La Tour with the help of Madhav Varshney.

Class data provided by OpenCourseAPI.

Contribute

If you have any ideas or things you want to improve on, you can submit a PR. Thanks!

Basic Setup

Prerequisites: You must have Nodejs (preferably v12), and the firebase-tools package globally installed.

# Note: You might need to npm install in order for some steps to work

# To test the website only (no user accounts/registration)
cd hosting
npm run dev

# If you want the full setup, run the above and in a separate terminal run this at the root of the project
firebase emulators:start

# In both cases, the website will be available at http://localhost:8000

About

Get updates when your classes's seats open up.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published