A Node.js application that automatically downloads all assignments from your college ERP system for the current semester. This tool helps you maintain a local backup of all assignments uploaded by specific users.
- Automated assignment downloads from college ERP
- User-specific filtering (download assignments from specific users)
- Secure authentication handling
- Custom header generation to mimic browser behavior
- Parallel download support
- Automatic file organization
- HTTPS support for secure connections
Before running this application, make sure you have:
- Node.js (v14 or higher)
- npm (Node Package Manager)
- Valid college ERP credentials
# Clone the repository
git clone https://github.com/yourusername/collage-upload
# Navigate to project directory
cd collage-upload
# Install dependencies
npm installThe project uses the following npm packages:
{
"dependencies": {
"axios": "^1.7.9", // HTTP client for making requests
"cheerio": "^1.0.0", // HTML parsing and manipulation
"crypto": "^1.0.1", // Cryptographic functionality
"dotenv": "^16.4.7", // Environment variable management
"form-data": "^4.0.1", // Form data handling
"fs": "^0.0.1-security", // File system operations
"header-generator": "^2.1.61", // Generate realistic browser headers
"https": "^1.0.0", // HTTPS support
"net": "^1.0.2", // Network functionality
"request": "^2.88.2", // Legacy HTTP client
"url": "^0.11.4" // URL parsing and formatting
}
}Create a .env file in the root directory:
EMAIL="clgid@ppsu.ac.in"
PASS="your_pass"# Start the application
node app.js
# With specific environment file
node app.js --env custom.env- The application logs into your college ERP using provided credentials
- It generates browser-like headers to avoid detection
- Parses the HTML content to find assignment links
- Downloads files from matched users
- Organizes downloads by subject and date
- Secure password handling using crypto
- HTTPS for secure connections
- Custom headers to prevent blocking
- Environment variable usage for sensitive data
The application handles:
- Network timeouts and retries
- Invalid credentials
- File system errors
- Rate limiting
- Connection issues
- Fork the repository
- Create your feature branch (
git checkout -b feature/NewFeature) - Commit your changes (
git commit -m 'Add NewFeature') - Push to the branch (
git push origin feature/NewFeature) - Create a Pull Request
This project is licensed under the ISC License.
Common issues and solutions:
- If downloads fail, check your network connection
- For authentication errors, verify your credentials
- If files are incomplete, check storage space
- For rate limiting, adjust the delay between requests
This tool is intended for personal use to maintain local backups of your assignments. Please ensure you comply with your institution's policies regarding automated downloads.