Sakib.

BTEB Results Zone

BTEB Results Zone

I built BTEB Results Zone, a web application that allows students under Bangladesh Technical Education Board (BTEB) to easily check their results. The application is designed to solve the problem of checking results from large PDF files published by BTEB. These PDF files contain 50,000 to 60,000 students' results and are usually 1400-1500 pages long.

The application has the following features:

  • Individual Results: Students can check all their published results by entering their roll numbers.
  • Group Results: Students can create customized groups by roll numbers to check their ranks. This is mostly helpful for results of a class or section.
  • Institute Results: This feature shows institute-wise results and statistics. It contains all student results of an institute for a specific publish date and semester.
  • Latest Results: This feature allows users to see all published results and statistics for each publish date and semester.
  • Point Results: This feature shows the students with top results across all institutes. It also allows users to query results by any specific curriculum (exam), GPA, semester, and publish date.
  • Add to Favorites: This feature allows users to save their favorite or most used results queries.
  • PWA: This application uses Progressive Web App technology, which allows users to install it and use it like a native app.

The challenges I faced while building this application were:

  • Parsing Results From PDF: The most important and challenging part of the project was collecting the data (results) from the PDF file. The results in the PDF files had so many different formats and patterns. I had to use a huge amount of RegEx to parse the results with so many details like curriculum/exam, semester, exam year, roll number, GPA, CGPA, failed subject with different types, Institutes, publish dates, and so on.
  • Saving to Database: Due to having so many student results with multiple semesters with multiple publish dates of the same semester results, it was very challenging to be consistent in storing and managing student-wise results.
  • Too Many Requests: Due to the load of so many users, the server crashed many times. To solve this issue, I increased the server containers on the results published date. But increasing the containers was costly. Then I found out that Next.js prefetching was sending so many extra requests to the server. So I turned off the default prefetching behavior of Next.js, and half of the load was gone.
  • Fighting the DDOS Attack: As the application became popular and the first choice of BTEB students, it faced a DDOS attack that caused the server to crash. I used Cloudflare's DDOS protection to fight this issue.

Technologies Used:

Client Application:

  • Next.js
  • JavaScript
  • TypeScript
  • MUI + Tailwind CSS
  • MongoDB

Results Parser Engine:

  • Node.js
  • Express.js
  • JavaScript
  • TypeScript
  • MongoDB

The success of this application is evident in the number of users it has. As of November 2024, it has reached a total of 1 million users.

Check BTEB Results Zone here