Faculty and staff utility

LRCCD Student Prerequisite Analyzer

Organize roster, prerequisite, and indirect checker data into one clear student completion view.

v3.0 Development

Local processing. Pasted student data stays in your browser.

Instructions

  1. If you believe there is any data in the textboxes below, click Reset Roster or Reset All Fields in the Student Prerequisite Analyzer to clear existing data before proceeding.
  2. Log into the Los Rios Intranet (opens in a new tab).
  3. Select Online Grade Reporting and Class Rosters and click Go to Service.
  4. Select the desired roster and click Get Roster.
  5. Activate the page and copy its contents (Ctrl + A, Ctrl + C on Windows or Cmd + A, Cmd + C on Mac).
  6. Paste the copied data (Ctrl + V on Windows or Cmd + V on Mac) into the Roster Data textbox.

Start with the roster. Roster Data must be accepted before prerequisite or indirect checker data can be processed.

  1. Choose whether you want to check official prerequisites, indirect evidence, or both.
  2. Back in the LRCCD roster, click on the Prereq Checker link.
  3. Activate the page and copy its contents (Ctrl + A, Ctrl + C on Windows or Cmd + A, Cmd + C on Mac).
  4. Paste the copied data (Ctrl + V on Windows or Cmd + V on Mac) into the Prerequisite Data textbox.
  5. If you also want to review indirect evidence, click the Indirect Prereq Checker link on the Prerequisite Checker page.
  6. Activate the page and copy its contents (Ctrl + A, Ctrl + C on Windows or Cmd + A, Cmd + C on Mac).
  7. Paste the copied data (Ctrl + V on Windows or Cmd + V on Mac) into the Indirect Evidence Data textbox.
  8. Click Process Data to view your organized student data.
  9. If you would like to save your data for later, scroll down to the Download section.
  10. Select your preferred file format from the dropdown menu.
  11. Click the Download button to save your processed data.

User Feedback

The feedback form and data logging still needs to be built.

For now, please contact me, Richard Gentry, at gentryr@scc.losrios.edu for any questions or suggestions.

I hope you enjoy using the app!

Project Road Map

User-Requested Enhancements

  • (Complete) Implement Indirect Prerequisite Checker functionality.
  • (Complete) Enhance the UI/UX to better facilitate the Indirect Prerequisite Checker functionality.
  • (Complete) Improve error handling to provide clearer instructions and error messages during indirect prerequisite data processing.

Basic Setup and Main Page

  • (Complete) Improve the styling and layout of the main page for better readability and accessibility.
  • (Complete) Set up the development environment.
  • (Complete) Create the main HTML page with the necessary input fields and a text area for pasting data. Add a new text box for the roster data.

Data Parsing Module

  • (Complete) Write a JavaScript function to parse the prerequisite data.
  • (Complete) Write a JavaScript function to parse the roster data.
  • (Complete) Implement error handling for handling data format issues.
  • (Complete) Compare lab and lecture information for error checking.

Table Generation Module

  • (Complete) Write a JavaScript function to generate an HTML table based on the parsed data.
  • (Complete) Implement color-coding logic to mark cells and rows based on course completion status.
  • (Complete) Refine the table layout and styling for improved visual presentation.

Color Coding Module

  • (Complete) Implement the color-coding logic to mark cells and rows based on the course completion status.

Download Functionality Module

  • (Complete) Implement spreadsheet downloads in XLSX, CSV, and ODS formats.

User Interaction and Feedback

  • (Not Needed) Implement a loading indicator to provide feedback during data processing.
  • (Complete) Implement a reset button to clear the input and output.
  • (Complete) Improve error handling with clear error messages.
  • (To Do) Build feedback form
  • (Continuous Revision) Update instructions and guidance for better clarity and usability.

Progressive Web App (PWA) Conversion

  • (Complete) Added and configured the web app manifest file.
  • (Complete) Set up the basic structure for the service worker file.
  • (Complete) Registered the service worker in the main JavaScript file.
  • (Complete) Implemented fetch event listeners in the service worker for offline support.
  • (Complete) Fixed caching issues to ensure all required files are available offline.
  • (Complete) Added PWA icons and updated the theme color in the manifest and HTML meta tag.
  • (Complete) Conducted thorough testing to ensure PWA functionality works as expected.

Testing and Refinement

  • (Continuous Need) Thoroughly test the application, covering different scenarios and edge cases.
  • (Continuous Need) Gather user feedback and make necessary refinements to enhance usability and functionality.

Deployment

  • (Complete) Deploy the application to the shared server.
  • (Complete) Perform final testing in the production environment.
Back to Top

Version

3.0.0-dev

  • Rebuilt roster, direct prerequisite, and indirect prerequisite parsing around separate Faculty and Admin source formats.
  • Added fail-closed parser behavior so unrecognized LRCCD structure is not mistaken for valid empty prerequisite data.
  • Recognized Direct Prerequisite pages with no listed courses now ask the user to confirm the valid empty result instead of blocking the workflow.
  • Added Common Course Numbering support, including values such as STAT C1000, and safer handling of unsupported prerequisite course blocks.
  • Current and former course numbers are preserved together in output headers, and official former numbers reconcile legacy Indirect headings without creating duplicate prerequisite columns.
  • Only official prerequisite columns affect student status. Indirect-only courses are labeled as Indirect Evidence, remain informational, and do not count for or against the student.
  • Added sanitized regression tests and a unified parser test dashboard.
  • Replaced paste timing delays with direct clipboard capture.
  • Improved keyboard and dialog accessibility.
  • Escaped LRCCD-derived values before inserting them into generated HTML or dialog markup.
  • Improved PWA cache isolation and development-build identification.
  • Refreshed the interface with a wider workspace, card-based data entry, compact status badges, clearer results hierarchy, and stronger separation between prerequisites and indirect evidence.
  • When Indirect Evidence is selected but left empty, users with valid prerequisite data can explicitly continue without it. Pasted Indirect data that fails parsing still requires review.

2.1.5

  • Stabilized Class Roster parsing after recent LRCCD formatting changes affected both faculty and admin roster outputs.
  • Corrected roster section scanning to reliably stop before Dropped Students and Permission Numbers, preventing non-student data from being misinterpreted.

2.1.4

  • Fixed direct prerequisite parsing after LRCCD removed colons from course section headers in the Prerequisite Checker output.
  • Resolved an admin-roster edge case where extra blank lines before section headers caused prerequisite sections to display as generic Section_# labels.

2.1.3

  • Updated roster parsing to handle LRCCD roster format changes introduced in September 2025.
  • Improved robustness around header variants and extra whitespace in copied rosters.
  • General cleanup and minor messaging tweaks in the login notices.

2.1.2

  • Resolved an issue where 'null' values in indirect prerequisite data caused unexpected behaviour during data parsing. The data parsing function now correctly handles 'null' values and provides a robust comparison with the roster data.
  • Eliminated unnecessary console logs from the 'parseIndirectClassData' function, leading to cleaner code and improved performance.
  • Improved error handling in indirect prerequisite data parsing to provide more insightful and useful error messages for developers.
  • Modified the messaging in 'parseIndirectClassData' function to better inform the user about the specific data checker detected in the prerequisite data, thus improving the user's understanding of the data parsing process.
  • Persisted with code optimization efforts and cleanup to continue enhancing system performance and maintainability.

2.1.1

  • Fixed an issue that prevented the downloading of spreadsheets, restoring this key functionality for users.
  • Refined the message display system to ensure that notifications are presented in a clearer, more user-friendly way. This includes presenting new messages in an ordered list and ensuring old messages do not reappear if they've already been acknowledged.
  • Introduced an enhanced system for message storage, making sure that new and old messages are managed separately and efficiently.
  • Continued work on code optimization and cleanup to enhance system performance and maintainability.

2.1.0

  • Introduced a notification system to inform users of important updates and known issues.
  • The notification system uses local storage to remember user preferences for each message and to prevent repeated messages. Messages can be configured to reappear after a certain number of days.
  • Improved the user experience by presenting all new messages together in a single dialog box, each remembered separately for future notifications.
  • Enhanced the dialog system to allow more flexible messages, including different responses to messages and the use of HTML tags in message text.
  • Added a default message header to the notification system to help identify system status messages, improving clarity for the users.
  • Added functionality to allow notifications to be easily turned off when not needed, improving system efficiency and user experience.
  • Continued to optimize and clean up code for enhanced performance and maintainability.

2.0.0

  • Added capability for Indirect Prerequisite checking in addition to Direct Prerequisites, greatly extending the functionality of the application.
  • Significantly updated the user interface and user experience with clearer instructions and intuitive error messages.
  • Introduced checkboxes for the selection of Direct and Indirect prerequisites, providing the user with more control over the data verification process.
  • Enhanced error handling mechanisms during data parsing and processing for more robust application performance.
  • Improved the parsing logic and paste handlers to efficiently handle both Direct and Indirect prerequisites data.
  • Optimized the HTML table and spreadsheet generation to handle both Direct and Indirect prerequisites data, providing the user with comprehensive data reports.
  • Implemented detailed logging for better debugging and error tracing, enabling more efficient troubleshooting and maintenance.
  • General code cleanup and optimization, improving the overall performance and readability of the codebase.

1.0.0

  • Implemented the Indirect Prerequisite Checker functionality.
  • Refactored and improved the parsing logic to handle direct and indirect prerequisites data.
  • Updated the paste handlers to handle direct and indirect prerequisites data.
  • Improved error handling during data parsing and processing.
  • Refactored the HTML table and spreadsheet generation to support both direct and indirect prerequisites data.
  • Improved the user interface and user experience, providing clearer instructions and error messages.
  • Enhanced the performance by optimizing the data processing flow.
  • Implemented logging for better debugging and error tracing.
  • General code cleanup and optimization.

0.9.0

  • Improved the user interface with a more aesthetic design, better readability, and enhanced accessibility.
  • Added an open-source MIT license.
  • Optimized the layout of the main page for better readability and accessibility.
  • Updated sections to be hidden until specific actions are performed, improving user experience.
  • Improved the download button visibility to enhance the user workflow.
  • Redesigned navigation tabs with new color coding for better visual feedback and user experience.
  • Updated version display in the footer.

0.8.9

  • Implemented responsive design for navigation tabs.

0.8.5

  • Updated user interface with CSS improvements for accessibility and responsiveness.
  • Added animation to the error dialog box for a better user experience.

0.8.2

  • General code cleanup and optimization.

0.8.0

  • Final adjustments and overall testing for PWA functionality.
  • Completed service worker optimization and caching improvements.

0.7.9

  • Added images/icons for PWA manifest.
  • Added theme color to manifest and to the meta tag in HTML.

0.7.8

  • Updated the manifest file with correct information and necessary fields.

0.7.7

  • Fixed issues with service worker registration and caching strategy.

0.7.6

  • Addressed caching issues, making sure all required files are cached.

0.7.5

  • Implemented service worker with fetch event listeners for offline support.

0.7.4

  • Created service worker for the application and registered it in the main JavaScript file.

0.7.3

  • Added basic structure for the service worker file (service-worker.js).

0.7.2

  • Configured the web app manifest file (manifest.json) with initial settings.

0.7.1

  • Set up the basic structure for the PWA including the addition of the manifest file in the HTML file.

0.7.0

  • Minor code cleanup and formatting improvements.

0.6.9

  • Modified the file name of the generated spreadsheet to include the course name, LEC number (preferred), LAB number, and the current date (in the format of year-month-day).

0.6.8

  • Updated the code to display the course, professor, LEC number, and LAB number at the top of each spreadsheet.
  • Added a blank line between the header information and the student roster table.

0.6.7

  • Fixed a bug in the scrolling functionality by ensuring the DOM is fully loaded before attaching event listeners.

0.6.6

  • Added smooth scrolling to the download button after processing the data.

0.6.5

  • Improved table layout and styles for better readability.
  • Added color-coding to the table rows for easier data interpretation.
  • Added support for generating spreadsheet files in multiple formats (xlsx, csv, ods).
  • Added a dropdown menu to select the desired file format.
  • Implemented the generateSpreadsheetFile function to handle the file generation based on the selected format.
  • Modified the generateSelectedSpreadsheetFile function to retrieve the selected format from the dropdown and call the main function with the appropriate parameters.

0.5.1

  • Public Release
    • Fixed a parsing error from Firefox including extra white spaces

0.5.0

  • Public Release
    • All major functionality should be working.
    • More user testing is needed.
    • Minor error - Table is being generated even when prerequisites are not present. Instead a pop-up should be shown letting user know that the prerequisite data could not be found.
Back to Top

Workflow

Course Data

Paste each LRCCD page into the matching card. All processing happens locally in your browser.

Course data inputs

Step 1

No data processed yet.

Paste the copied LRCCD Class Roster page.

Roster data is processed when pasted.

Complete the Roster Data step first

Step 2

Checking Options

Official

No data processed yet.

Paste the LRCCD Prerequisite Checker page.

Informational

No data processed yet.

Paste the LRCCD Indirect Prerequisite Checker page. Indirect-only courses do not count for or against prerequisite status.

Step 3

Process Results

Build the student prerequisite matrix from the accepted data above.

Export

Download Results