LRCCD Student Prerequisite Analyzer v2.1.5

Simplify the process of checking course prerequisites with the Student Prerequisite Analyzer. This app automates the task of organizing and tracking student prerequisites, providing clear and organized data.

No data is transmitted, and all processing is handled directly in your browser for security.

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.

Please note: Roster Data must be pasted and processed before Prerequisite or Indirect Prerequisite data.

  1. Before proceeding, make sure to check the boxes for the prerequisites (Direct, Indirect, or both) you wish to verify.
  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 the course also has indirect prerequisite courses you wish to check, click on the Indirect Prereq Checker link in the Prerequiste 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 Prerequisite 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 the ability to download the table data in various formats (Excel, Google Sheets, CSV).

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

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

Enter Course Data Below
No data processed yet.

Please complete the Roster Data section first

No data processed yet.
No data processed yet.