# NID Platform — সেটআপ গাইড

PHP + MySQL ভিত্তিক NID তথ্য/সার্ভিস প্ল্যাটফর্ম (ইউজার প্যানেল + এডমিন প্যানেল)।

## 🛠 Requirements
- PHP 7.4+ (PHP 8 recommended), cURL + PDO MySQL extension চালু
- MySQL 5.7+ / MariaDB 10.3+

---

## ধাপ ১ — ফাইল আপলোড
1. cPanel → **File Manager** → `public_html/` এ যান
2. zip আপলোড করে **Extract** করুন
3. মূল ডোমেইনে চালাতে চাইলে ভেতরের ফাইলগুলো সরাসরি `public_html/` এ রাখুন,
   সাবফোল্ডারে চালাতে চাইলে যেমন `public_html/nid/` এ রাখুন।

## ধাপ ২ — ডাটাবেজ তৈরি
1. cPanel → **MySQL Databases**
2. **Create New Database** → নাম দিন (যেমন `nid`)
3. **Add New User** → ইউজারনেম + শক্তিশালী পাসওয়ার্ড
4. **Add User To Database** → **ALL PRIVILEGES** চেক করে Add

## ধাপ ৩ — SQL ইমপোর্ট
1. cPanel → **phpMyAdmin** → বাম পাশে আপনার ডাটাবেজ সিলেক্ট করুন
2. উপরে **SQL** ট্যাব → `db/install.sql` ফাইলের সব কনটেন্ট পেস্ট করুন → **Go**
3. সব টেবিল + ডিফল্ট সেটিংস + ডিফল্ট এডমিন তৈরি হয়ে যাবে

## ধাপ ৪ — কনফিগ ফাইল এডিট
`config/db.php` খুলে আপনার তথ্য বসান:
```php
define('DB_HOST', 'localhost');
define('DB_NAME', 'cpaneluser_nid');
define('DB_USER', 'cpaneluser_nid');
define('DB_PASS', 'your_password');
```
`config/config.php` এ সাইটের পাথ ঠিক করুন:
```php
define('SITE_NAME', 'My Website');  // আপনার সাইটের নাম
define('BASE_URL', '/nid');         // মূল ডোমেইনে হলে '' রাখুন
```

## ধাপ ৫ — ফোল্ডার পারমিশন
নিচের ফোল্ডারগুলোতে **755 (বা 775)** write permission দিন:
```
uploads/deliveries/
uploads/services/
uploads/auto_nid/
```

## ধাপ ৬ — লগইন
`https://yourdomain.com/public/login.php`

ডিফল্ট এডমিন:
- **Email:** `admin@example.com`
- **Password:** `admin123`

> ⚠️ প্রথম লগইনের পরই **Profile → পাসওয়ার্ড পরিবর্তন** করুন এবং ইমেইলটিও বদলে নিন।

---

## ধাপ ৭ — এডমিন প্যানেল কনফিগার
`admin/` ফোল্ডারে গিয়ে:

| মেনু | কী করবেন |
|------|-----------|
| **সেটিংস** | সাইটের নাম, কন্টাক্ট, মিনিমাম রিচার্জ, টেলিগ্রাম/হোয়াটসঅ্যাপ লিংক, Telegram Bot Token + Chat ID |
| **API সমূহ** | আপনার NID API যোগ করুন (URL template + key) |
| **সার্ভিস** | সার্ভিস তৈরি → API সার্ভিস বা কাস্টম সার্ভিস, দাম, ছবি, স্ট্যাটাস |
| **রিচার্জ মেথড** | bKash / Nagad / Rocket নাম্বার ও নির্দেশনা |
| **নোটিশ** | ইউজার ড্যাশবোর্ডে নোটিশ / পপআপ |
| **অটো NID** | Auto NID মেক সার্ভিসের দাম ও নোটিশ |

### API URL Template
`{NID}` `{DOB}` `{KEY}` `{ID}` placeholder ব্যবহার করা যায়:
```
https://api.example.com/nid?nid={NID}&dob={DOB}&key={KEY}
```

---

## 📁 ফোল্ডার স্ট্রাকচার
```
config/     — db.php (ডাটাবেজ) ও config.php (সাইট সেটিংস)
includes/   — helper: auth, csrf, api client, telegram, activity
public/     — index / login / register / logout
user/       — ইউজার প্যানেল (dashboard, search, services, orders, recharge)
admin/      — এডমিন প্যানেল
db/         — install.sql
uploads/    — ডেলিভারি ফাইল ও সার্ভিস ছবি
assets/     — CSS
```

## 🔒 সিকিউরিটি টিপস
- ডিফল্ট এডমিন পাসওয়ার্ড অবশ্যই পরিবর্তন করুন
- সাইট HTTPS (SSL) এ চালান — cPanel → SSL/TLS Status
- `config/` ও `includes/` ফোল্ডারে `.htaccess` protection দেওয়া আছে, মুছবেন না
- সার্ভারে `error_log` ফাইল জমলে মাঝে মাঝে ডিলিট করুন

## ❓ সাধারণ সমস্যা
| সমস্যা | সমাধান |
|--------|--------|
| DB Connection failed | `config/db.php` এর নাম/ইউজার/পাসওয়ার্ড চেক করুন (cPanel prefix সহ) |
| CSS/লিংক ভাঙা | `config/config.php` এ `BASE_URL` ঠিক করুন |
| ফাইল আপলোড হচ্ছে না | `uploads/` ফোল্ডারের permission 755/775 করুন |
| API রেসপন্স আসছে না | সার্ভারে cURL চালু আছে কিনা এবং API key ঠিক আছে কিনা দেখুন |
| SQL syntax error | পুরনো MySQL হলে statement গুলো একটা একটা করে চালান |
