Flowchart Maker
This website was created by Nathan D. Russo.
View the source code on GitHub.
This website provides interactive flowcharts for every GCCIS degree pathway at RIT.
Students can organize courses by semester, customize their schedules, and save or reload their progress.
To customize your own flowchart visit the Home page.
Table of Contents:
Features
- Interactive drag-and-drop course planning
- Degree templates for all GCCIS pathways
- Save and load flowcharts
- Customizable electives and course options
- Transfer credit support
- Dynamic year management
- Popup course information
How Does the Website Work?
Each flowchart represents a specific GCCIS pathway that one can pursue while at RIT.
Each of the provided templates is set up with all of the required courses (classes and co-ops) needed to complete the degree.
Users can choose a template from the available templates along with the academic year to get the desired version.
Once selected, they can move the course squares around to match the semesters in which the classes were taken.
Then, they can fill in any of the empty course slots or set any of the dropdown courses with classes they have taken.
Once satisfied, the flowchart can be saved into the user's file system.
Finally, when wanting to view or edit the flowchart again, the user can upload the template back to the website.
Additionally, users can click on a course to view more information, including its full name, number of credits, and description.
Flowchart Format
Each flowchart is divided into sections by year.
Each year has 3 blocks inside of it that represent the Fall, Spring, and Summer semesters.
Each semester block can hold any number of classes or a single co-op.
Additionally, a hidden transfer section can be revealed, which exists as its own standalone section with a single block inside.
This can be used to allocate the classes that were completed upon transferring credits, such as AP classes or classes from other colleges.
Buttons and Dropdowns
- Select Year - A dropdown to dictate the academic year version for any chosen template flowchart
- Choose Template - A dropdown with all available templates that will load prebuilt flowcharts
- Upload Flowchart - A button that allows you to upload a saved template flowchart
- Save Template - A button that downloads the current flowchart with all its changes
- Add Year - A button that adds a year section below the lowest year section
- Remove Year - A button that removes the lowest year section, deleting all data inside of it
- Show Transfer - A button that shows the transfer section
- Hide Transfer - A button that hides the transfer section, saving all data inside of it
- Show Checkboxes - A button that shows the course checkboxes
- Hide Checkboxes - A button that hides the course checkboxes
- Clear Flowchart - A button that deletes the current flowchart and reverts the website to its default state
Course Types
Classes
- Class Required - A defined course that must be taken
- Class Input - An undefined course slot for which you must pick one course to fill that typically falls into some category
- Class Option Mix - A group of defined courses for which you must pick one from
- Hyper Option - Each option may have associated courses that are only visible/required when said option is selected.
- Class Option Attribute - A group of defined courses for which you must pick one from which all fall under the same label
- Exotic Option - Each option may be linked to other options with the same exotic id, where changing the selected option in one adjust the other or hides it if selected index is out of bounds.
Co-ops
- Co-op Required - A cooperative education/internship block that encompasses an entire semester
- Co-op Option - A group of courses that qualify as possible co-ops, including co-ops themselves and other pathway specified options
Current Templates Available
Artificial Intelligence (AI)
- Artificial Intelligence BS (2026-2027)
Computing Exploration (CE)
- Computing Exploration (2025-2026, 2026-2027)
Computing and Information Technology (CIT)
- Computing and Information Technology BS (2025-2026, 2026-2027)
Computer Science (CS)
- Computer Science BS (2025-2026, 2026-2027)
- Computer Science BS/MS (2025-2026, 2026-2027)
- Computer Science/Cybersecurity BS/MS (2025-2026, 2026-2027)
- Computer Science/Data Science BS/MS (2026-2027)
- Computer Science/Software Engineering BS/MS (2025-2026, 2026-2027)
Cybersecurity (CSEC)
- Cybersecurity BS (2025-2026, 2026-2027)
- Cybersecurity BS/MS (2025-2026, 2026-2027)
- Cybersecurity/Science, Technology, and Public Policy BS/MS (2025-2026, 2026-2027)
Game Design and Development (GDD)
- Game Design and Development BS (2025-2026, 2026-2027)
- Game Design and Development BS/MS (2025-2026, 2026-2027)
Human-Centered Computing (HCC)
- Human-Centered Computing BS (2025-2026, 2026-2027)
Humanities, Computing, and Design (HCD)
- Humanities, Computing, and Design BS (2025-2026, 2026-2027)
New Media Interactive Development (NMID)
- New Media Interactive Development BS (2025-2026, 2026-2027)
Software Engineering (SE)
- Software Engineering BS (2025-2026, 2026-2027)
- Software Engineering BS/MS (2025-2026, 2026-2027)
- Software Engineering/Computer Science BS/MS (2025-2026, 2026-2027)
- Software Engineering/Cybersecurity BS/MS (2025-2026, 2026-2027)
Abbreviations
Pathway Abbreviations
- AI - Artificial Intelligence
- CE - Computing Exploration
- CIT - Computing and Information Technology
- CS - Computer Science
- CSEC - Cybersecurity
- DSCI - Data Science
- GDD - Game Design and Development
- HCC - Human-Centered Computing
- HCD - Humanities, Computing, and Design
- NMID - New Media Interactive Development
- SE - Software Engineering
- STPP - Science, Technology, and Public Policy
Degree Abbreviations
- BS - Bachelor of Science
- MS - Master of Science
Other Abbreviations
- CSH - Computer Science House
- Co-op - Cooperative Education
- GCCIS - Golisano College of Computing and Information Sciences
- RIT - Rochester Institute of Technology
- WSGI Web Server Gateway Interface
Technologies Used
Application
- Nginx - HTTP web server and reverse proxy
- Docker - Container platform used to build and run website containers
- OpenShift (OKD) - Kubernetes-based container platform used to deploy and manage the website. Hosted by CSH
Frontend
- HyperText Markup Language (HTML) - Markup language used to structure the website
- Cascading Style Sheets (CSS) - Style sheet language used to style and format the website
- JavaScript (JS) - Programming language used to provide website functionality
- SortableJS - JavaScript library used to enable drag-and-drop course block reordering
Backend
- Python - Programming language used to implement the backend
- Flask - Python web application framework used for backend request handling
- Gunicorn - WSGI HTTP server used to serve the Flask backend behind Nginx
Database
- MariaDB - Relational database used to store course information. Hosted by CSH
Hosting
- OpenShift (OKD) - Kubernetes-based container platform used to deploy and manage the website. Hosted by CSH