# ক্লাস ব্যবস্থাপনা সিস্টেম

## বৈশিষ্ট্যসমূহ

এই সিস্টেমে সম্পূর্ণ ক্লাস ব্যবস্থাপনা রয়েছে যার মধ্যে রয়েছে:

### ১. ক্লাস যোগ করা (`classes/add.php`)
- **নতুন ক্লাস তৈরি:** সহজ ফর্মের মাধ্যমে নতুন ক্লাস যোগ
- **ডুপ্লিকেট চেক:** একই নাম ও সেকশনের ক্লাস দুইবার যোগ করা যায় না
- **ধারণক্ষমতা সেট:** প্রতিটি ক্লাসের জন্য সর্বোচ্চ শিক্ষার্থী সংখ্যা
- **স্ট্যাটাস নিয়ন্ত্রণ:** সক্রিয় বা নিষ্ক্রিয় স্ট্যাটাস
- **রিয়েল-টাইম পরিসংখ্যান:** বর্তমান ক্লাসের তথ্য দেখা

### ২. ক্লাস তালিকা (`classes/list.php`)
- **কার্ড ভিউ:** সুন্দর কার্ড ডিজাইনে ক্লাস তালিকা
- **ধারণক্ষমতা বার:** ভিজুয়াল প্রগ্রেস বার
- **শিক্ষার্থী সংখ্যা:** প্রতিটি ক্লাসে কতজন শিক্ষার্থী আছে
- **ক্লাস শিক্ষক:** কোন শিক্ষক কোন ক্লাসের দায়িত্বে
- **দ্রুত অ্যাকশন:** শিক্ষার্থী তালিকা ও ব্যবস্থাপনা লিংক

### ৩. ক্লাস ব্যবস্থাপনা (`classes/manage.php`)
- **বিষয় যোগ:** ক্লাসে বিষয় নির্ধারণ
- **শিক্ষক নিয়োগ:** ক্লাস শিক্ষক নির্ধারণ
- **সেটিংস আপডেট:** ক্লাসের তথ্য পরিবর্তন

## ফাইল স্ট্রাকচার

```
classes/
├── add.php          # নতুন ক্লাস যোগ করার পেজ
├── list.php         # ক্লাস তালিকা দেখার পেজ
└── manage.php       # ক্লাস ব্যবস্থাপনা পেজ
```

## ডাটাবেস স্ট্রাকচার

### `classes` টেবিল:
```sql
- id (Primary Key)
- name (ক্লাসের নাম)
- section (সেকশন)
- class_teacher_id (ক্লাস শিক্ষকের ID)
- capacity (ধারণক্ষমতা)
- description (বিবরণ)
- status (active/inactive)
- created_at, updated_at
```

## ব্যবহারের নির্দেশনা

### ১. নতুন ক্লাস যোগ করা

**পদক্ষেপ:**
1. Navigation → ক্লাস → নতুন ক্লাস যোগ
2. অথবা `http://localhost/bidda/classes/add.php`
3. ফর্ম পূরণ করুন:
   - **ক্লাসের নাম:** যেমন ষষ্ঠ, সপ্তম, অষ্টম
   - **সেকশন:** যেমন ক, খ, গ, A, B
   - **ধারণক্ষমতা:** সর্বোচ্চ শিক্ষার্থী সংখ্যা
   - **স্ট্যাটাস:** সক্রিয় বা নিষ্ক্রিয়
   - **বিবরণ:** অতিরিক্ত তথ্য (ঐচ্ছিক)
4. "ক্লাস যোগ করুন" বাটনে ক্লিক

**উদাহরণ:**
- নাম: ষষ্ঠ, সেকশন: ক, ধারণক্ষমতা: 50
- নাম: সপ্তম, সেকশন: খ, ধারণক্ষমতা: 45

### ২. ক্লাস তালিকা দেখা

**পদক্ষেপ:**
1. Navigation → ক্লাস → ক্লাস তালিকা
2. অথবা `http://localhost/bidda/classes/list.php`

**তথ্য যা দেখাবে:**
- ক্লাসের নাম ও সেকশন
- ক্লাস শিক্ষকের নাম
- শিক্ষার্থী সংখ্যা ও ধারণক্ষমতা
- ভিজুয়াল প্রগ্রেস বার
- বিষয় সংখ্যা
- স্ট্যাটাস (সক্রিয় বা নিষ্ক্রিয়)

### ৩. ক্লাস ব্যবস্থাপনা

**Admin এর জন্য:**
- স্ট্যাটাস পরিবর্তন (সক্রিয় ↔ নিষ্ক্রিয়)
- ক্লাস সেটিংস আপডেট
- বিষয় যোগ/বাদ
- ক্লাস শিক্ষক নিয়োগ

## বিশেষ বৈশিষ্ট্য

### ১. ভিজুয়াল ইন্ডিকেটর
- **সবুজ বার:** ধারণক্ষমতার ৭৫% এর কম
- **হলুদ বার:** ধারণক্ষমতার ৭৫-৯০%
- **লাল বার:** ধারণক্ষমতার ৯০% এর বেশি

### ২. স্মার্ট ভ্যালিডেশন
- ডুপ্লিকেট ক্লাস চেক
- ধারণক্ষমতা সীমা (১-২০০)
- আবশ্যক ফিল্ড চেক

### ৩. রিয়েল-টাইম পরিসংখ্যান
- মোট ক্লাস সংখ্যা
- সক্রিয় ক্লাস সংখ্যা
- মোট ধারণক্ষমতা
- মোট শিক্ষার্থী সংখ্যা
- ধারণক্ষমতার ব্যবহার শতকরা

### ৪. রেসপন্সিভ ডিজাইন
- মোবাইল ও ট্যাবলেট ফ্রেন্ডলি
- Bootstrap 5 ব্যবহার
- আধুনিক UI/UX

## পারমিশন সিস্টেম

### Admin:
- ✅ নতুন ক্লাস যোগ
- ✅ ক্লাস তালিকা দেখা
- ✅ ক্লাস ব্যবস্থাপনা
- ✅ স্ট্যাটাস পরিবর্তন
- ✅ ক্লাস সম্পাদনা

### Teacher:
- ✅ ক্লাস তালিকা দেখা
- ❌ নতুন ক্লাস যোগ
- ❌ ক্লাস সম্পাদনা

### Student:
- ✅ নিজের ক্লাসের তথ্য দেখা
- ❌ অন্য ক্লাসের তথ্য

## ক্লাস নামের উদাহরণ

### প্রাথমিক স্তর:
- প্রথম, দ্বিতীয়, তৃতীয়, চতুর্থ, পঞ্চম
- Class 1, Class 2, Class 3, Class 4, Class 5

### মাধ্যমিক স্তর:
- ষষ্ঠ, সপ্তম, অষ্টম, নবম, দশম
- Class 6, Class 7, Class 8, Class 9, Class 10

### উচ্চ মাধ্যমিক:
- একাদশ, দ্বাদশ
- HSC 1st Year, HSC 2nd Year

## সেকশনের উদাহরণ

### বাংলা:
- ক, খ, গ, ঘ, ঙ

### ইংরেজি:
- A, B, C, D, E

### সংখ্যা:
- ১, ২, ৩, ৪, ৫

## ত্রুটি সমাধান

### সাধারণ সমস্যা:

#### ১. "এই নাম ও সেকশনের ক্লাস ইতিমধ্যে বিদ্যমান"
**সমাধান:** ভিন্ন নাম বা সেকশন ব্যবহার করুন

#### ২. ক্লাস তালিকা লোড হচ্ছে না
**সমাধান:** 
- ডাটাবেস কানেকশন চেক করুন
- `classes` টেবিল আছে কিনা দেখুন

#### ৩. শিক্ষার্থী সংখ্যা ভুল দেখাচ্ছে
**সমাধান:**
- `students` টেবিলে `class_id` সঠিক আছে কিনা চেক করুন
- `status = 'active'` শিক্ষার্থীরা গণনা হয়

## ভবিষ্যৎ উন্নতি

### পরবর্তী ভার্সনে যোগ হতে পারে:
- **ক্লাস রুটিন:** সাপ্তাহিক ক্লাস রুটিন
- **ক্লাস ফি:** ক্লাসভিত্তিক ফি স্ট্রাকচার
- **ক্লাস রিপোর্ট:** বিস্তারিত রিপোর্ট জেনারেশন
- **ক্লাস ক্যালেন্ডার:** ক্লাসের ইভেন্ট ক্যালেন্ডার
- **অটো প্রমোশন:** বছর শেষে অটো ক্লাস প্রমোশন

## সাপোর্ট

কোনো সমস্যা হলে:
1. প্রথমে এই README ফাইল পড়ুন
2. ডাটাবেস কানেকশন চেক করুন
3. ব্রাউজার কনসোল এ error আছে কিনা দেখুন
4. প্রয়োজনে টেকনিক্যাল সাপোর্টে যোগাযোগ করুন

## নিরাপত্তা

- সব ইনপুট ভ্যালিডেশন করা হয়
- SQL Injection প্রতিরোধ
- XSS প্রতিরোধ
- Session-based authentication
- Role-based access control