GithubHelp home page GithubHelp logo

imclab / soda Goto Github PK

View Code? Open in Web Editor NEW

This project forked from evanw/soda

0.0 2.0 0.0 60 KB

A course browser for Brown University

Home Page: http://madebyevan.com/soda/app/

License: GNU General Public License v3.0

soda's Introduction

Soda

Currently hosted at: http://madebyevan.com/soda/app/

Soda is a replacement course browser for Brown University. The system at Brown is called Banner and has a terrible search interface. There is essentially a widget for every field in the course database. Besides being cumbersome, the system is also slow and mistakes cost the user time as the request bounces back from the server. This delay is especially bad around the start of the semester when all students at Brown are using the system to schedule their courses.

Soda fixes all this. The entire list of current courses is downloaded to the browser once at page load time, after which the entire app runs client-side. While this is a higher initial load, the common usage pattern is relatively long periods of scheduling where a client-side app like Soda actually saves in data transfer. In addition, the entire list of courses can be gzipped and cached by the browser, so the actual data transfer overhead isn't bad at all.

Searches are performed instantly as the user types. There is only one search textbox, which can search titles, departments, professors, buildings, and other metadata and contains some extra smarts to pick out common course abbreviations in use around the campus. There are several shortcomings however: Soda currently has no way of scraping textbook info, and Soda may be slightly out of date since its data represents a snapshot of Banner in the past.

Installation

To get soda up and running, just clone this repo and paste this line into a terminal:

cd courses && python courses.py && cd .. && python build.py release && python server.py

This will download a list of courses from https://github.com/evanw/banner, compile the course information, and serve soda on http://localhost:8000/. If you would like to get an up-to-date version of the current courses, you can also clone the banner repo and perform the scraping yourself. In that case, make sure to copy the scraped file banner.pickle to ./courses/ before running courses.py.

soda's People

Contributors

evanw avatar

Watchers

 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.