ResultJano is a web application that automates the process of retrieving and merging multiple student exam results from mbmiums.in. It allows users to fetch results for a range of roll numbers, merge them into a single PDF, and download the combined file.
Access the live application at: https://resultjano-7e1aa2c91bb0.herokuapp.com/
- Bulk retrieval of exam results by specifying roll number ranges
- Real-time progress tracking with detailed status updates
- Queue system to handle multiple simultaneous requests
- Automatic merging of multiple result PDFs into a single document
- PDF preview in the browser
- Comprehensive logging of the retrieval process
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/coehemang/ResultJano.git # or https://github.com/Er-Mayank-Aggarwal/ResultJano.git cd ResultJano
-
Install dependencies:
npm install
-
Create the necessary directories (will be auto-created on first run):
/downloads
- Temporary storage for individual PDFs/merged
- Storage for combined PDF results/public
- Static files for the web interface
-
Start the server:
node server.cjs
-
Open your browser and navigate to:
http://localhost:5002
-
Enter the required information:
- Start and end roll numbers
- Academic year
- Semester
- Branch
- Exam type
-
Click "Get Results" to start the retrieval process
-
Monitor progress in real-time through the status panel
-
Once complete, preview and download the merged PDF
When deployed on Heroku, the application:
- Automatically detects the Heroku environment
- Reduces resource usage by limiting to one concurrent worker
- Uses smaller batch sizes to avoid timeouts
- Implements queue system to handle multiple requests
- Optimizes browser parameters for Heroku's limited resources
The server runs on port 5002 by default. You can change this by setting the PORT environment variable:
PORT=8080 node server.cjs
- Backend: Node.js, Express.js
- Web Automation: Puppeteer
- PDF Manipulation: PDF merging utilities
- Frontend: HTML, CSS (Bootstrap), JavaScript
server.cjs
- Express server and main application logicpublic/
- Frontend files (HTML, CSS, JavaScript)utils/mergePDFs.cjs
- PDF merging utilitydownloads/
- Temporary storage for downloaded PDFsmerged/
- Storage for merged PDF files
- The maximum roll number range is limited to 200 to prevent server overload
- Roll numbers must be from the same branch and semester
- Start and end roll numbers must have the same prefix (first 6 characters)
- Important: This tool only works for scraping results from MBM University's result portal (mbmiums.in)
This project was developed by:
- Mayank Aggarwal (CSE 2027)
- Hemang Choudhary (IT 2027)
This project is licensed under the MIT License - see the LICENSE file for details.