Skip to content

Scheduling application designed to mitigate some of the pain-points present throughout Georgia Tech's registration process.

License

Notifications You must be signed in to change notification settings

kieranlblack/website

 
 

Repository files navigation

GT Scheduler

Georgia Tech Scheduler lets you find the schedule that fits you best among all the possible combinations of courses.

📃 License & Copyright Notice

This work is a derivative of the original and spectacular GT Scheduler project created by Jinseo Park. The original work and all modifications are licensed under the AGPL v3.0 license.

Original Work

Copyright (c) 2020 Jinseo Park (parkjs814@gmail.com)

Modifications

Copyright (c) 2020 the Bits of Good "GT Scheduler" team

🔍 Overview

The app is a React single-page application (SPA) (built using create-react-app) that forms the frontend website users interact with when they go to https://gt-scheduler.org/. It is written in TypeScript (a typed superset of JavaScript), and uses SCSS for styling (a superset of CSS that supports advanced features).

To implement its goal of facilitating schedule creation and class exploration, GT Scheduler stores all data locally in cookies. Then, it sources any relevant data at runtime from a variety of sources, such as:

Once features are merged into the main branch, they are automatically deployed to the gh-pages branch using a GitHub Action workflow. This branch is set up to serve traffic to the public site, https://gt-scheduler.org/, using the GitHub Pages service.

The website uses Google Analytics for aggregate analytics and information about how many people are using the app. It also utilizes Sentry for automatic error reporting.

🚀 Running Locally

Requisite software

  • Node.js (any recent version will probably work)
  • Installation of the yarn package manager version 1 (support for version 2 is untested)

Running the app

After cloning the repository to your local computer, run the following command in the repo folder:

yarn install

This may take a couple minutes and will create a new folder called node_modules with all of the dependencies installed within. This only needs to be run once.

Then, to start a local development version of the frontend app, run:

yarn start

The app should then be viewable at http://localhost:3000, which you can open a new browser tab to view.

With that, you're able to make changes to the code and have them be re-built and viewable after a short delay in the same tab. This is the main workflow for adding new features or fixing bugs and testing them in the actual app.

Linting

The project uses pre-commit hooks using Husky and lint-staged to run linting (via ESLint) and formatting (via Prettier). These can be run manually from the command line to format/lint the code on-demand, using the following commands:

  • yarn run lint - runs ESLint and reports all linting errors without fixing them
  • yarn run lint:fix - runs ESLint and reports all linting errors, attempting to fix any auto-fixable ones
  • yarn run format - runs Prettier and automatically formats the entire codebase
  • yarn run format:check - runs Prettier and reports formatting errors without fixing them

👩‍💻 Contributing

The GT Scheduler project welcomes (and encourages) contributions from the community. Regular development is performed by the project owners (Jason Park and Bits of Good), but we still encourage others to work on adding new features or fixing existing bugs and make the registration process better for the Georgia Tech community.

More information on how to contribute can be found in the contributing guide.

About

Scheduling application designed to mitigate some of the pain-points present throughout Georgia Tech's registration process.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 88.2%
  • SCSS 11.2%
  • HTML 0.6%