Git Product home page Git Product logo

awesomeproject's Introduction

CMPT 470 Project

Due: 5 December 2012 2358 PT.

By: Randy Tarampi, Steven Evans & Conrad Locke

We've made some sort of class schedule optimizer - it uses Django and is located at http://cmpt470.csil.sfu.ca:9017

Interested in what we had at our checkpoint evaluation? Check out the checkpoint tag.

Looking for our final submission for CMPT 470? Check out the final tag. A dump of the DB was added afterwards, though due to the nature of the data, it would probably just be best to drop all the scheduler_* tables and run awesomeProject/scripts/deployForApacheFromScratch.sh which will pull the courses data from CourSys and populate the DB as specified in the settings.py file. We wish we could've automated it, but that would've required regular maintenance to keep up with the rate the the information from the feed changes, which is often apparently. See the below comments in "To Do" for more details about the data's cleanliness.

What It Does:

It builds 'optimal' schedules given a set of courses and a set of unavailable times, where optimal minimizes the time spent on campus.

To Do:

Lots! We need to do lots of testing and general beautifying. As far as we're concerned, this is a bit more than a proof of concept, but substantially less than a polished, final product.

That said, we had to do lots of work on the algorithm. By no means is what you see finalized - it definitely doens't look as good as it could be.

The data we're using has a few errors, like lectures that are scheduled like final exams, which tends to screw things up - see MATH 152. Since this data is from GoSFU (via Greg Baker's coursys), we can't really do much about it, nor do we think we should.

Other than that, which is to say, other than the styling, we would have liked to have more time to test. We're pretty sure that the algorithm works, but not totally 100% sure. Since the only testing it got was the mountains of user based testing (by Randy, Steven and any poor soul that we asked to try it out), and Conrad's whitebox testing, we're only relatively sure that it doesn't crash and burn out. If you've taken a look at the algorithm, you might notice that there's some extra functionality available that we did not care to actually give the user a chance at using, like the notion of 'needs/wants' - we didn't put it in because we didn't have time to test it.

There are a few input bugs here and there, like the addition of an invalid unavailable time (only on the first addition of a time!).

So yeah, all in all, testing & styling.

Dependenices:

Requires Dajax & Dajaxice. Also requires jQuery 1.7.2 and jquery.ba-serializeobject. Makes use of the django-debug-toolbar.

The arrow icons come from the Mini icons 2 icon set. The loading spinner is care of NETEYE. The breadcrumb implementation comes care of django-breadcrumbs.

This project uses the HTML5 Boilerplate CSS reset, which can be found here.

Acknowledgements:

Our CMPT 307 prof & textbook, without both of which we probably wouldn't have settled on (or even had) the idea. Our CMPT 470 prof, who didn't call us crazy.

Our friends, families, colleagues and loved ones who will presumingly bear with our frustrations/ranting during the building process. A special mention goes out to Allison who made us cookies.

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.