# Telegram Meeseva Automation System ఈ project Telegram bot ద్వారా application data collect చేసి, images upload తీసుకుని, MySQL లో save చేసి, auto PDF generate చేసి, tracking మరియు admin management అందించే complete PHP 8 + MySQL solution. ## Step 1: Project Folder Structure Manual కింద ఉన్న structure ప్రకారం project folders సిద్ధం చేసుకోవాలి: ```text project/ ├── admin/ ├── api/ ├── bot/ ├── config/ ├── generated-pdf/ ├── includes/ ├── templates/ ├── tmp/ ├── uploads/ ├── .htaccess ├── composer.json ├── database.sql ├── index.php └── README.md ``` ప్రతి folder ఉపయోగం: - `admin/` : Admin login, dashboard, applications management - `api/` : Tracking JSON API - `bot/` : Telegram webhook మరియు webhook setup - `config/` : DB, bot token, base URL settings - `includes/` : Common helper functions - `templates/` : Admin header/footer templates - `uploads/` : Telegram ద్వారా వచ్చిన images - `generated-pdf/` : Auto generated application PDFs - `tmp/` : mPDF temporary files ## Step 2: Local Setup 1. `config/config.php` open చేయండి. 2. `DB_HOST`, `DB_NAME`, `DB_USER`, `DB_PASS` values ను మీ server ప్రకారం మార్చండి. 3. `TELEGRAM_BOT_TOKEN` లో BotFather ఇచ్చిన bot token పెట్టండి. 4. `BASE_URL` లో మీ HTTPS domain URL పెట్టండి. 5. `uploads/`, `generated-pdf/`, `tmp/` folders writable గా ఉండాలి. ## Step 3: Database Setup 1. MySQL database create చేయండి. 2. `database.sql` ను import చేయండి. 3. మొదటి admin login వివరాలు: - Username: `admin` - Password: `Admin@123` 4. మొదటి login తరువాత password ను database లో update చేయడం మంచిది. ## Step 4: Composer Install ఈ project PDF generation కోసం `mPDF` ఉపయోగిస్తుంది. ```bash composer install ``` Shared hosting లో composer run చేయలేకపోతే: 1. Local machine లో `composer install` run చేయండి. 2. `vendor/` folder ను project తో పాటు upload చేయండి. ## Step 5: Telegram Webhook Setup 1. Telegram లో `@BotFather` ద్వారా bot create చేయండి. 2. `config/config.php` లో bot token update చేయండి. 3. Browser లో ఈ URL open చేయండి: ```text https://yourdomain.com/bot/set_webhook.php ``` 4. అక్కడ JSON response లో `"ok": true` వస్తే webhook set అయినట్టే. 5. Telegram webhook actual endpoint: ```text https://yourdomain.com/bot/webhook.php ``` ## Bot Flow User: ```text /start ``` Bot: ```text Welcome to Meeseva Services 1. Caste Certificate 2. Income Certificate 3. Residence Certificate 4. Track Application ``` తర్వాత bot ఈ fields ఒక్కొక్కటిగా అడుగుతుంది: - Applicant Name - Father Name - Mother Name - Gender - Date of Birth - Aadhaar Number - Mobile Number - Address - District - Mandal - Village - Religion - Caste - Applicant Photo - Aadhaar Image - Address Proof - Signature Submission తరువాత: - MySQL లో save అవుతుంది - Application ID generate అవుతుంది - Images `uploads/` లో save అవుతాయి - PDF `generated-pdf/` లో తయారవుతుంది - Telegram లో PDF download link వస్తుంది ## Tracking System User message: ```text Track APP-2026-0001 ``` Bot reply: ```text Status: Processing Application ID: APP-2026-0001 ``` Tracking API: ```text https://yourdomain.com/api/track.php?id=APP-2026-0001 ``` ## Admin Panel Features - Admin login system - Dashboard statistics - Search application - View full application - Change application status - Download PDF - View uploaded images - Delete application Admin login URL: ```text https://yourdomain.com/admin/login.php ``` ## Security Features - PDO prepared statements ద్వారా SQL injection protection - Image mime type validation - File size validation - Allowed image types మాత్రమే accept చేయడం - CSRF protection for admin actions - Session based admin authentication - Upload folder లో PHP execution block - Sensitive folders direct access block ## cPanel Hosting Guide ### 1. cPanel hosting లో upload ఎలా చేయాలి 1. Project files ను ZIP చేయండి. 2. cPanel లో `File Manager` open చేయండి. 3. `public_html` లేదా మీ domain document root లో ZIP upload చేయండి. 4. Extract చేయండి. 5. `uploads`, `generated-pdf`, `tmp` folders కి `755` లేదా అవసరమైతే `775` permissions ఇవ్వండి. ### 2. MySQL database create ఎలా చేయాలి 1. cPanel లో `MySQL Databases` లేదా `MySQL Database Wizard` open చేయండి. 2. కొత్త database create చేయండి. 3. కొత్త database user create చేయండి. 4. ఆ user కి database పై `ALL PRIVILEGES` ఇవ్వండి. 5. `phpMyAdmin` open చేసి `database.sql` import చేయండి. 6. ఈ credentials ను `config/config.php` లో update చేయండి. ### 3. Bot webhook ఎలా set చేయాలి 1. ముందుగా SSL active అయి ఉండాలి. 2. `config/config.php` లో `BASE_URL` ను `https://` తో update చేయండి. 3. Browser లో `https://yourdomain.com/bot/set_webhook.php` open చేయండి. 4. response లో success వచ్చిన తరువాత Telegram లో `/start` test చేయండి. ### 4. SSL setup ఎలా చేయాలి 1. cPanel లో `SSL/TLS Status` లేదా `Let's Encrypt` section open చేయండి. 2. మీ domain కి free SSL issue చేయండి. 3. HTTPS force redirect ఉంటే enable చేయండి. 4. `BASE_URL` లో HTTP బదులు HTTPS వాడండి. 5. Telegram webhook HTTPS మాత్రమే accept చేస్తుంది కాబట్టి SSL తప్పనిసరి. ### 5. Cron jobs అవసరమైతే ఎలా పెట్టాలి ఈ project కి normal flow లో cron అవసరం లేదు. అయితే future లో backup లేదా cleanup automation కోసం cron పెట్టాలనుకుంటే: 1. cPanel లో `Cron Jobs` open చేయండి. 2. సరైన time interval ఎంచుకోండి. 3. PHP script path తో command పెట్టండి. ఉదాహరణ: ```bash /usr/local/bin/php /home/username/public_html/project/scripts/cleanup.php ``` ## Testing Steps ### Telegram testing 1. Bot కి `/start` పంపండి. 2. `Caste Certificate` select చేయండి. 3. ఒక్కొక్క text field కి value పంపండి. 4. చివర్లో నాలుగు image files upload చేయండి. 5. Success message మరియు PDF link వచ్చాయా చూడండి. ### Image upload testing 1. JPG మరియు PNG files తో test చేయండి. 2. 2MB కంటే పెద్ద file పంపి validation పని చేస్తోందా చూడండి. 3. `.pdf` లేదా ఇతర format పంపి reject అవుతుందా పరీక్షించండి. ### PDF testing 1. Submission పూర్తయిన తరువాత `generated-pdf/APP-YYYY-XXXX.pdf` create అయ్యిందా చూడండి. 2. PDF లో applicant details మరియు uploaded images సరిగా render అయ్యాయా చూడండి. 3. Download link browser లో open అవుతుందా పరీక్షించండి. ### Admin panel testing 1. `admin/login.php` ద్వారా login చేయండి. 2. Dashboard statistics కనిపిస్తున్నాయా చూడండి. 3. Applications search పని చేస్తోందా చూడండి. 4. ఒక్క application open చేసి status update చేయండి. 5. PDF download పని చేస్తోందా చూడండి. 6. Delete action చేసినప్పుడు DB, files రెండూ తొలగించబడుతున్నాయా పరీక్షించండి. ## Important Deployment Notes - `config/config.php` లో real production values పెట్టకుండా project deploy చేయవద్దు. - `vendor/` folder లేకపోతే PDF generation పని చేయదు. - Telegram bot live చేయడానికి HTTPS domain తప్పనిసరి. - Admin default password ను production లో వెంటనే మార్చడం మంచిది.