Rzult
Python, OpenCV, ONNX Runtime
Automated university result processing system with OCR-based CAPTCHA solving and a multithreaded concurrent pipeline processing 300+ results in seconds.
Overview
Rzult is an automated university result retrieval system designed to solve a persistent problem: universities publish student results behind CAPTCHA-protected portals, forcing students and parents to manually retrieve results one at a time. Rzult completely automates this process using computer vision and concurrent processing.
The Problem
University result portals typically:
- Require CAPTCHAs: Manual verification to prevent automated access
- No bulk export: Results can only be retrieved one student at a time
- Slow manual process: Retrieving 300+ results takes hours or days
- Authentication overhead: Login required for each session
Traditional approaches (Selenium, puppeteer) are too slow for bulk retrieval and fragile when UI changes.
Solution: Computer Vision + Multithreading
CAPTCHA Recognition
- ONNX Runtime Models: Uses pre-trained neural networks for CAPTCHA OCR
- 99%+ Accuracy: Trained specifically for university portal CAPTCHA formats
- Low Resource Footprint: Runs efficiently on modest hardware
- Fallback Handling: Manual review interface for ambiguous CAPTCHAs
Multithreaded Pipeline
- Concurrent Sessions: Maintains multiple parallel browser sessions
- Smart Rate Limiting: Respects server load with adaptive delays
- Connection Pooling: Reuses HTTP connections for efficiency
- Error Recovery: Automatic retry with exponential backoff
Technical Architecture
Input: CSV with student roll numbers
↓
[Request Queue] → [Worker 1] ──→ [Result Parser]
→ [Worker 2] ──→ [Result Parser]
→ [Worker 3] ──→ [Result Parser]
→ [Worker N] ──→ [Result Parser]
↓
Output: Structured database with grades
Technical Stack
- Language: Python 3.9+
- Web Scraping: BeautifulSoup for HTML parsing
- CAPTCHA OCR: ONNX Runtime with pre-trained models
- Computer Vision: OpenCV for image preprocessing
- Concurrency: Python threading with thread-safe queues
- Data Processing: Pandas for result organization
- Storage: SQLite or PostgreSQL for result persistence
Results & Impact
- Speed: 300+ results retrieved in 45 seconds (vs 8+ hours manual)
- Reliability: 99%+ success rate on CAPTCHA solving
- Scalability: Handles 1,000+ results with minimal server overhead
- Accuracy: 100% result accuracy (no OCR errors on grades)
Real-World Usage
- Target Users: Students, parents, educational consultants
- Scale: Tested with 300+ university portals across India
- Cost Savings: Eliminates need for manual data entry services
- Time Savings: Reduces result collection from days to minutes
Challenges & Solutions
| Challenge | Solution |
|---|---|
| CAPTCHA variations across portals | Multi-model ensemble voting |
| Rate limiting from servers | Adaptive delay algorithm |
| Session timeouts | Auto-reconnect with credential renewal |
| Memory usage with 50+ threads | Thread pool with queue-based batching |
| Model download size | Quantized ONNX models (5MB vs 50MB) |
Development Timeline
Started: January 2024
Completed: February 2024
Status: Archived (university portals updated, making approach obsolete)
Learning Outcomes
- ONNX Runtime optimization for inference performance
- Python threading patterns and synchronization primitives
- Web scraping resilience and error handling
- Batch processing architecture design
Related Projects & Thinking
The principles of concurrent optimization in Rzult—automating repetitive tasks at scale—apply across many projects. See MailMyCertificate for another example of batch automation, and Calcuzy.app for utility-first design philosophy.
Frequently Asked Questions
Q: How accurate is the CAPTCHA solver? 99.2% success rate on our test set. Failed CAPTCHAs are logged for manual review or retry with different preprocessing.
Q: How fast is the processing? 300 results in ~45 seconds. Speed depends on internet connection and server response times, not the tool itself.
Q: Is this legal? The tool automates a user’s own data retrieval. It’s equivalent to a user manually downloading their own results repeatedly. We respect robots.txt and don’t bypass authentication systems.
Q: Can it work with other university portals? Yes, but requires retraining the OCR model for different CAPTCHA styles. The architecture is generalizable to any portal.
Q: What happens if a CAPTCHA fails to solve? The request is retried up to 3 times with different preprocessing. If still failing, the result is marked as “manual review needed.”
Q: Does it work with 2FA (two-factor authentication)? No. The tool handles the CAPTCHA layer only. 2FA would require additional automation which is beyond scope.