Transform aggregated Aadhaar data into actionable insights for policymakers and administrators.
Aadhaar Pulse is a comprehensive analytics dashboard designed for UIDAI decision-makers. It provides real-time insights into Aadhaar enrolment and update patterns across India, powered by official Data.gov.in datasets.
| Feature | Description |
|---|---|
| ๐ Real-Time Analytics | Dynamically computed KPIs, trends, and growth metrics |
| ๐ Anomaly Detection | Z-score based detection of unusual patterns |
| ๐ Forecasting | 6-month demand prediction with confidence intervals |
| ๐ก AI Insights | Rule-based pattern analysis with actionable recommendations |
| ๐บ๏ธ Geographic Analysis | State-wise heatmaps and regional breakdowns |
| ๐ก๏ธ Privacy-Safe | Only aggregated data - no individual-level information |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend (Next.js) โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Dashboardโ โ Forecast โ โ Insights โ โ Geographyโ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST API
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Backend (FastAPI) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ API Layer (Routers) โโ
โ โ /overview /enrolments /updates /anomalies /forecasts โโ
โ โ /insights /recommendations /geography โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Services Layer โโ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โ โ Data Repo โ โ Analytics โ โ Anomaly Detection โ โโ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โ โ Forecasting โ โ Insights โ โ Recommendations โ โโ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Data Sources โโ
โ โ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โ โ Data.gov.in APIs โ โ Simulated Data (UIDAI Patterns) โ โโ
โ โ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Aadhaar Pulse/
โโโ apps/
โ โโโ api/ # FastAPI Backend
โ โ โโโ main.py # Application entry point
โ โ โโโ config.py # Configuration management
โ โ โโโ routers/ # API endpoints
โ โ โ โโโ overview.py # Dashboard KPIs
โ โ โ โโโ enrolments.py # Enrolment analytics
โ โ โ โโโ updates.py # Update patterns
โ โ โ โโโ anomalies.py # Anomaly detection
โ โ โ โโโ forecasts.py # Time-series forecasting
โ โ โ โโโ insights.py # AI-generated insights
โ โ โ โโโ recommendations.py # Policy recommendations
โ โ โ โโโ geography.py # Geographic analysis
โ โ โโโ services/ # Business logic
โ โ โโโ data_repository.py # Data management
โ โ โโโ analytics_service.py # Computed metrics
โ โ โโโ anomaly_engine.py # Anomaly detection
โ โ โโโ forecast_engine.py # Forecasting
โ โ โโโ insight_engine.py # Insight generation
โ โ โโโ recommendation_engine.py
โ โ
โ โโโ web/ # Next.js Frontend
โ โโโ src/
โ โ โโโ app/ # App Router pages
โ โ โ โโโ page.tsx # Dashboard
โ โ โ โโโ enrolments/
โ โ โ โโโ updates/
โ โ โ โโโ anomalies/
โ โ โ โโโ forecasts/
โ โ โ โโโ insights/
โ โ โ โโโ recommendations/
โ โ โ โโโ geography/
โ โ โโโ components/ # UI components
โ โ โโโ lib/ # API client
โ โโโ package.json
โ
โโโ README.md
git clone https://github.com/balaraj74/Aadhaar-Pulse.git
cd Aadhaar-Pulse# Navigate to API directory
cd apps/api
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
source venv/bin/activate # Linux/macOS
# OR
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env and add your API keys:
# - GEMINI_API_KEY (for AI insights)
# - DATA_GOV_API_KEY (for data.gov.in)
# Start the API server
python -m uvicorn main:app --reload --port 8000The API will be running at http://localhost:8000
Open a new terminal and run:
# Navigate to web directory
cd apps/web
# Install dependencies
npm install
# Start development server
npm run devThe frontend will be running at http://localhost:3000
| Service | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| API Documentation | http://localhost:8000/docs |
| API Health Check | http://localhost:8000/api/v1/overview |
Create a .env file in apps/api/ with the following:
# Environment
ENVIRONMENT=development
DEBUG=true
# Data.gov.in API (optional - uses simulated data if not set)
DATA_GOV_API_KEY=your_data_gov_api_key
# Gemini AI (required for AI insights)
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-2.5-flash
# Cache Settings
CACHE_TTL_SECONDS=300
# Analytics Settings
FORECAST_HORIZON_MONTHS=6
ANOMALY_ZSCORE_THRESHOLD=2.5- Press
Ctrl+Cin each terminal to stop the servers
For convenience, you can use two terminals:
Terminal 1 (API):
cd apps/api && source venv/bin/activate && python -m uvicorn main:app --reload --port 8000Terminal 2 (Web):
cd apps/web && npm run devAll endpoints return computed values - never static data.
| Endpoint | Description |
|---|---|
GET /api/v1/overview |
Dashboard summary with KPIs and alerts |
GET /api/v1/enrolments |
Enrolment analytics and demographics |
GET /api/v1/enrolments/timeseries |
Monthly enrolment time series |
GET /api/v1/updates |
Update type distribution and patterns |
GET /api/v1/updates/fatigue |
Update fatigue index by region |
GET /api/v1/anomalies |
Detected anomalies with explanations |
GET /api/v1/forecasts |
6-month demand forecasts |
GET /api/v1/forecasts/capacity |
Capacity planning analysis |
GET /api/v1/insights |
AI-generated pattern insights |
GET /api/v1/recommendations |
Policy recommendations |
GET /api/v1/geography |
State-wise heatmap and regions |
GET /api/v1/geography/state/{code} |
State detail data |
- Total Enrolments: Cumulative Aadhaar registrations (1.45B+)
- Monthly Growth: YoY and MoM trends
- Update Patterns: Type distribution (Address, Mobile, Biometric, etc.)
- Seasonal Indices: Monthly variation patterns
- Regional Distribution: State and region aggregates
Uses statistical methods:
- Z-Score Analysis: Detects values > 2.5 standard deviations
- Rule-Based Detection: Specific pattern rules
- Enrolment surges (>20% above expected)
- Update fatigue (high repeat rates)
- Demographic imbalances
- Geographic disparities
- Model: Prophet-style decomposition (trend + seasonal)
- Horizon: 6 months ahead
- Metrics: Rยฒ, MAPE, MAE, RMSE
- Output: Point forecast + 95% confidence interval
| Category | Example |
|---|---|
| Migration | "23% increase in address updates in Mumbai metropolitan region" |
| Demographics | "Youth enrolment surge in Bihar aligns with academic calendar" |
| Operations | "Update fatigue index at 0.72 in metro areas" |
| Seasonal | "October-March sees 15% higher enrolment activity" |
| Dataset | Source | Use |
|---|---|---|
| Aadhaar Monthly Enrolment | Data.gov.in | Enrolment trends |
| Aadhaar by Gender & Age | Data.gov.in | Demographics |
| Demographic Updates | Data.gov.in | Update patterns |
| Biometric Updates | Data.gov.in | Biometric analysis |
- Privacy: All data is aggregated at state/district level
- No PII: No individual-level data is processed or stored
- Compliance: Adheres to UIDAI data guidelines
- Fallback: When API unavailable, uses simulated data based on official patterns
โ
No Individual Data - Only aggregated statistics
โ
No PII - No personal identifiable information
โ
Government Sources Only - Official Data.gov.in datasets
โ
UIDAI Guidelines - Compliant with data handling policies
โ
Audit Trail - All data sources documented
# Backend
cd apps/api
pytest
# Frontend
cd apps/web
npm test- New API Endpoint: Add router in
apps/api/routers/ - New Service: Add logic in
apps/api/services/ - Frontend Page: Add page in
apps/web/src/app/ - API Client: Update
apps/web/src/lib/api.ts
# In services/data_repository.py
async def fetch_new_dataset(self):
data = await data_gov_client.fetch_resource(
resource_id="your-resource-id",
limit=1000
)
# Process and store# In services/insight_engine.py
def _detect_new_pattern(self) -> List[Dict]:
# Analyze data
if condition_met:
return [{
"title": "New Pattern Detected",
"category": "Custom",
"priority": "high",
# ...
}]| Criteria | Implementation |
|---|---|
| Functionality | Full-featured dashboard with 8 pages |
| Real Data | Data.gov.in integration + realistic simulation |
| Analytics | Computed metrics, never hard-coded |
| ML/AI | Anomaly detection, forecasting, insights |
| Privacy | Aggregated data only, no PII |
| Scalability | Service-oriented architecture |
| UX | Premium dark theme, responsive design |
| Documentation | Comprehensive README and API docs |
MIT License - See LICENSE for details.
- UIDAI - For Aadhaar infrastructure
- Data.gov.in - For open government data
- Open Source - FastAPI, Next.js, Recharts, Tailwind CSS
Built for UIDAI Hackathon 2026 ๐ฎ๐ณ