Git Product home page Git Product logo

alexeidt / uw-course-planner Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 0.0 24.6 MB

Web App with geospatial schedule visualization, recursive prerequisite tree generation and keyword search for courses offered at the University of Washington (UW).

Home Page: https://alexeidt.pythonanywhere.com/

License: MIT License

Python 44.68% HTML 31.62% JavaScript 23.70%
uw prerequisites flask-application leaflet uw-campus course-catalogs university-of-washington graphviz

uw-course-planner's Introduction

UW Course Planner

Web App with schedule visualization, recursive prerequisite tree generation and keyword search for courses offered at the University of Washington (UW).

Check out http://alexeidt.pythonanywhere.com/ for a live demo!


Always make sure to check the actual prerequisites for any course before making a decision on which course to take!


Scripts

Script Purpose
app.py Runs the Flask Application on the localhost. Alternatively go to alexeidt.pythonanywhere.com to see the same site.
create_tree.py Creates Prerequisite Trees. Not runnable by itself.
schedule.py Creates an Organized Time Schedule for the courses offered for the current quarter at UW.

UW Course Catalogs

Bothell
Seattle
Tacoma

UW Time Schedules

Bothell
Seattle
Tacoma

Prerequisite Tree

A prerequisite tree for any course offered at the UW can be created as a PNG file or in the console (see below). The prerequisite tree for EE235 as a PNG is shown below.

All courses at the same 'level' in the tree are the same color. Courses with the same shape at the end of the arrow indicate that ONE of those courses is enough to statisfy the prerequisite requirement.

EE235 Prerequisite Tree

Department Tree

A graph showing the prerequisite connections of all courses in the same department gives a good overview of the department as a whole.

EE Prerequisite Tree

MyMap

The UW Course Tool can show you all combinations of course sections at UW that do not overlap. All three UW Campuses are included.

UW Map Example

Flask Application

There is an option to run this application on a server and to generate prerequisite trees on the web. In order to run the Flask application on the localhost open the Command Line and cd into the directory where the application is stored. Once there input the following command:

python app.py

Then open the following link to access the website: http://127.0.0.1:5000/

Alternatively, go to the live demo at: alexeidt.pythonanywhere.com

Requirements/Dependencies

Python 3.6+

Install Requirements with

pip install -r requirements.txt

The directory for the application is structured according to the diagram below:

static
    Images
        Images used for website
    Prerequisite_Trees
        All generated Prerequisite Trees
    JavaScript
        All JavaScript files for each HTML file in 'templates'
    UW_Time_Schedules
        Organized_Time_Schedules
            All offered courses with quiz/lab/studio sections assigned to their respective lecture
        All Time Schedules for each UW Campus
templates
    All HTML files

In order for the visual representation with Graphviz to work, Graphviz must be downloaded. Once downloaded go to create_tree.py. and change the System Path under GRAPHVIZ PATH SETUP Make sure to add the bin folder of the downloaded Graphviz folder to the end of the system path.

# --------------------------GRAPHVIZ PATH SETUP-------------------------- #
os.environ["PATH"] += os.pathsep + [FILE PATH TO GRAPHVIZ bin FOLDER] 
# ----------------------------------------------------------------------- #

'Graphviz Executables not on system Path' Error

If this error comes up try:

pip install graphviz

followed by:

conda install graphviz

If the error persists:

MAC
brew install graphviz
Ubuntu
sudo apt-get install graphviz

uw-course-planner's People

Contributors

alexeidt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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