# UDISE+ Student Data Manager - User Guide

## 📋 परिचय

यह tool आपके लिए **UDISE+ portal से student data डाउनलोड करने और Excel में manage करने** के लिए बनाया गया है।

---

## 🚀 शुरू करें (Step-by-Step)

### Step 1: अपना Python environment सेट करें

Terminal खोलें और निर्देश दें:

```bash
cd ~
mkdir UDISE_Data
cd UDISE_Data
python3 -m venv venv
source venv/bin/activate
```

(यह एक virtual environment बनाएगा जिसमें सभी packages इंस्टॉल होंगे)

### Step 2: सभी packages इंस्टॉल करें

```bash
pip install selenium pandas openpyxl webdriver-manager
```

### Step 3: Chrome browser इंस्टॉल होना चाहिए

अगर Chrome नहीं है, तो इंस्टॉल करें:
```bash
# Ubuntu में
sudo apt update
sudo apt install google-chrome-stable
```

---

## ⚙️ Tool चलाएँ

### Main Downloader चलाएँ:

```bash
python3 ~/udise_student_manager.py
```

जब चालेगा, तो आपसे पूछेगा:

1. **Username** - आपका UDISE+ username (आमतौर पर school code/registered email)
2. **Password** - आपका password
3. **School Code** - 24110206411 (आपका code)

---

## 📂 Output क्या मिलेगा?

Tool नीचे डायरेक्टरी में files बनाएगा: `~/UDISE_Data/`

**फाइलें:**

```
UDISE_Data/
├── student_master_template.xlsx       ← Master template (multiple sheets)
├── student_data_table_1_20260508.xlsx ← Download से मिला data
├── UDISE_Student_Master.xlsx          ← Final organized master file
└── ReportCards/                       ← Individual student report cards
    ├── report_2024001.html
    ├── report_2024002.html
    └── ...
```

---

## 📊 Master Excel File क्या है?

`UDISE_Student_Master.xlsx` में **4 sheets** होंगे:

### Sheet 1: `Basic_Info`
| Column | Meaning |
|--------|---------|
| UDISE_Code | School का UDISE code |
| Admission_No | Unique admission number |
| Name | Student का नाम |
| Father_Name | पिता का नाम |
| Mother_Name | माता का नाम |
| DOB | Date of Birth |
| Gender | लिंग |
| Caste | जाति |
| Category | Category (SC/ST/OBC/General) |
| Aadhaar_No | Aadhaar card number |
| Mobile_No | Mobile number |
| Email | Email ID |
| Address | पता |

### Sheet 2: `Academic`
| Column | Meaning |
|--------|---------|
| Admission_No | Admission number |
| Class | कक्षा (10, 11, 12) |
| Section | सेक्शन (A, B, C) |
| Roll_No | रोल नंबर |
| Medium | माध्यम (Hindi, English, Gujarati) |
| Year | सत्र (2024-25) |
| Previous_School | पिछला स्कूल |
| Transfer_Certificate_No | TC number |

### Sheet 3: `Attendance`
| Column | Meaning |
|--------|---------|
| Admission_No | Admission number |
| Month | माह (Jan, Feb...) |
| Working_Days | कार्य दिवस |
| Days_Present | उपस्थित |
| Days_Absent | अनुपस्थित |
| Attendance_Pct | Attendance % |

### Sheet 4: `Fees`
| Column | Meaning |
|--------|---------|
| Admission_No | Admission number |
| Fee_Type | Fees का type (Tuition, Exam, etc.) |
| Amount | Amount |
| Paid | चुकाया हुआ |
| Due | बाकी |
| Last_Payment_Date | अंतिम भुगतान की तारीख |

---

## 🔧 Data को Update/Upgrade कैसे करें?

### Option 1: Direct Excel में Edit करें

1. `UDISE_Student_Master.xlsx` खोलें
2. किसी भी sheet में data add/edit करें
3. Save करें (Ctrl+S)

### Option 2: Python Script से Add करें

```python
import pandas as pd

# Master file खोलें
df = pd.read_excel('~/UDISE_Data/UDISE_Student_Master.xlsx', sheet_name='Basic_Info')

# नया student ऐड करें
new_student = {
    'Admission_No': '2024050',
    'Name': 'Rahul Kumar',
    'Father_Name': 'Ramesh Kumar',
    'Mother_Name': 'Sita Devi',
    'Class': '10',
    'Gender': 'Male',
    'DOB': '2008-05-15',
    'Caste': 'OBC',
    'Mobile_No': '9876543210',
    'Address': '123 Main St, City'
}

df = pd.concat([df, pd.DataFrame([new_student])], ignore_index=True)

# Save करें
df.to_excel('~/UDISE_Data/UDISE_Student_Master.xlsx', sheet_name='Basic_Info', index=False)
```

---

## 📈 Useful Reports कैसे बनाएँ?

### Report 1: Class-wise Student Count

```python
df = pd.read_excel('~/UDISE_Data/UDISE_Student_Master.xlsx', sheet_name='Basic_Info')
summary = df.groupby('Class').size().reset_index(name='Total_Students')
print(summary)
```

### Report 2: Gender-wise Distribution

```python
gender_summary = df['Gender'].value_counts()
print(gender_summary)
```

### Report 3: New Admissions (वर्ष के अनुसार)

```python
df['Year'] = pd.to_datetime(df['DOB']).dt.year
recent = df[df['Year'] >= 2010]  # 2010 के बाद जन्म
print(f"Students born after 2010: {len(recent)}")
```

---

## 🔄 Regular Updates कैसे करें?

### Monthly Update Process:

1. **UDISE+ portal से नया data डाउनलोड करें** (मैन्युअल/automated)
2. **Naya data process करें**:
   ```bash
   python3 ~/udise_data_processor.py
   ```
3. **Master file में merge करें** (आपको मिलेंगे older records + नए records)
4. **Backup रखें**:
   ```bash
   cp ~/UDISE_Data/UDISE_Student_Master.xlsx ~/UDISE_Data/Backup_$(date +%Y%m%d).xlsx
   ```

---

## 🐛 Troubleshooting

### Problem 1: "Chrome driver not found"

**Solution:** 
```bash
pip uninstall webdriver-manager
pip install webdriver-manager
```

### Problem 2: Login fail होता है

**Check:**
- Username/Password सही है?
- Internet connection चल रहा है?
- UDISE+ portal ऊपर है? (https://udiseplus.gov.in/)

### Problem 3: Data नहीं आ रहा

**Reason:** UDISE+ portal structure बदल सकता है।

**Fix:** मुझे बताइए portal में क्या dikh रहा है, मैं script update कर दूंगा।

---

## 📞 मदद के लिए

अगर कुछ problem आए या आपको और features चाहिए:

1. **Automated monthly download scheduler** चाहिए?
2. **Report cards PDF format में** चाहिए?
3. **SMS alerts** जब new admission आए?
4. **Graphs/Charts** बनाना चाहिए?

**बस बताइए, मैं आपके लिए customize कर दूंगा!** 🎯

---

## 🎯 अगला कदम

**क्या आप चाहते हैं:**

1. अब tool को **run करें** और test करें?
2. या फिर **automatic scheduler** बनाएँ जो हर महीने डाउनलोड करे?
3. या **additional features** add करें?

बताइए! मैं तैयार हूँ। 🚀
