A Flask-based web application that fetches live case data, orders, and judgments from the Faridabad District Court eCourts portal.
It provides a searchable dashboard to view case metadata, order history, and download PDF copies of orders/judgments — even when they are embedded in JavaScript-based PDF viewers.
This project currently scrapes data from the Faridabad District Court eCourts Services portal (https://services.ecourts.gov.in/).
It supports:
- Fetching case metadata (case type, filing date, status, etc.)
- Displaying orders/judgments in multiple categories (Interim, Final, History, etc.)
- Downloading result page as a PDF
court-data-fetcher/
│
├── app.py # Flask entry point
├── scraper.py # Main scraping & PDF proxy logic
├── models.py # Data models / helper classes
├── templates/ # HTML templates (form, result, pdf_templates)
├── requirements.txt # Dependencies
├── .gitignore # Git ignore file
└── README.md # Documentation
git clone https://github.com/<your-username>/court-data-fetcher-mini-dashboard.git
cd court-data-fetcher-mini-dashboardpython -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windowspip install -r requirements.txtpython app.pyhttp://127.0.0.1:5000
Create a .env file in the project root with:
# Flask settings
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=your_secret_key_here
# Selenium / ChromeDriver settings
CHROMEDRIVER_PATH=/absolute/path/to/chromedriver
SELENIUM_HEADLESS=TrueNote:
If using Selenium in headless mode, ensure you have Google Chrome and the matching ChromeDriver installed.
The Faridabad District Court eCourts portal uses CAPTCHA challenges for human verification.
This app uses manual CAPTCHA entry:
- When a search request triggers a CAPTCHA, it will be displayed in the form.
- The user must manually enter the text to proceed.
- Automated CAPTCHA solving is avoided to comply with legal and ethical standards.
- Search Form (
form.html) – Enter case details and CAPTCHA (if prompted). - Backend Scraper (
scraper.py) – Usesrequests+BeautifulSoupto fetch and parse court data. - Results Dashboard (
result.html) – Displays metadata and order/judgment links in categorized tables.
- When you perform a search, Selenium will open a browser window to load the court case details.
- Wait until the case data is fully loaded in the Selenium window.
- Return to the terminal and press Enter — this will trigger the script to parse the loaded data and redirect you to the results page where the dashboard is generated.
Example Case 1:
- Case Type: CS - Civil Suit
- Case Number: 121
- Filing Year: 2021
Example Case 2:
- Case Type: CA - Civil Appeal
- Case Number: 121
- Filing Year: 2021
This project is licensed under the MIT License — see the LICENSE file for details.
- Python 3.9+
- Google Chrome & ChromeDriver
- Flask
- BeautifulSoup4
- Requests
- Selenium