Faculty and staff utility

LRCCD Student Prerequisite Analyzer

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

Version 3

Local processing. Pasted student data stays in your browser.

Overview What the analyzer does and how your data is handled

The LRCCD Student Prerequisite Analyzer organizes copied Class Roster and prerequisite checker data into a clear view of each student's prerequisite completion. Results can be reviewed in the browser and exported as XLSX, CSV, or ODS files.

Prerequisites are the official requirements for the class. Indirect Evidence comes from the LRCCD Indirect Prerequisite Checker. When that evidence matches an official prerequisite or its official former course number, it can satisfy that prerequisite. Other indirect-only courses are shown for context and do not affect prerequisite status.

Student data stays local. Roster and prerequisite information is processed in your browser and is not sent to or stored on an external server.

Step-by-Step Instructions Show detailed directions for using the analyzer
  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 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. Use the class summary and filters to focus on students who are complete, missing prerequisites, or have Indirect Evidence.
  10. Select View for a student to see how each prerequisite was satisfied and any additional Indirect Evidence. Students missing prerequisites also have an editable Copy Message option.
  11. If you would like to save your data for later, scroll down to the Download section.
  12. Select your preferred file format from the dropdown menu.
  13. Click Download to save your processed data.

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. Evidence that matches a prerequisite or its official former course number can satisfy that prerequisite. Other indirect-only courses are shown for context and do not affect status.

Step 3

Process Results

Build the student prerequisite matrix from the accepted data above.

Export

Download Results

Help

Support

Contact information, troubleshooting tools, and diagnostic privacy details.

Contact and Support Questions, suggestions, and problem reports

For questions, suggestions, or problems, email Richard Gentry at gentryr@scc.losrios.edu.

If something in the analyzer does not look right, include what you were trying to do and what you expected to happen.

Support Diagnostics Create a privacy-safe report for technical problems

If you are reporting a technical problem that cannot be reproduced locally, open Support Diagnostics, copy or download the report, and include it with your email.

The report is designed to help troubleshoot browser, service-worker, cache, and application-state problems without including student records.

What the Report Contains See what Support Diagnostics includes and excludes

Included

  • Application version and expected cache information.
  • Browser, platform, language, viewport, and display information.
  • Service-worker registration and cache state.
  • Privacy-safe workflow state such as whether roster or prerequisite data was accepted and whether the Faculty or Admin source format was detected.
  • Recent privacy-safe diagnostic events.

Not Included

  • Pasted roster or prerequisite text.
  • Student names or student IDs.
  • Course or professor information.
  • Prerequisite records or result-table contents.

Project

About

The people, history, design decisions, and maintenance behind the analyzer.

About Richard Gentry Professor, department chair, and developer

Richard Gentry is a professor and department chair in Mechanical-Electrical Technology at Sacramento City College. His work includes career technical education, curriculum and program development, workforce development, industry partnerships, and faculty leadership.

His professional background includes technical and industrial work as well as teaching. Richard created and maintains the LRCCD Student Prerequisite Analyzer as part of his work supporting faculty and students at Sacramento City College and across the Los Rios Community College District.

Why This Exists How a personal spreadsheet became a faculty web application

The LRCCD Student Prerequisite Analyzer began as a spreadsheet I created to make prerequisite tabulation easier for my own courses. As I revised that process for my own use, I started thinking about the faculty in my department doing the same work. At that point the question became broader: if my faculty needed a better way to work with this information, other faculty across LRCCD probably did too.

A spreadsheet was not the right solution for broader use. I also did not have access to a district application server, and any solution handling student-record information needed to protect that data. The analyzer was therefore built as a browser-based application that processes roster and prerequisite information locally rather than transmitting student data to an external server.

About the LRCCD Student Prerequisite Analyzer Purpose, design, and privacy

The LRCCD Student Prerequisite Analyzer is a client-side faculty and staff utility for organizing Class Roster, Prerequisite Checker, and Indirect Prerequisite Checker data into a single prerequisite-completion view.

The application supports separate Faculty and Admin source formats, reconciles current and official former course numbers, keeps indirect-only evidence separate from official prerequisite status, and provides browser results, student detail, editable Copy Message tools, and spreadsheet exports.

All roster and prerequisite processing occurs locally in the browser. The application does not require a server-side student database and does not transmit pasted student data to an external server.

The project is licensed under the MIT License.

Version 3 Current release changes

3.0.0

  • Rebuilt roster, Prerequisite Checker, and Indirect Prerequisite Checker 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 Prerequisite Checker 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.
  • Added an explicit per-student results status so users can quickly see whether all official prerequisites are complete or how many remain missing.
  • Added a compact class summary and filters for All, Complete, Missing Prerequisites, and Has Indirect Evidence.
  • Added per-student detail views showing each prerequisite, whether it is missing or complete, and whether completion is listed in the Prerequisite Checker or supported by Indirect Prerequisite Checker evidence.
  • Added an editable per-student Copy Message for students missing official prerequisites. Indirect-only evidence is never presented as a missing prerequisite.
  • Added a privacy-safe Support Diagnostics page that captures browser, PWA/cache, application-state, and recent event information without including student or pasted LRCCD data.
  • Streamlined support and feedback to email, with Support Diagnostics available when a problem cannot be reproduced locally.
  • Standardized faculty-facing language around Prerequisites and Indirect Evidence, clarified when Indirect Prerequisite Checker evidence can satisfy a prerequisite, and simplified student-detail explanations.
  • Centralized per-student result calculations in a shared results model used by the table, filters, student detail, Copy Message workflow, and spreadsheet exports.
  • Expanded regression coverage to include the results model, Copy Message generation, submission workflow rules, and diagnostics privacy safeguards.
  • Consolidated startup notices onto the shared accessible dialog system and hardened unexpected application-error reporting for Support Diagnostics.
  • Centralized runtime version, build, and cache metadata to reduce release-maintenance drift.
  • Added wide-table support with horizontal scrolling, sticky Student ID and Student Name columns, and overflow-aware scroll controls for classes with many prerequisite columns.
  • Reorganized the interface around Home, Support, and About. Home keeps the analyzer workflow as the main view with an expanded Overview and collapsed Step-by-Step Instructions, while Support and About use collapsible sections for secondary information.
  • Added the same official prerequisite status to XLSX, CSV, and ODS exports for consistency with the browser results.
  • 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.
  • Updated the startup notice for the Version 3 production release.
Roadmap and Maintenance Release readiness and ongoing maintenance

Future Development

  • Authorized Encrypted Diagnostics: Explore an optional support mode for difficult-to-reproduce problems that can generate a locally encrypted diagnostic package. Normal diagnostics would remain privacy-safe and available to everyone. More detailed or source-inclusive reporting would require explicit authorization and user confirmation, with the package encrypted before leaving the user's computer.

Ongoing Maintenance

  • Continuous: Validate Faculty and Admin source formats as LRCCD pages change and add sanitized regression fixtures for newly observed variations.
  • Continuous: Maintain regression coverage for parsers, result modeling, workflow behavior, diagnostics privacy, and wide-table support.
  • Continuous: Refine instructions, error handling, accessibility, and workflow guidance based on real use and faculty feedback.
Version History Earlier releases and changes

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.