Giter VIP home page Giter VIP logo

courseography's Introduction

About

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.

Getting Involved

See CONTRIBUTING.md.

Installation

Download Courseography

  1. Run $ git clone https://github.com/Courseography/courseography.git to create a local copy of the Courseography.

Software Dependencies

First install the following:

  1. Stack
  2. Node.js
  3. Yarn, by opening a terminal and running: npm install -g yarn
  4. ImageMagick
  5. GraphViz
  6. LaTeX

Then, open a terminal window and cd into your courseography repository folder. The remaining steps should all be run in this terminal window.

Other Files

Run these two steps manually.

  1. Copy app/DevelopmentConfig.hs to app/Config.hs with $ cp app/DevelopmentConfig.hs app/Config.hs
  2. Create the db folder with $ mkdir db

Installing

Run the following commands (the parts after # are just comments):

$ yarn 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)

Parsing and Generation

  1. Create database file for an parse prerequisite graph $ stack run graphs
  2. Parse course information $ stack run database

Running

  1. Run $ stack run to start the server
  2. Navigate to http://localhost:8000/graph in your browser

Developers

If you are contributing to Courseography, you should install our pre-commit hooks:

  1. Install Python 3.

  2. In the project repository, install the pre-commit Python package: $ pip install pre-commit.

  3. Run pre-commit install to install the hooks.

  4. 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

Contributors

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, Ching Chang, 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, Zi Kai Xu

Privacy Policy and Licensing

Click here to learn about our Privacy Policy.

Click here to learn about our licensing.

courseography's People

Contributors

ian-stewart-binks avatar christinem avatar david-yz-liu avatar jmatholia avatar pkhutch avatar frankjohnlee avatar bettyruntianwang avatar r0ss avatar shaftoes avatar bellkelly avatar fullchee avatar ryanscfan avatar nzliu avatar miameng avatar klmerryn avatar lydiayliu avatar tamaralipows avatar minfanzhang avatar pengmai avatar leenlab2 avatar ailsaf avatar kenneth-miura avatar dependabot[bot] avatar cocoliliace avatar lanaelsanyoura avatar akbiggs avatar sidguptacode avatar elliottsj avatar benxu3 avatar jazwa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.