Here at the University of Toronto, we have hundreds of courses to choose from, and it can be hard to navigate prerequisite chains, program requirements, and term-by-term offerings all at once. That's where Courseography comes in: by presenting course and scheduling information in a set of graphical interactive tools, we make it easier to choose the right courses for your academic career. Whether it's making sure you'll satisfy all the prerequities for that 4th year course you really want to take, or fitting together fragments of your schedule for next term, we hope Courseography makes your life easier!
Powered by Haskell, Courseography was started in late 2013 by David Liu. However, it wasn't until he recruited Ian Stewart-Binks to the project that things really got rolling. Though the past two years have really seen our tools take off within the CS student body, there's still a long way for us to go. Our current projects include moving the front-end of the application over to React, unifying the graph viewing and drawing tools, and improved exporting and report generation.
See CONTRIBUTING.md.
- Run
$ git clone https://github.com/Courseography/courseography.git
to create a local copy of the Courseography.
First install the following:
- Stack
- Node.js
- PNPM, by opening a terminal and running:
npm install -g pnpm
- ImageMagick
- GraphViz
- LaTeX
Then, open a terminal window and cd
into your courseography
repository folder.
The remaining steps should all be run in this terminal window.
Run these two steps manually.
- Copy app/DevelopmentConfig.hs to app/Config.hs with
$ cp app/DevelopmentConfig.hs app/Config.hs
- Create the db folder with
$ mkdir db
Run the following commands (the parts after #
are just comments):
$ pnpm install # Install all Javascript dependencies
$ stack setup # Install the required GHC compiler
$ stack build # Compile Courseography and all Haskell dependencies (this will take a while)
- Create database file for an parse prerequisite graph
$ stack run graphs
- Parse course information
$ stack run database
- Run
$ stack run
to start the server - Navigate to
http://localhost:8000/graph
in your browser
If you are contributing to Courseography, you should install our pre-commit hooks:
-
Install Python 3.
-
In the project repository, install the
pre-commit
Python package:$ pip install pre-commit
. -
Run
pre-commit install
to install the hooks. -
Finally, run
pre-commit run
to test out the hooks. You should see the following:$ pre-commit run Trim Trailing Whitespace.............................(no files to check)Skipped Fix End of Files.....................................(no files to check)Skipped Check Yaml...........................................(no files to check)Skipped prettier.............................................(no files to check)Skipped stylelint............................................(no files to check)Skipped Check Haskell files with stylish-haskell.............(no files to check)Skipped
This project would not exist without the contributions of many students in the Department of Computer Science. In alphabetical order, our contributors are:
Alex Baluta, Alexander Biggs, Kelly Bell, Christina Chen, Eugene Cheung, Kael Deverell, Spencer Elliott, Lana El Sanyoura, Ryan Fan, Ailsa Fang, Christian Garcia, Ross Gatih, Sidharth Gupta, Parker Hutcheson, Philip Kukulak, Ryan Lee, Tamara Lipowski, Lydia Liu, Nathan Liu, Jahnavi Matholia, Hermish Mehta, Mia Meng, Christine Murad, Justin Park, Sam Shaftoe, Ian Stewart-Binks, Betty Wang, Fullchee Zhang, Minfan Zhang, Alex Shih, Cassandra Stefura
Click here to learn about our Privacy Policy.
Click here to learn about our licensing.