A professional browser extension for extracting course data from the Amozeshyar (IAU E-Services) system and exporting it into different formats.
- One-click course data extraction from the course table
- Multi-page course collection without losing previously extracted data
- Duplicate prevention based on course code + offering code
- Excel export (.xlsx) — RTL format with styled headers and optimized column widths
- PDF export — Professional print layout with full Persian font support
- Column selection before exporting files
- Automatic Jalali date-based filenames
- Temporary storage — Data is cleared when the browser is closed
- Fully RTL-compatible minimalist UI design
| Domain |
|---|
https://eserv.iau.ir/* |
https://stdn.iau.ir/* |
https://stdn2.iau.ir/* |
You can download the pre-built version of the extension directly from GitHub Releases:
Download Amozeshyar Exporter v1.0.0
After downloading:
- Extract the downloaded ZIP file
- Open Chrome and navigate to:
chrome://extensions
- Enable Developer mode from the top-right corner
- Click Load unpacked
- Select the extracted
distfolder - The extension will be installed and activated ✅
- Log in to one of the supported Amozeshyar systems
- Open a page containing the course table
- The extension toolbar will automatically appear at the bottom-left corner
- Click Register Courses — courses from the current page will be collected
- Navigate to the next page and click Register Courses again — new courses will be added
- After collecting all courses, click Export File
- In the export modal:
- Select the desired columns
- Enter a custom filename (optional)
- Choose Export Excel or Export PDF
amozeshyar-exporter/
├── manifest.json # Manifest V3 configuration
├── package.json
├── tsconfig.json
├── webpack.config.js
├── public/
│ └── icons/ # Extension icons (PNG and SVG)
├── dist/ # Generated build output
└── src/
├── types/
│ └── course.ts # Course interface and helper types
├── constants/
│ └── columns.ts # Column definitions and DOM selectors
├── utils/
│ ├── jalaliDate.ts # Gregorian to Jalali date conversion (without libraries)
│ └── domUtils.ts # DOM utilities: createElement, showToast, ...
├── services/
│ ├── storageService.ts # chrome.storage.session wrapper
│ ├── extractionService.ts # HTML table data extraction
│ ├── excelExportService.ts # Excel export using SheetJS
│ └── pdfExportService.ts # PDF export through Print Window
├── content/
│ ├── content.ts # Content script entry point
│ ├── buttonInjector.ts # Injects toolbar into the page
│ ├── modalManager.ts # Extraction modal rendering and management
│ └── styles.ts # All UI CSS styles as strings
└── background/
└── background.ts # MV3 Service Worker
- Node.js >= 18
- npm >= 9
- Chrome or Edge browser (Chromium-based)
- Firefox browser (Gecko-based)
# 1. Clone the repository
git clone https://github.com/EhsanKey/amozeshyar-exporter.git
# 2. Navigate to the project directory
cd amozeshyar-exporter
# 3. Install dependencies
npm install
# 4. Build for production
npm run buildAfter the build process, the dist/ folder will be generated and contain all production-ready extension files.
To install the locally built extension on Chrome:
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select the generated
distfolder
Contributions are welcome! 🎉
# 1. Fork and clone the repository
git clone https://github.com/EhsanKey/amozeshyar-exporter.git
cd amozeshyar-exporter
# 2. Install dependencies
npm install
# 3. Create a new branch
git checkout -b feature/your-feature
# 4. Make your changes and build the project
npm run build
# 5. Commit and push your changes
git commit -m "feat: your description"
git push origin feature/your-featureMIT License