Skip to content

mcgill-courses/mcgill.courses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

611 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcgill.courses

CI codecov discord website

A course search and review platform for McGill university.

Development

You'll need docker, cargo and pnpm installed on your machine to spawn the various components the project needs to run locally.

First, join the discord server to get access to the development environment variables:

https://discord.gg/fSVSqfPHSV

In .env within the root directory you'll have to set

MS_CLIENT_ID=
MS_CLIENT_SECRET=
MS_REDIRECT_URI=http://localhost:8000/api/auth/authorized

...and then in client/.env you'll have to set the server url

VITE_API_URL=http://localhost:8000

Second, mount a local mongodb instance with docker and initiate the replica set:

docker compose up --no-recreate -d

Spawn the server with a data source (in this case the /seed directory) and initialize the database (note that seeding may take some time on slower machines):

cargo run -- --source=seed serve --initialize --db-name=mcgill-courses

Finally, spawn the react frontend:

pnpm install
pnpm run dev

n.b. If you have just installed, we provide a dev recipe for doing all of the above in addition to running a watch on the server:

just dev

See the justfile for more recipes.

Tools

We have a few tools that we use for project-specific maintenance tasks. You can find all of them under the tools directory from the project root.

For python-based tools, we highly recommend you install uv on your system. On macOS or linux, you can do it as follows:

curl -LsSf https://astral.sh/uv/install.sh | sh

Follow the documentation for other systems.

Deployment

We continuously deploy our site with Render using a docker image, and have a MongoDB instance hosted on Atlas.

We also use S3 to host a bucket for referring to a hash when deciding whether or not to seed courses in our production environment, and Microsoft's identity platform for handling our OAuth 2.0 authentication flow.

Prior Art

There are a few notable projects worth mentioning that are similar in nature to mcgill.courses, and have either led to inspiration or new ideas with regard to its functionality and design, namely:

  • uwflow.com - A course search and review platform for the University of Waterloo
  • cloudberry.fyi - A post-modern schedule builder for McGill students
  • mcgill.wtf - A fast full-text search engine for McGill courses

About

A course search and review platform for McGill University

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8