A course database lookup tool and schedule building web application for use at Rochester Institute of Technology.

Overview

CSH ScheduleMaker

Develop Build Status GPL-2.0 PHP Version

A course database lookup tool and schedule building web application for use at Rochester Institute of Technology. Built, maintained and hosted by Computer Science House

Available at schedule.csh.rit.edu

Dev Environment

Setup

  • Fork and clone the repository.
  • Copy the config.example.php file to config.php in /inc/ or set environment variables as defined in config.env.php.
  • Contact a current maintainer for server/database configs.
  • If you wish to see images locally, you will also need S3 credentials, either supply your own or reach out.

Run Locally

In order to run locally youre going to need docker.

docker build -t schedulemaker .
docker run --rm -i -t -p 5000:8080 --name=schedulemaker schedulemaker

You can replace 5000 with whatever port you wish to connect locally to. Then visit http://localhost:5000 in a browser.

Development

  • To build js files run npm run-script build.
  • Increment the version number in package.json after updating js/css files or ensure all cache cleared.
    • Make sure you increment at least the patch number in any PRs that touch Javascript/CSS.
  • If you get an error with JS/CSS not loading, check your config file.

Maintainers

Current Maintainers

Past Maintainers

Comments
  • Existing classes return

    Existing classes return "No course match".

    Issue by Eternyte from Friday Aug 30, 2013 at 02:27 GMT Originally opened as https://github.com/benrr101/schedulemaker/issues/122


    Existing classes which should be listed returns an error of "No course match". Found this occurring for a few math classes, specifically: MATH-90, which only has sections 03. MATH-221, which only has sections 01 and 08. MATH-241, which only has sections 06. MATH-381, which only has sections 03. Possibly related: All Dubai courses seem to be unaffected.

    bug pending work 
    opened by bgrawi 10
  • Login to save schedule

    Login to save schedule

    It would be nice to be able to login (make an account for now, use RIT login when they make this official) so I can easily save my schedules and access them later. There are other ways to save schedules but having them linked to an account would be easier. When this becomes official the account could also be tied to SIS and allow enrollment from this page.

    wontfix 
    opened by BenAlderfer 9
  • Course names not accurate

    Course names not accurate

    Some courses such as Wines of The World (HSPT) comes up with a course code FOOD for some reason. There are also courses on here that do not show up on SIS such as wilderness survival. Also, the times are not correct on here as someone else mentioned before. Any ETA on a fix?

    bug pending work 
    opened by amira1295 5
  • Make new features like comma courses more obvious, perhaps a walkthrough/overlay system?

    Make new features like comma courses more obvious, perhaps a walkthrough/overlay system?

    Right now, the scheduler only makes decisions among different sections of a course. If I want to choose an optimal section of Physics for my schedule when I know that I'm going to take Physics, this is very useful, because there are many sections to choose from. If I want to choose between different electives to take, this is less useful because I have to manually swap out the different electives and try the schedules, which may be cumbersome. A lot of upper-level electives also have few sections, which makes the CSH scheduler much less useful.

    Now, a fix could be implemented in two different ways, or a combination of the two:

    Option 1: Add ability to mark courses as "optional," generating schedules that both include them and don't, preferably biasing the schedule sorting to show schedules with more courses first. Maybe there would be a way to avoid listing proper subsets of schedules (i.e. don't show an extra schedule for a previously listed schedule with a course removed), although the code for that might be complicated and inefficient.

    Option 2: Add ability to group multiple courses, instead of just sections of one course, to be included in the schedule. Every schedule would have the same exact number of courses, except each particular course would be chosen from a list. Example: schedule is chosen from four courses that I have to take (like the current functionality), although choose the fifth class to be either section 1, 2 of Elective A or section 3 of Elective B.

    Option 2 is very close to what we have now, although option 1 may be easier to use.

    (unsure if my explanation is good enough, but hopefully you get the gist of what I'm saying)

    feature request 
    opened by ghost 5
  • Save as Image produces blank image

    Save as Image produces blank image

    image tried to save calendar as image, got this result. Schedule in question for testing: https://schedule.csh.rit.edu/schedule/adf16 Image link: https://schedule.csh.rit.edu/img/schedules/712470.png

    bug pending work 
    opened by roxworks 4
  • Labs independent of Lecture

    Labs independent of Lecture

    Reproduce:

    • Adding course NSSA-221-01 gives 2 results:
      • NSSA-221-01 and NSSA-221-01L1
    • Generate Schedule
      • Theres 2 schedules with lab is on a separate schedule than lecture even though theres no conflict schedulemaker

    Personally I think it's an issue with the recursive tree traversal (generateSchedules) within generate.php, but haven't had the time to spin up a vm with schedule maker on it to test.

    opened by robopt 4
  • Professors' Names Linked to RateyourProfessors

    Professors' Names Linked to RateyourProfessors

    Issue by Graham110 from Monday Jan 30, 2012 at 12:42 GMT Originally opened as https://github.com/benrr101/schedulemaker/issues/47


    http://www.reddit.com/r/rit/comments/p2oq7/a_humble_request_for_csh/

    Direct Link to Image: http://i.imgur.com/ES5gZ.png

    I take no credit for this idea. I just noticed that it's still not up on here, so I am posting this. :)

    feature request pending merge 
    opened by bgrawi 4
  • Have an

    Have an "Add to schedule" button

    Issue by ryansb from Wednesday Dec 07, 2011 at 03:57 GMT Originally opened as https://github.com/benrr101/schedulemaker/issues/27


    Next to the courses in the "Browse Courses" pane.

    Possibly have it add courses to a "course cart" that could then be made into a schedule.

    feature request pending merge 
    opened by bgrawi 4
  • Feature/spacing between elements

    Feature/spacing between elements

    Thought it'd be more complicated. It's not. It's just small margin noises. The margin isn't big enough to touch other elements, but big enough to touch the elements I want it to. Screen Shot 2020-05-06 at 5 59 45 PM

    opened by Dr-N0 3
  • Course offerings in different time blocks will overlap when attempting to make a schedule

    Course offerings in different time blocks will overlap when attempting to make a schedule

    Explanation: If I want to add a courses that has MWF or only F available with different time blocks, the schedule maker will try to fit both of these courses onto the schedule. The schedule should only put one course offering or check if that course is already on the schedule before adding.

    opened by mchaelkha 3
  • Can't Save As Images

    Can't Save As Images

    When clicking on the save dropdown that offers the schedule in question as either an image file or ical file, selecting the image file brings the user to a 404, with no image being created or saved, so it seems

    bug pending work 
    opened by dantayy 3
  • Add in way to bypass conflicting times

    Add in way to bypass conflicting times

    I have MSD 2 next semester and I went to my advisor to put it in even though I have another course scheduled for that time. I think it might be a good idea to allow for an advanced option that can allow you to say, don't worry about schedule conflicts with this course, just put it on the thing!! Might be a good idea for the future!!

    opened by ryan11223344 1
  • Add side by side comparison

    Add side by side comparison

    If you are looking at schedules in order to enroll in classes, you will likely want to compare various schedules to see which one looks the best. It would be useful if there was an option to compare multiple schedules from the results list side by side, rather than having to jump back and forth between them.

    opened by esoccoli 0
  • iCal Export Dates placed wrong

    iCal Export Dates placed wrong

    I tried exporting a schedule to a iCal format then putting it in my Google Calendar and all the days are off by a couple. For example my Monday classes were placed on Thursdays (Tuesdays -> Fridays, Wednesdays -> Saturdays and so on). Just wondering if this is an error on Googles side or on the schedule maker. Thanks

    opened by jeffaburke 3
  • Bump vinyl-paths from 3.0.1 to 5.0.0

    Bump vinyl-paths from 3.0.1 to 5.0.0

    Bumps vinyl-paths from 3.0.1 to 5.0.0.

    Release notes

    Sourced from vinyl-paths's releases.

    v5.0.0

    Breaking

    • Require Node.js 14 b083314

    https://github.com/sindresorhus/vinyl-paths/compare/v4.0.0...v5.0.0

    v4.0.0

    Breaking

    • Require Node.js 12.20 b687750
    • This package is now pure ESM. Please read this.

    https://github.com/sindresorhus/vinyl-paths/compare/v3.0.1...v4.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump del from 6.1.1 to 7.0.0

    Bump del from 6.1.1 to 7.0.0

    Bumps del from 6.1.1 to 7.0.0.

    Release notes

    Sourced from del's releases.

    v7.0.0

    Breaking

    • Require Node.js 14 (#143) 106d7d8
    • This package is now pure ESM. Please read this.
    • Moved from a default export to named exports:
      • require('del')import {deleteAsync} from 'del'
      • require('del').syncimport {deleteSync} from 'del'

    https://github.com/sindresorhus/del/compare/v6.1.1...v7.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
Releases(v3.2.0)
Owner
Computer Science House
Computer Science House
Manage Your Laravel Schedule From A Web Dashboard

Introduction Manage your Laravel Schedule from a pretty dashboard. Schedule your Laravel Console Commands to your liking. Enable/Disable scheduled tas

ⓒⓞⓓⓔ ⓢⓣⓤⓓⓘⓞ 1.6k Nov 25, 2022
Manage Your Laravel Schedule From A Web Dashboard

Introduction Manage your Laravel Schedule from a pretty dashboard. Schedule your Laravel Console Commands to your liking. Enable/Disable scheduled tas

ⓒⓞⓓⓔ ⓢⓣⓤⓓⓘⓞ 1.6k Nov 25, 2022
Schedule and unschedule eloquent models elegantly without cron jobs

Laravel Schedulable Schedule and Unschedule any eloquent model elegantly without cron job. Salient Features: Turn any Eloquent Model into a schedulabl

Neelkanth Kaushik 104 Sep 17, 2022
Crunz is a framework-agnostic package to schedule periodic tasks (cron jobs) in PHP using a fluent API.

Crunz Install a cron job once and for all, manage the rest from the code. Crunz is a framework-agnostic package to schedule periodic tasks (cron jobs)

Reza Lavarian 1.4k Dec 1, 2022
Manage your Laravel Task Scheduling in a friendly interface and save schedules to the database.

Documentation This librarian creates a route(default: /schedule) in your application where it is possible to manage which schedules will be executed a

Roberson Faria 252 Dec 1, 2022
Yii application runner

Yii application runner The package defines Yii application runner. Requirements PHP 7.4 or higher. Installation The package could be installed with co

Yii Software 9 Oct 15, 2022
Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

Consolidation 2.6k Nov 20, 2022
xcron - the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems.

xcron is the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems. MIT or LGPL.

CubicleSoft 6 Oct 5, 2022
Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more.

Jobby, a PHP cron job manager Install the master jobby cron job, and it will manage all your offline tasks. Add jobs without modifying crontab. Jobby

null 1k Nov 27, 2022
A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.

PHP-Queue A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners. Why PHP-Queue? Implementing a

CoderKungfu 647 Nov 30, 2022
PHP port of resque (Workers and Queueing)

php-resque: PHP Resque Worker (and Enqueue) Resque is a Redis-backed library for creating background jobs, placing those jobs on one or more queues, a

Chris Boulton 3.5k Nov 23, 2022
A versatile and lightweight PHP task runner, designed with simplicity in mind.

Blend A versatile and lightweight PHP task runner, designed with simplicity in mind. Table of Contents About Blend Installation Config Examples API Ch

Marwan Al-Soltany 42 Sep 29, 2022
Laracon Schedule a command-line tool that gives you the Laracon Online schedule in your timezone.

Laracon Schedule a command-line tool that gives you the Laracon Online schedule in your timezone. ?? Quick start Requires PHP 7.4+ # First, install: c

Nuno Maduro 101 Sep 16, 2022
Database lookup tool in php, skidlookup has not been claimed so if u want to use this src all right's go to u, idea came from fedsearch

skidlookup Database lookup tool in php, skidlookup has not been claimed so if u want to use this src, all right's go to u, idea came from fedsearch in

Nano 12 Dec 1, 2021
Database lookup tool in php, skidlookup has not been claimed so if u want to use this src all right's go to u, idea came from fedsearch

skidlookup Database lookup tool in php, skidlookup has not been claimed so if u want to use this src, all right's go to u, idea came from fedsearch in

Nano 12 Dec 1, 2021
Website of the Art Institute of Chicago, an art museum

artic.edu The code that runs the main website of the Art Institute of Chicago This repository is all the code that runs artic.edu. With artworks in ou

Art Institute of Chicago 14 Nov 14, 2022
This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology.

This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology. This is a restaurant website which is to offer services such as ordering goods through sending of emails, viewing of any order, signing-in/up for customer's who want to order food, and much more, with also some live features like dates of the day alongside opening and closing working ours. So let's jump right into it.

null 1 Nov 26, 2021
Bulk name lookup for database relations

Tatter\Roster Bulk name lookup for database relations in CodeIgniter 4 Quick Start Install with Composer: > composer require tatter/roster Create a Ro

Tatter Software 5 Jun 11, 2022
Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch your crontab when deploying.

Dispatcher Dispatcher allows you to schedule your artisan commands within your Laravel project, eliminating the need to touch the crontab when deployi

Indatus 1.1k Nov 25, 2022