# পরীক্ষা ব্যবস্থাপনা সিস্টেম

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

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

### ১. পরীক্ষার রুটিন
- **প্রিন্টেবল রুটিন তৈরি:** সুন্দর ফরম্যাটে পরীক্ষার রুটিন
- **বিষয়ভিত্তিক সময়সূচী:** প্রতিটি বিষয়ের জন্য আলাদা তারিখ ও সময়
- **রুম ও পরীক্ষক বিন্যাস:** প্রতিটি বিষয়ের জন্য রুম নম্বর ও পরীক্ষক নির্ধারণ
- **সম্পাদনা সুবিধা:** রুটিন তৈরির পর সম্পাদনা করা যায়

### ২. হাজিরা পত্র
- **প্রিন্টেবল হাজিরা শীট:** পরীক্ষার জন্য শিক্ষার্থীদের হাজিরা পত্র
- **ডিজিটাল হাজিরা:** অনলাইনে হাজিরা নেওয়া ও সেভ করা
- **হাজিরার স্ট্যাটাস:** উপস্থিত, অনুপস্থিত, দেরিতে - এই তিনটি অপশন
- **মন্তব্য সুবিধা:** প্রয়োজনে মন্তব্য যোগ করা যায়

### ৩. সীট কার্ড
- **ব্যক্তিগত সীট কার্ড:** প্রতিটি শিক্ষার্থীর জন্য আলাদা সীট কার্ড
- **সম্পূর্ণ পরীক্ষার তথ্য:** সব বিষয়ের তারিখ, সময় ও সীট নম্বর
- **প্রিন্ট-অপ্টিমাইজড:** A4 পেপারে ২টি কার্ড প্রিন্ট হয়
- **অটো সীট বিন্যাস:** স্বয়ংক্রিয়ভাবে সীট নম্বর বিন্যাস

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

### নতুন টেবিলসমূহ:

#### ১. `exam_attendance` - পরীক্ষার হাজিরা
```sql
- id (Primary Key)
- exam_id (Foreign Key to exams)
- subject_id (Foreign Key to subjects)
- student_id (Foreign Key to students)
- attendance_status (present/absent/late)
- exam_date
- remarks
- created_at, updated_at
```

#### ২. `seat_arrangements` - সীট বিন্যাস
```sql
- id (Primary Key)
- exam_id (Foreign Key to exams)
- subject_id (Foreign Key to subjects)
- student_id (Foreign Key to students)
- room_number
- seat_number
- row_number, column_number
- exam_date
- created_at, updated_at
```

### আপডেট করা টেবিলসমূহ:

#### ১. `exams` টেবিল
- `session` - সেশন ফিল্ড যোগ
- `group_name` - গ্রুপ ফিল্ড যোগ

#### ২. `exam_subjects` টেবিল
- `room_number` - রুম নম্বর ফিল্ড যোগ
- `invigilator` - পরীক্ষক ফিল্ড যোগ

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

### ১. সিস্টেম সেটআপ
```
1. ডাটাবেস আপডেট করুন: http://localhost/bidda/database_update_exam_system.php
2. Navigation menu থেকে "পরীক্ষা" সেকশনে যান
```

### ২. পরীক্ষার রুটিন তৈরি
```
1. exams/routine.php পেজে যান
2. "নতুন পরীক্ষার রুটিন তৈরি" ফর্ম পূরণ করুন:
   - পরীক্ষার নাম (যেমন: অর্ধবার্ষিক পরীক্ষা ২০২৪)
   - ক্লাস ও সেশন নির্বাচন
   - গ্রুপ নির্বাচন (যদি প্রযোজ্য হয়)
   - শুরু ও শেষের তারিখ
3. বিষয়সমূহ যোগ করুন:
   - প্রতিটি বিষয়ের জন্য তারিখ ও সময়
   - রুম নম্বর ও পরীক্ষক নির্ধারণ
4. "রুটিন তৈরি করুন" বাটনে ক্লিক করুন
```

### ৩. হাজিরা পত্র ব্যবহার
```
1. exams/attendance.php পেজে যান
2. পরীক্ষা ও বিষয় নির্বাচন করুন
3. হাজিরা পত্র লোড হবে
4. প্রিন্ট করুন অথবা অনলাইনে হাজিরা নিন
5. হাজিরা সেভ করুন
```

### ৪. সীট কার্ড তৈরি
```
1. exams/seat_card.php পেজে যান
2. পরীক্ষা নির্বাচন করুন
3. প্রথমবার "সীট বিন্যাস তৈরি করুন":
   - প্রতিটি বিষয়ের জন্য রুম কনফিগারেশন
   - প্রতি সারিতে সীট সংখ্যা নির্ধারণ
4. সীট কার্ড প্রিন্ট করুন
```

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

```
exams/
├── routine.php              # পরীক্ষার রুটিন মূল পেজ
├── routine_print.php        # প্রিন্ট-অপ্টিমাইজড রুটিন
├── attendance.php           # হাজিরা পত্র মূল পেজ
├── seat_card.php           # সীট কার্ড মূল পেজ
├── get_exam_subjects.php   # AJAX helper - বিষয় লোড
├── get_subject_details.php # AJAX helper - বিষয়ের বিস্তারিত
└── update_subject.php      # AJAX helper - বিষয় আপডেট
```

## প্রিন্ট ফিচার

### রুটিন প্রিন্ট:
- **সুন্দর হেডার:** প্রতিষ্ঠানের নাম ও লোগো
- **টেবিল ফরম্যাট:** পরিষ্কার বর্ডার সহ টেবিল
- **নির্দেশনা:** পরীক্ষার নিয়মকানুন
- **স্বাক্ষর স্থান:** কর্তৃপক্ষের স্বাক্ষরের জায়গা

### হাজিরা পত্র প্রিন্ট:
- **শিক্ষার্থী তালিকা:** রোল নম্বর অনুযায়ী সাজানো
- **হাজিরা কলাম:** উপস্থিত/অনুপস্থিত/দেরিতে
- **স্বাক্ষর কলাম:** শিক্ষার্থীদের স্বাক্ষরের জায়গা
- **পরীক্ষকের স্বাক্ষর:** নিচে স্বাক্ষর বক্স

### সীট কার্ড প্রিন্ট:
- **A4 পেপারে ২টি কার্ড:** কাগজ সাশ্রয়ী
- **সম্পূর্ণ তথ্য:** শিক্ষার্থীর সব তথ্য ও পরীক্ষার সময়সূচী
- **সীট তথ্য:** প্রতিটি বিষয়ের জন্য আলাদা সীট নম্বর
- **নির্দেশনা:** পরীক্ষার নিয়মকানুন

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

### ১. রেসপন্সিভ ডিজাইন
- মোবাইল ও ট্যাবলেটে সুন্দরভাবে কাজ করে
- প্রিন্ট ভার্সন আলাদাভাবে অপ্টিমাইজড

### ২. বাংলা সাপোর্ট
- সম্পূর্ণ বাংলা ইন্টারফেস
- বাংলা তারিখ ও দিনের নাম

### ৩. ফ্লেক্সিবল সিস্টেম
- যেকোনো সংখ্যক বিষয় যোগ করা যায়
- গ্রুপভিত্তিক পরীক্ষা সাপোর্ট
- সেশনভিত্তিক ব্যবস্থাপনা

### ৪. ডাটা ইন্টিগ্রিটি
- Foreign Key constraints
- Unique constraints
- Data validation

## ট্রাবলশুটিং

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

#### ১. পরীক্ষার রুটিন তৈরি হচ্ছে না
- নিশ্চিত করুন ডাটাবেস আপডেট হয়েছে
- ক্লাস ও সেশন সঠিকভাবে নির্বাচিত আছে কিনা চেক করুন

#### ২. হাজিরা পত্রে শিক্ষার্থী দেখাচ্ছে না
- নিশ্চিত করুন শিক্ষার্থীরা সঠিক ক্লাস ও সেশনে আছে
- গ্রুপ সেটিং চেক করুন

#### ৩. সীট কার্ড প্রিন্ট সমস্যা
- ব্রাউজারের প্রিন্ট সেটিংস চেক করুন
- A4 পেপার সাইজ নির্বাচন করুন

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

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

## সাপোর্ট

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