A browser extension to improve the functionality and user experience of the NCSU MyPack Portal. This is an unofficial, student-developed extension and is not affiliated with or endorsed by NC State University.
- Enhanced Navigation (in progress): Tracks and saves where you left off on page refresh or session timeout
- Enrollment Wizard (coming soon): Integration with Gradient and RateMyProfessor to streamline the course selection process
- More to be thought of!
Will hopefully be in the Chrome Web Store soon, and eventually planning to support Firefox. For now it has to be built manually from source, following developer instructions below.
Once installed, MyPack++ will automatically activate when you visit the NCSU MyPack Portal at https://portalsp.acs.ncsu.edu/. The extension runs seamlessly in the background, enhancing your portal experience without requiring any additional configuration.
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- A modern Chromium-based browser (Chrome, Edge, Brave, etc.)
-
Clone the repository
git clone https://github.com/BrandonTroy/mypack-plus-plus.git cd mypack-plus-plus -
Install dependencies
npm install
-
Run in development mode
npm run dev
This starts a development server with automatic rebuilding.
-
Load the extension in your browser (one-time setup)
- Open your browser and navigate to the extensions page (e.g.
chrome://extensions,edge://extensions) - Enable "Developer mode"
- Click "Load unpacked" and select the
dist/folder
- Open your browser and navigate to the extensions page (e.g.
-
Start developing!
- The extension should automatically reload in the browser as the source files are modified
- Depending on your browser, you might have to manually refresh the page to see your changes take effect
- When starting the dev server in future sessions, you may need to manually click the reload button in the extensions page once
-
Build for production
npm run build
This compiles the extension for release, also outputting to
dist/
Contributions, feature requests, and bug reports are welcome! Feel free to open issues and submit pull requests. Please run the linter with npm run lint:fix prior to committing, and use Conventional Commits for consistency.