Skip to content

OmarFaruk-0x01/Education-Board-Results

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Education Board Result (EBR)

EBR is a android app that help to get Board Exam's Result
easily and generate a printable PDF file.

Android Android
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Prerequisites
  3. Installation
  4. Setup & Run
  5. Roadmap

About The Project


EBR is a mobile version of educationboardresults.gov.bd with some extra features e.g. Generating PDF, and clean UI. The app was made with React Native as a Frontend Technology and Python Flask as a Backend Technology. The app will help those people who can't use websites. People can easily get their results and also generate PDF in one click.

(back to top)

Features with Snapshots

  1. All Exam Boards, Exam Year and Exam name selections and Board Roll Reg input with classic UI.

    snapshot Logo
  2. Results are beautifully organized with GPAs and PDF generation

    snapshot Logo
  3. Server side printable PDF generation. In one click.

    snapshot Logo
  4. Save Your Result's PDF in your storage

    snapshot Logo

Built With

Frontend Technology

Backend Technology

(back to top)

Prerequisites

There are some prerequisites to run this app and server

  • Python3

    Linux
    sudo apt-get install python3
    sudo apt-get instsll python3-pip
    MacOS
    brew instsll python3 python3-pip
    Windows Download Python Binary by clicking here
  • React Native

    React native has a greate documentation for enviroment setup

Installation

Frontend

  1. Clone the repo
    git clone https://github.com/OmarFaruk-0x01/Education-Board-Results
  2. Goto to the Frontend Folder
    cd Frontend
  3. Install NPM packages
    npm install
  4. Run the command to start application.
    npx react-native run-android 
    npx react-native start

Backend

  1. Goto to the Backend Folder
    cd Backend
  2. Install dependencies
    pip3 install -r requirements.txt
  3. Run the server
    python3 main.py

(back to top)

Setup & Run

Now you have to run some commands to start the app.

Frontend

  1. To run the application
    cd Frontend
    npx react-native run-android # 'run-ios' if you are in macOS
  2. To start the developement server
    npx react-native start
  3. To make a Release Build follow the article.

Backend

Use those commands to run the backend server.

cd Backend
python3 main.py

Any Issue? If there are any connection issue with localhost server then use Ngrok or any other porxy. You can change server host url from Frontend/src/Constants/index.js this file.

const BASEURL = "<Your ngrok/proxy url>";

(back to top)

Roadmap

Frontend

  • Create two screens.
    • 1st screen for taking informations and
    • 2nd screen for showing the results in a organized way.
  • Create Static Constant Data of Exam Boards, Exams and Years.
  • Create DropDown Button Component take Datas and title with Props
  • Link Constant Data with dropdown components
  • Take Informations and send it to the server when Submit button will be pressed.
  • When get the results, move it to the 2nd screen and organized them.
  • When Download PDF button pressed. results send to the server and Generate A PDF. after generating download and save it to the storage.

Backend

  • Create a Request Session.
  • Send a GET request to the Education Board Result and parse the HTML with BeautifulSoup4.
  • Findout the all input fields
  • Calculate the Captcha and send a POST request to the result's route with all input fields and captcha.
  • After getting the results parse the HTML and get all information.
  • Make a JSON object with all result information and send to client.
  • After getting a POST request to the /genPDF route with Result Data. Create a PDF and save it to the server storage and generate a link and send it to the client.
  • After getting a GET request to the /getPDF route with PDF id. Send the PDF to the client.

(back to top)