A Python tool to download previous year question papers for IGNOU (Indira Gandhi National Open University) students, specifically designed for BCA/MCA courses.
- Batch Download: Download multiple course question papers at once
- Year Range: Supports question papers from 2005 to 2018
- Session Support: Downloads both June and December session papers
- PDF Merging: Option to merge downloaded PDFs by course
- Progress Tracking: Real-time progress bar for downloads
- Error Handling: Robust error handling for network issues
- Cross-platform: Works on Windows, macOS, and Linux
- Python 3.7 or higher
- Internet connection
- IGNOU course codes
-
Clone the repository:
git clone https://github.com/samirank/qp_downloader.git cd qp_downloader -
Install dependencies:
pip install -r requirements.txt
Alternative installation (install as a package):
pip install -e .
The following packages are required:
urllib3- HTTP client for downloading filesbeautifulsoup4- HTML parsingPyPDF2- PDF manipulation and merging (notpy2pdf)pathlib- Path operations (included in Python 3.4+)
Note: This project uses PyPDF2, not py2pdf. Make sure to install the correct package.
Run the main script:
python qp_downloader.py- Enter course codes when prompted (separate multiple codes with spaces)
- Choose whether to merge PDFs for each course
- The tool will automatically:
- Fetch available sessions
- Download question papers
- Organize files by year and month
- Merge PDFs if requested
Common IGNOU course codes:
BCA-001- Computer Basics and PC SoftwareBCA-002- Programming in CBCA-003- Computer OrganizationBCA-004- Mathematics for ComputingBCA-005- Business Communication
qp_downloader/
├── README.md # This file
├── requirements.txt # Python dependencies
├── setup.py # Package installation script
├── qp_downloader.py # Main entry point
├── download.py # Core download functionality
├── progress.py # Progress bar utility
├── config.py # Configuration settings
├── utils.py # Utility functions
├── .gitignore # Git ignore file
└── LICENSE # MIT License
You can customize the tool by modifying config.py:
- Year Range: Modify
SUPPORTED_YEARSto change supported years - Session Types: Update
SUPPORTED_MONTHSto add/remove session types - School Codes: Change
DEFAULT_SCHOOL_CODEto use different school - Download Path: Set
DEFAULT_DOWNLOAD_PATHfor custom download directory - Timeout Settings: Adjust
REQUEST_TIMEOUTfor network timeouts
- Connection Errors: Check your internet connection
- Permission Errors: Ensure write permissions in download directory
- Missing Dependencies: Run
pip install -r requirements.txt - PDF Merge Errors: Ensure PyPDF2 is properly installed
- Dependency Confusion: This project uses
PyPDF2, notpy2pdf. Make sure to install the correct package.
-1: Unable to connect to server-2: Connection timed out
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Samiran Kakoty
- GitHub: @samirank
- Project: qp_downloader
- IGNOU for providing access to question papers
- The open-source community for various libraries used
- Contributors and users of this tool
- Years: 2005-2018
- Sessions: June, December
- School: SOCIS (School of Computer and Information Sciences)
This tool is for educational purposes only. Please respect IGNOU's terms of service and use the downloaded materials responsibly.
⭐ If you find this tool helpful, please give it a star on GitHub!