A comprehensive system for tracking property records from Karnataka, India.
getRTC is an innovative solution designed to modernize the way property records are accessed and managed in Karnataka. The system bridges the gap between traditional paper-based records and digital accessibility by:
- Automating the extraction of property details from RTC (Record of Rights, Tenancy and Crops) documents using advanced image processing
- Providing instant access to historical property records spanning multiple years
- Enabling easy comparison of property details across different time periods
- Creating a digital archive of property documents for future reference
Built with a robust Django backend and a modern React frontend, getRTC offers:
- Seamless document upload and processing
- Intelligent data extraction from scanned documents
- Interactive visualization of property history
- Secure storage and retrieval of property records
- User-friendly interface for both technical and non-technical users
The system is particularly valuable for:
- Property owners tracking their land records
- Real estate professionals verifying property details
- Government officials managing land records
- Legal professionals handling property cases
- Researchers studying land ownership patterns
The system consists of a Django backend with image processing capabilities and a React frontend that provides an intuitive user interface.
git clone https://github.com/yourusername/getRTC.git
cd getRTC
- Create and activate a virtual environment:
cd rtc-scraper
python3 -m venv venv
source venv/bin/activate # On Linux/Mac
- Install Python dependencies:
pip install -r requirements.txt
- Copy the example environment file and configure it:
cp .env.example .env
# Edit .env with your database and API credentials
- Set up PostgreSQL database:
# Create database and user as per .env configuration
sudo -u postgres psql
postgres=# CREATE DATABASE rtc_documents;
postgres=# CREATE USER your_db_user WITH PASSWORD 'your_db_password';
postgres=# GRANT ALL PRIVILEGES ON DATABASE rtc_documents TO your_db_user;
- Run migrations and start the server:
python manage.py migrate
python manage.py runserver
- Install Node.js dependencies:
cd project
npm install
- Start the development server:
npm run dev
The application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
The backend provides the following REST API endpoints:
- Endpoint:
/api/process-image/
- Method:
POST
- Description: Uploads and processes an image to extract property details
- Request Format: Multipart form data with an image field
- Response Format:
{
"property_id": 123,
"property_details": {
"Survey Number": "22",
"Surnoc": "*",
"Hissa": "1",
"Village": "Devenahalli",
"Hobli": "Kasaba",
"Taluk": "Devanahalli",
"District": "Bangalore Rural",
"Owner Name": "John Doe",
"Owner Details": "..."
}
}
- Endpoint:
/api/property/{property_id}/
- Method:
GET
- Description: Retrieves property details and associated images
- Response Format:
{
"property_details": {
"id": 123,
"survey_number": "22",
"surnoc": "*",
"hissa": "1",
"village": "Devenahalli",
"hobli": "Kasaba",
"taluk": "Devanahalli",
"district": "Bangalore Rural",
"owner_name": "John Doe",
"owner_details": "...",
"created_at": "2025-04-22T12:00:00Z",
"updated_at": "2025-04-22T12:00:00Z"
},
"images": [
{
"id": 1,
"property_id": 123,
"image_type": "RTC Document",
"year_period": "2019-20",
"description": "...",
"created_at": "2025-04-22T12:05:00Z"
}
]
}
TitleWise is a system that helps digitize and manage property records from Karnataka. Here's how it works:
When you upload a property document image:
- The system uses AI to read the text in the image
- It extracts important details like:
- Survey number, Surnoc, and Hissa
- Village, Hobli, Taluk, and District
- Owner information
- The system can read both English and Kannada text
- It checks and fixes any errors in the extracted data
After getting the property details, the system:
- Automatically visits the Karnataka land records website
- Fills in the property details in the search form
- Finds and matches the correct location options
- Downloads historical records for different years
- Saves screenshots of the documents
- Stores all the information in the database
The website is built with React and provides:
- Easy image upload
- Clear display of property details
- Gallery of historical documents
- Ability to zoom and download documents
- Real-time updates as new records are found
The backend uses Django and PostgreSQL to:
- Handle image uploads and processing
- Store property and document information
- Manage the web scraping process
- Provide secure API endpoints
- User uploads an image
- System extracts property details
- System searches for historical records
- Results are shown to the user
- New records are added as they're found
- Secure storage of sensitive information
- Protection against unauthorized access
- Safe handling of user data
- Regular security updates
- Challenge: Extracting accurate property information from various image formats and qualities
- Solution:
- Implemented a robust image preprocessing pipeline using OpenCV
- Utilized Tesseract OCR with custom training for better accuracy
- Added validation checks to ensure extracted data matches expected patterns
- Challenge: Handling documents with mixed English and Kannada text, including inconsistent formatting and script variations
- Solution:
- Implemented dual-language OCR support for both English and Kannada
- Developed custom text normalization for Kannada script variations
- Created a language detection system to automatically identify text language
- Built a post-processing pipeline to handle mixed-language content
- Added validation rules specific to each language's data patterns
- Challenge: Automating the process of navigating and extracting data from the RTC website
- Solution:
- Developed a headless browser automation system using Playwright
- Implemented smart waiting mechanisms to handle dynamic content loading
- Created a robust error handling system for network issues and timeouts