Skip to content

Predictive Geospatial Intelligence Dashboard for UIDAI

Notifications You must be signed in to change notification settings

Kiran95021/DRISHTI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 PROJECT DRISHTI

Predictive Geospatial Intelligence for Aadhaar Infrastructure

Team UIDAI_6757 - DRAM Analytical Framework Implementation


📖 Overview

PROJECT DRISHTI is an advanced analytics dashboard that implements the DRAM (Demographic, Resource, Agent, Migration) Framework for strategic resource allocation in India's Aadhaar ecosystem.

The system analyzes three critical data streams:

  • 🧒 Enrolment Data (0-5 years cohort)
  • 📊 Demographic Updates (Adult population migrations)
  • 🔐 Biometric Services (Children 5-17 requiring updates)

🚀 Key Features

📊 Strategic Intelligence Metrics

  • Total Infant Enrolments: Tracking 0-5 years cohort
  • Critical Migration Hotspots: Top 10% districts by adult update volume
  • Projected Liability (2030): 5-year demand forecast
  • Current Biometric Deficit: Active children backlog

📈 Visual Analytics

  1. 🔴 Top 10 Migration Hotspots - Districts with highest adult demographic updates
  2. 🔵 Biometric Time-Bomb: 2030 Forecast - Infants who will need services in 5 years
  3. 🟢 Current Biometric Deficit - Children (5-17) requiring immediate attention

🎯 DRAM Action Plan

Intelligent recommendation engine that flags districts for:

  • 🚐 M-Seva Mobile Van Deployment - For high migration stress areas
  • 🏫 Vidya-Setu School Camps - For high future liability districts

🗺️ Geographic Intelligence Heatmap

State-level aggregation showing Migration Stress, Future Liability, and Current Load


🧠 DRAM Framework Logic

The dashboard implements three core analytical metrics:

1️⃣ Migration Stress

Migration_Stress = Σ(demo_age_17_)

Interpretation: High volume of adult demographic updates indicates migration inflow or population movement. Districts with top 10% values get flagged for mobile service units.

2️⃣ Future Liability

Future_Liability = Σ(age_0_5)

Interpretation: Infants (0-5 years) will require biometric enrolment when they turn 5. This predicts demand 5 years into the future.

3️⃣ Current Load

Current_Load = Σ(bio_age_5_17)

Interpretation: Children aged 5-17 requiring biometric updates represent immediate operational demand.


📁 Data Sources

The application ingests three datasets:

Enrolment Data

  • Columns: date, state, district, pincode, age_0_5, age_5_17, age_18_greater
  • Key Metric: age_0_5 → Future Liability

Demographic Data

  • Columns: date, state, district, pincode, demo_age_5_17, demo_age_17_
  • Key Metric: demo_age_17_ → Migration Stress

Biometric Data

  • Columns: date, state, district, pincode, bio_age_5_17, bio_age_17_
  • Key Metric: bio_age_5_17 → Current Load

🛠️ Technical Architecture

Technology Stack

  • Frontend: Streamlit 1.31.0
  • Data Processing: Pandas 2.2.0, NumPy 1.26.3
  • Visualizations: Plotly 5.18.0
  • Python: 3.8+

Data Pipeline

  1. Auto-Discovery: Recursively scans data directories for CSV files
  2. Concatenation: Merges multiple CSV chunks per dataset type
  3. Aggregation: Groups by State and District
  4. Master Merge: Outer join across three datasets
  5. DRAM Calculations: Computes analytical metrics
  6. Recommendation Engine: Applies threshold-based rules

📦 Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)
  • 2GB free disk space (for data files)

Quick Start

# Clone/download the project
cd project_drishti

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Extract data files to data/ directory

# Run the dashboard
streamlit run app.py

Detailed setup guide: See VS_CODE_SETUP_GUIDE.md


🎮 Usage

Running the Dashboard

streamlit run app.py

Access at: http://localhost:8501

Filtering Data

Use the Sidebar Control Panel to:

  • Select specific states
  • Filter analytics by region
  • Focus on high-priority areas

Interpreting Results

High Migration Stress Districts:

  • Indicate population influx
  • Require mobile service units
  • Priority for M-Seva vans

High Future Liability Districts:

  • Large infant populations
  • Will need services in 5 years
  • Plan Vidya-Setu school camps

High Current Load Districts:

  • Immediate backlog of children 5-17
  • Require urgent resource allocation

🎯 DRAM Action Protocols

M-Seva Mobile Van Deployment

Trigger: District in top 10% Migration Stress

Rationale: Mobile units can serve migrant populations who may not have easy access to fixed centers.

Recommended Actions:

  • Deploy mobile van within 30 days
  • Schedule weekly visits
  • Set up temporary registration camps

Vidya-Setu School Camps

Trigger: District in top 20% Future Liability

Rationale: Proactive school-based camps can capture the 0-5 cohort as they enter primary education.

Recommended Actions:

  • Partner with education department
  • Schedule camps during enrollment season
  • Prioritize government schools in rural areas

📊 Sample Insights

From the dashboard, you can derive insights like:

"Maharashtra - Mumbai shows 45,000+ adult demographic updates (Migration Stress), indicating high migration inflow. Recommend immediate M-Seva deployment."

"Uttar Pradesh - Varanasi has 12,000+ infants (Future Liability). Plan Vidya-Setu camps for 2027-2028 school year."

"Bihar - Patna has 18,000+ children 5-17 (Current Load). Urgent biometric update drives needed."


🔧 Customization

Modifying Thresholds

In app.py, adjust the percentile thresholds:

# Current: Top 10% for Migration Stress
migration_top_10_threshold = filtered_df['Migration_Stress'].quantile(0.90)

# Change to Top 5%:
migration_top_10_threshold = filtered_df['Migration_Stress'].quantile(0.95)

Adding New Metrics

Extend the DRAM framework by adding custom calculations:

# Example: Population Density Metric
master['Population_Density'] = (
    master['age_0_5'] + 
    master['age_5_17'] + 
    master['age_18_greater']
) / master['pincode'].nunique()

Changing Color Palettes

Update Plotly color scales in the chart sections:

# From Reds to Oranges
color_continuous_scale='Oranges'

# From Blues to Purples
color_continuous_scale='Purples'

🐛 Troubleshooting

Common Issues

1. Dashboard won't load

  • Check if virtual environment is activated
  • Verify all dependencies are installed: pip list

2. "No data found" error

  • Ensure data files are in correct directories
  • Check CSV file names match expected patterns

3. Charts not rendering

  • Clear Streamlit cache: streamlit cache clear
  • Restart the dashboard

4. Memory errors

  • Large datasets may require chunking
  • Consider data sampling for development

🚀 Deployment

Streamlit Cloud (Free)

  1. Push code to GitHub
  2. Connect at share.streamlit.io
  3. Select repository and app.py
  4. Upload data files or use cloud storage

Docker Deployment

FROM python:3.9-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

EXPOSE 8501

CMD ["streamlit", "run", "app.py", "--server.port=8501"]

📈 Performance Optimization

For large datasets (>10M rows):

  1. Enable caching: Already implemented via @st.cache_data
  2. Data sampling: Add sampling parameter for dev/testing
  3. Lazy loading: Load data only when needed
  4. Database backend: Consider PostgreSQL for production

🤝 Contributing

Team UIDAI_6757 welcomes contributions!

Areas for Enhancement

  • Add district-level drill-down
  • Implement time-series forecasting
  • Add export to PDF/Excel
  • Integrate GIS mapping
  • Real-time data refresh

📄 License

This project is developed for UIDAI analytical purposes.


👥 Team

Team UIDAI_6757

  • Lead Developer: Analytics Team
  • Framework Design: DRAM Task Force
  • Data Engineering: Integration Team

📞 Support

For technical support or questions:

  • Check VS_CODE_SETUP_GUIDE.md for setup issues
  • Review app.py code comments for logic details
  • Open an issue for bugs or feature requests

🎓 Documentation

  • Setup Guide: VS_CODE_SETUP_GUIDE.md
  • Source Code: app.py
  • Dependencies: requirements.txt
  • Project Report: Reference the original PDF for DRAM framework details

Last Updated: January 2026
Version: 2.0
Status: Production Ready ✅


Powered by Advanced Analytics | Built with Streamlit

About

Predictive Geospatial Intelligence Dashboard for UIDAI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages