This app is designed to retrieve student marks data from the VTU (Visvesvaraya Technological University) website and analyze it. It includes the following options:
-
Marks Scraper: An automated tool that retrieves student marks data from the VTU website and stores it in a CSV file. Regular and arrear results will be stored in seperate files. Depending on the URL link that is entered in the scraper, the tool will decide whether to collect revaluation marks or regular/arrear marks.
-
Marks Analyer: A tool that generates result analysis and calculates SGPA based on the data collected by the scraper and saves it in an Excel file. It also provides a graphical representation of subject performance in the form of an image file. This tool can update the old marks with the new revaluation marks (if any) and provide an updated analysis.
The repository provides both the source code and a packaged release for ease of use.
- Collects marks data for all or specific students of a branch from the VTU website.
- Supports automation using Selenium WebDriver.
- Handles the USN entry and CAPTCHA verification automatically.
- Processes the collected data to generate an Excel file.
- Calculates SGPA for each student.
- Provides an easy-to-use graphical-user interface (GUI) app through Tkinter.
- Handles common errors. While collecting data, if the number of retries crosses the set limit due to any errors, the data collected till that point will be saved.
Before running the application, ensure that you have the following prerequisites:
- Python 3.x
- Google Chrome
- Clone the repository to your local machine:
git clone https://github.com/nithinhm/vtu-marks-scraper-analyzer.git
- Navigate to the project directory:
cd vtu-marks-scraper-analyzer
- Install the required dependencies:
pip install -r requirements.txt
- Run the main app using Python:
python "main.py"
- When the GUI window opens, click on the
Marks Scraper
button. The scraper app will open.
-
Enter the required information. The second field can accept entries like
1-100
(1 to 100),1,2,3
(1, 2, and 3 only), or even a combination of both1-10,13,15,20-30
(1 to 10, then 13 and 15, and then 20 to 30). -
Click "Verify" to verify the input. If the entered data is valid, you can click "Collect". You will be asked whether you want to look at the automation process or not.
-
Next, sit back and relax while the tool collects the marks data for the specified students. (You could also abort the collection process by clicking "Abort." Data collected till that point, if any, will be saved.)
-
Once the process is complete, you will be asked to select a folder in which to save the collected marks data. Once the folder is selected, the data will be saved in it as a raw CSV file(s) (regular and arrear, if any). Make sure to not change the names of the downloaded files.
-
If you wish, you can continue to gather data for other branches or simply stop. (You can also gather data in segments for the same branch and use the analyzer app to merge all the segments to create the final analysis report.)
- To help in calculating the SGPA, another CSV file called
Credit Info
will be saved in the same folder. Before doing the analysis, make sure to open the file, fill in the credits in the second column for the courses mentioned, and save the file. If you do not wish to calculate the SGPA, this step can be skipped.
- After you have collected the data for all the students from a branch, close the scraper window. The main window reappears. Click the
Marks Analyzer
button. The analyzer app will open.
-
Select "Browse" and choose the saved raw CSV files that hold the marks data of regular marks, arrear marks, revaluation marks (if any), and the credit info file. Selecting files containing regular marks is compulsory.
-
Click on "Analyze" and do as instructed. This will generate an Excel file with the marks and their analysis (check the different sheets in the Excel workbook) in the selected folder.
Please avoid running the scraper on multiple systems simultaneously using the same internet IP address. There's a risk that your IP could be blocked from accessing the specific result link forever due to excessive requests in a short period of time. Although necessary measures are taken in the app to avoid IP block, one must ensure to use the tool responsibly to prevent any disruptions in access.
Alternatively, you can download and utilize the packaged version of this project available in the Releases section of this repositary. This package does not require manual installation of Python. More on how to use the packaged version is available in the description of the release.
This project is licensed under the GNU General Public License v2.0.
Contributions to this project are welcome. Feel free to open issues and submit pull requests to suggest improvements or fix any bugs.
Please ensure that your contributions align with the project's coding style and conventions.
This project was inspired by the need to automate the laborious procedure of collection of marks data from the VTU website. Special thanks to the open-source community for their valuable resources and tools. And a big shoutout to Suhas P K for his constant feedback, suggestions, and code-breaking!
For any inquiries or suggestions, please contact the project maintainer:
Prof. Nithin H M
Email: nithinmanju111@gmail.com
Feel free to reach out with any questions or feedback you may have.