Spaces:
Running
Running
| title: Telugu Dialect Map | |
| emoji: πΊοΈ | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: docker | |
| pinned: false | |
| license: mit | |
| # Telugu Dialect Map | |
| **Interactive web-based visualization of Telugu dialect words across Telangana and Andhra Pradesh districts.** | |
| ## π― Features | |
| - **48 Districts**: 33 Telangana + 15 Andhra Pradesh districts | |
| - **Dynamic Data Loading**: Automatically loads data from JSON sources | |
| - **Interactive Map**: Click districts to explore local vocabulary, meanings, and sources | |
| - **Rich Content**: 3000+ verified dialect terms from crowdsourced and JSONL data | |
| - **Zero Build Required**: Pure static site with automatic data loading | |
| - **Google Sheets Integration**: Automated synchronization with Google Sheets | |
| ## π Deployment Options | |
| ### Option 1: Hugging Face Spaces (Recommended for Public Access) | |
| Deploy to Hugging Face Spaces with continuous automation: | |
| 1. **Create a Space** on [Hugging Face](https://huggingface.co/spaces) | |
| 2. **Configure secrets** for `config.json` and `credentials.json` | |
| 3. **Push your code** to the Space repository | |
| 4. **Access your app** at `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE` | |
| π **[Complete HF Spaces Setup Guide β](SECRETS_SETUP.md)** | |
| ### Option 2: Local Development | |
| ## π How to Run | |
| ### **Complete Setup (First Time)** | |
| ```bash | |
| # 1. Navigate to project directory | |
| cd /home/kashikuldeep/Desktop/swechaworkspace/dilacet-map/indian-dialects-maps | |
| # 2. Activate virtual environment | |
| source venv/bin/activate | |
| # 3. Start automation (syncs Google Sheets every 5 minutes) | |
| python scripts/automation_runner.py & | |
| # 4. Start web server (in new terminal or background) | |
| python -m http.server 8080 & | |
| # 5. Open in browser | |
| # Navigate to: http://localhost:8080/ | |
| ``` | |
| ### **Quick Run (After First Time)** | |
| ```bash | |
| # Activate virtual environment | |
| source venv/bin/activate | |
| # Start both services | |
| python scripts/automation_runner.py & | |
| python -m http.server 8080 & | |
| # Open: http://localhost:8080/ | |
| ``` | |
| ### **Stop Services** | |
| ```bash | |
| # Press Ctrl+C in the terminals, or: | |
| pkill -f automation_runner | |
| pkill -f "http.server 8080" | |
| ``` | |
| **Important:** Use `http://localhost:8080/` not `file://` URLs (browser security blocks JSON loading from file://) | |
| --- | |
| ## π― What You'll See | |
| 1. **Automation Console**: Shows sync status every 5 minutes | |
| 2. **Web Interface**: Interactive map with 48 districts (33 Telangana + 15 Andhra Pradesh) | |
| 3. **Auto-Updates**: Edit Google Sheets β Changes appear within 5 minutes! | |
| ## π€ Automated Data Updates | |
| The project includes **automated synchronization** from Google Sheets: | |
| - **File Watcher**: Automatically converts CSV β JSON when files change | |
| - **Google Sheets Sync**: Downloads sheet data every 5 minutes | |
| - **Zero Manual Work**: Update your Google Sheet and changes appear automatically! | |
| ### Configuration | |
| Your automation is already configured for: | |
| - **Processed Dialects Sheet**: 901 rows | |
| - **Digiwords Sheet**: 178 rows | |
| - **Sync Interval**: Every 5 minutes | |
| To modify settings, edit `config.json`: | |
| ```json | |
| { | |
| "google_sheets": { | |
| "enabled": true, | |
| "sync_interval_minutes": 5, | |
| "spreadsheets": [...] | |
| } | |
| } | |
| ``` | |
| π **[Full Automation Setup Guide β](AUTOMATION_SETUP.md)** | |
| ## π Project Structure | |
| ``` | |
| indian-dialects-maps/ | |
| βββ index.html # Main visualization (open this via http server) | |
| βββ data/ | |
| β βββ processed/ | |
| β βββ processed_dialects.json # JSONL-processed dialect data | |
| β βββ digiwords_grouped.json # Crowdsourced dialect data | |
| βββ sheets_output/ # CSV files (auto-converted to JSON) | |
| β βββ processed_dialects.csv | |
| β βββ digiwords_grouped.csv | |
| βββ scripts/ # Automation scripts (NEW!) | |
| β βββ csv_to_json.py # CSV β JSON converter | |
| β βββ sheets_sync.py # Google Sheets downloader | |
| β βββ file_watcher.py # Auto-conversion on file changes | |
| β βββ automation_runner.py # Main automation orchestrator | |
| βββ config.json # Automation configuration | |
| βββ requirements.txt # Python dependencies | |
| βββ AUTOMATION_SETUP.md # Detailed setup guide | |
| βββ README.md | |
| ``` | |
| ## π How It Works | |
| ### Manual Mode (Original) | |
| 1. **Load `index.html`**: Contains hardcoded data for 33 Telangana districts | |
| 2. **Fetch `processed_dialects.json`**: Enhances/adds districts from JSONL data | |
| 3. **Fetch `digiwords_grouped.json`**: | |
| - Merges additional words into Telangana districts | |
| - Automatically adds 15 Andhra Pradesh districts with coordinates | |
| 4. **Render**: All districts appear on the map with merged data | |
| ### Automated Mode (NEW!) | |
| 1. **Google Sheets**: Update your dialect data in Google Sheets | |
| 2. **Auto-Sync**: Script downloads sheets as CSV (every 5 min) | |
| 3. **File Watcher**: Detects CSV changes | |
| 4. **Auto-Convert**: CSV files β JSON format | |
| 5. **Browser**: Refresh to see updates on the map! | |
| **Flow:** | |
| ``` | |
| Google Sheet β CSV (sheets_output/) β JSON (data/processed/) β Browser (index.html) | |
| β β β | |
| Manual Edit File Watcher Auto-Refresh | |
| ``` | |
| **Smart Merging:** | |
| - Existing districts β Appends new words | |
| - New AP districts β Creates markers automatically | |
| - Graceful fallback if JSON files are missing | |
| ## π Current Data Coverage | |
| | State | Districts | Words | Sources | | |
| |-------|-----------|-------|---------| | |
| | **Telangana** | 33 | 2000+ | Hardcoded + JSONL + Digiwords | | |
| | **Andhra Pradesh** | 15 | 1000+ | Digiwords (crowdsourced) | | |
| | **Total** | **48** | **3000+** | Multiple sources | | |
| ### Andhra Pradesh Districts: | |
| Anantapur, Annamayya, Chittoor, East Godavari, Eluru, Kadapa, Kurnool, Nandyal, Ongole, Tirupati, Srikakulam, Visakhapatnam, Vizianagaram, West Godavari, Rayalaseema | |
| ## π¨ Adding New Data | |
| ### Update Existing JSON Files | |
| **Edit `data/processed/digiwords_grouped.json`:** | |
| ```json | |
| { | |
| "Telangana": { | |
| "YourDistrict": [ | |
| {"t": "ΰ°€ΰ±ΰ°²ΰ±ΰ°ΰ±ΰ°ͺΰ°¦ΰ°", "m": "meaning", "s": "Crowd"} | |
| ] | |
| }, | |
| "Andhra Pradesh": { | |
| "YourDistrict": [ | |
| {"t": "ΰ°€ΰ±ΰ°²ΰ±ΰ°ΰ±ΰ°ͺΰ°¦ΰ°", "m": "meaning", "s": "Crowd"} | |
| ] | |
| } | |
| } | |
| ``` | |
| **Edit `data/processed/processed_dialects.json`:** | |
| ```json | |
| [ | |
| { | |
| "name": "YourDistrict", | |
| "region": "Region Name", | |
| "words": [ | |
| {"t": "ΰ°€ΰ±ΰ°²ΰ±ΰ°ΰ±ΰ°ͺΰ°¦ΰ°", "m": "meaning", "s": "Source"} | |
| ] | |
| } | |
| ] | |
| ``` | |
| Then refresh the browser! | |
| ### Add New AP District Coordinates | |
| If adding a new Andhra Pradesh district, update `index.html`: | |
| ```javascript | |
| const AP_COORDINATES = { | |
| "YourDistrict": { | |
| lat: 00.0000, | |
| lng: 00.0000, | |
| region: "Region Name", | |
| history: "Historical context..." | |
| }, | |
| // ... | |
| }; | |
| ``` | |
| ## π οΈ Technical Stack | |
| - **Frontend**: HTML5, Vanilla JavaScript, Leaflet.js | |
| - **Data Format**: JSON (pre-processed) | |
| - **Map Library**: Leaflet with CartoDB basemap | |
| - **Server**: Any HTTP server (Python, Node, etc.) | |
| - **No Build Step**: Pure static site | |
| ## π Troubleshooting | |
| ### Data Not Loading? | |
| β **Check #1:** Are you using `http://localhost:8000/`? | |
| - β Don't use `file://` URLs | |
| - β Use an HTTP server | |
| β **Check #2:** Is the server running? | |
| ```bash | |
| python3 -m http.server 8000 | |
| ``` | |
| β **Check #3:** Hard refresh the page | |
| - Press `Ctrl + Shift + R` (Windows/Linux) | |
| - Press `Cmd + Shift + R` (Mac) | |
| β **Check #4:** Check browser console (F12) | |
| - Look for fetch errors | |
| - Should see loading messages | |
| ### Server Won't Start? | |
| ```bash | |
| # Kill process on port 8000 | |
| lsof -ti:8000 | xargs kill -9 | |
| # Start fresh | |
| python3 -m http.server 8000 | |
| ``` | |
| ### Still Not Working? | |
| 1. Open browser console (F12) | |
| 2. Look for error messages | |
| 3. Check that JSON files exist in `data/processed/` | |
| 4. Verify you're on the correct URL (`localhost:8000` not `127.0.0.1` if redirects are weird) | |
| ## π Technical Notes | |
| - Telugu text uses web fonts (Poppins, Ramabhadra) | |
| - Console shows detailed merge logs for debugging | |
| - Map centered at (16.5Β°N, 79.8Β°E) to show both states | |
| - Zoom level: 6.5 (fits both Telangana and AP) | |
| - Data loads asynchronously with `async/await` | |
| ## π€ Contributing | |
| To add more dialect data: | |
| 1. Edit the JSON files in `data/processed/` | |
| 2. Refresh `http://localhost:8000/` | |
| 3. That's it! | |
| --- | |
| **Made with β€οΈ for preserving Telugu linguistic heritage across Telangana and Andhra Pradesh** | |