Difference between revisions of "Java-Business-Application/C2/Database-and-validation/Bengali"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Created page with "{| border = 1 | Time | Narration |- | 00:01 | Database and validation এর টিউটোরিয়ালে আপনাদের স্বাগত। |- | 00:06 |...")
 
 
Line 297: Line 297:
 
|-
 
|-
 
| 05:22
 
| 05:22
| প্রথমে, errorMsgs এর সূচী ইনিসিয়েলাইজ করেছি।
+
| প্রথমে, এরর ম্যাসেজের সূচী ইনিসিয়েলাইজ করেছি।
  
 
|-
 
|-
 
|  05:27
 
|  05:27
|  আমরা setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল errorMsgs সেট করেছি।
+
|  আমরা setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল এরর ম্যাসেজ সেট করেছি।
  
 
|-
 
|-
 
|05:35
 
|05:35
| এখানে errorMsgs হল অ্যাট্রিবিউটের নাম।
+
| এখানে এরর ম্যাসেজ হল অ্যাট্রিবিউটের নাম।
  
 
|-
 
|-
Line 321: Line 321:
 
|-
 
|-
 
|  05:53
 
|  05:53
| অন্যথায়, errorMsgs সূচীতে এরর Invalid username or password যোগ করি।
+
| অন্যথায়, এরর ম্যাসেজের সূচীতে এরর Invalid username or password যোগ করি।
  
 
|-
 
|-
 
|  06:00
 
|  06:00
errorMsgs সূচীটি খালি না থাকলে আমরা এরর ম্যাসেজ index ডট jsp তে প্রদর্শন করি।
+
এরর ম্যাসেজের সূচীটি খালি না থাকলে আমরা এরর ম্যাসেজ index ডট jsp তে প্রদর্শন করি।
  
 
|-
 
|-
Line 341: Line 341:
 
|-
 
|-
 
|  06:27
 
|  06:27
|  এখন দেখি যে errorMsgs ভ্যারিয়েবলকে index ডট jsp তে কিভাবে আনে।
+
|  এখন দেখি যে এরর ম্যাসেজ ভ্যারিয়েবলকে index ডট jsp তে কিভাবে আনে।
  
 
|-
 
|-
 
|  06:34
 
|  06:34
| প্রথমে attribute errorMsgs এর ভ্যালু পাই।
+
| প্রথমে attribute এরর ম্যাসেজের ভ্যালু পাই।
  
 
|-
 
|-
Line 365: Line 365:
 
|-
 
|-
 
|  07:08
 
|  07:08
errorMsgs এর ভ্যালু null না হলে আমরা এই ম্যাসেজ পাই
+
এরর ম্যাসেজের ভ্যালু null না হলে আমরা এই ম্যাসেজ পাই
  
 
|-
 
|-
Line 373: Line 373:
 
|-
 
|-
 
| 07:18
 
| 07:18
|  তারপর errorMsg এর সূচীর মাধ্যমে পুনরাবৃত্তি করি।
+
|  তারপর এরর ম্যাসেজের সূচীর মাধ্যমে পুনরাবৃত্তি করি।
  
 
|-
 
|-
Line 497: Line 497:
 
|-
 
|-
 
| 09:46
 
| 09:46
|  ব্যক্তিগত attributes সহ User Model এর Instance এর মত ইউসার ভ্যারিয়েবলকে ইনিসিয়েলাইজ করি।
+
|  ব্যক্তিগত attribute সহ User Model এর Instance এর মত ইউসার ভ্যারিয়েবলকে ইনিসিয়েলাইজ করি।
  
 
|-
 
|-
Line 569: Line 569:
 
|-
 
|-
 
| 11:24
 
| 11:24
|  আমরা এখানে এরর ম্যাসেজ পেয়েছি Please correct the following errors!!1 Duplicate entry 'harshita' for key username.
+
|  আমরা এখানে এরর ম্যাসেজ পেয়েছি Please correct the following errors!!! Duplicate entry 'harshita' for key username.
  
 
|-
 
|-
Line 609: Line 609:
 
|-
 
|-
 
|  12:08
 
|  12:08
| এখানেও, errorMsg এর সূচী বানিয়েছি।
+
| এখানেও, এরর ম্যাসেজের সূচী বানিয়েছি।
  
 
|-
 
|-
 
|  12:11
 
|  12:11
|এরপর setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল এরর Msgs সেট করেছি।
+
|এরপর setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল এরর ম্যাসেজ সেট করেছি।
  
 
|-
 
|-
Line 633: Line 633:
 
|-
 
|-
 
| 12:44
 
| 12:44
|বৈধতা ব্যর্থ হলে errorMsgs সূচীতে এরর ম্যাসেজ যুক্ত করি।
+
|বৈধতা ব্যর্থ হলে এরর ম্যাসেজের সূচীতে এরর ম্যাসেজ যুক্ত করি।
  
 
|-
 
|-
Line 645: Line 645:
 
|-
 
|-
 
| 13:01
 
| 13:01
| ErrorMsgs সূচী খালি না হলে আমরা addUser ডট jsp তেই errorMsgs প্রদর্শন করব।
+
| এরর ম্যাসেজের সূচী খালি না হলে আমরা addUser ডট jsp তেই এরর ম্যাসেজ প্রদর্শন করব।
  
 
|-
 
|-
Line 665: Line 665:
 
|-
 
|-
 
|  13:31
 
|  13:31
|  তারপর getAttribute মেথড দ্বারা attribute এর ভ্যালু errorMsg পাই।
+
|  তারপর getAttribute মেথড দ্বারা attribute এর ভ্যালু এরর ম্যাসেজ পাই।
  
 
|-
 
|-

Latest revision as of 12:19, 19 September 2017

Time Narration
00:01 Database and validation এর টিউটোরিয়ালে আপনাদের স্বাগত।
00:06 এই টিউটোরিয়ালে আমরা শিখব:
00:08 ডাটাবেসের সাথে যোগাযোগ করা।
00:10 ফীল্ডস যাচাই করা।
00:12 এখানে আমরা ব্যবহার করছি: উবুন্টু সংস্করণ 12.04
00:15 Netbeans IDE 7.3
00:19 JDK 1.7
00:21 ফায়ারফক্স ওয়েব ব্রাউজার 21.0
00:24 আপনি পছন্দের যে কোনো ওয়েব ব্রাউজার ব্যবহার করতে পারেন।
00:28 টিউটোরিয়ালটি অনুসরণ করতে জানতে হবে-
00:31 Java Servlets এবং JSPs এর মূল বিষয়।
00:35 Netbeans IDE থেকে MySQL ডাটাবেসে জোড়া।
00:39 ডাটাবেস এবং টেবিল বানানো।
00:42 না হলে, প্রাসঙ্গিক টিউটোরিয়ালের জন্য আমাদের ওয়েবসাইটে যান।
00:47 এখন, Netbeans IDE তে যান।
00:52 আমি MySQL সার্ভার চালু করেছি।
00:55 আমি লাইব্রেরী নামে একটি ডাটাবেস বানিয়েছি।
01:00 আমি Users নামে একটি টেবিল বানিয়েছি।
01:04 আমি ইতিমধ্যে এই টেবিলে কিছু ভ্যালু লিখেছি।
01:08 এখন সেগুলি দেখাবো।
01:10 Users এ ডান ক্লিক করুন এবং View Data তে ক্লিক করুন।
01:15 নীচে Output বোতামে ক্লিক করুন।
01:19 আমরা এখানে 15 জন ইউসার দেখি।
01:23 আমরা FirstName, Surname, Age, Gender, email, Username এবং Password দেখি।
01:31 JDBC ড্রাইভার লোড করি যা Java Database Connectivity Driver.
01:39 তাই Projects ট্যাবে ক্লিক করুন।
01:42 Libraries এ ডান ক্লিক করুন এবং Add Library তে ক্লিক করুন।
01:46 তারপর MySQL JDBC Driver এ ক্লিক করুন।
01:50 Add Library তে ক্লিক করুন।
01:53 এটি JDBC Driver লোড করবে।
01:56 এখন প্রজেক্ট রান করি যেমনকি আগে করেছি।
02:00 ইউসারনেমে লিখুন arya এবং পাসওয়ার্ড এ লিখুন arya123.
02:06 Sign In এ ক্লিক করুন।
02:08 আমরা Success Greeting পৃষ্ঠা দেখতে পারি।
02:12 লগ আউট করতে here এ ক্লিক করুন।
02:15 এখন, IDE তে ফিরে আসি।
02:17 আমরা Greeting servlet ডট java তে যাবো।
02:21 doPost মেথডে আসুন।
02:23 প্রথমে, getParameter () মেথড ব্যবহার করে request থেকে ইউসারনেম এবং পাসওয়ার্ড পাই।
02:31 এরপর JDBC সংযোগের কোড দেখবো।
02:35 আমরা Connection object, PreparedStatement object এবং Resultset object কে null এ ইনিসিয়েলাইজ করেছি।
02:44 তারপর ড্রাইভারটি প্রোগ্রামে রেজিস্টার করি।
02:48 তারপর আমরা ডাটাবেসের সাথে সংযোগ করি।
02:52 তারপর, prepareStatement মেথড Connection object এ নিষ্পাদিত করি।
02:58 আমরা Users টেবিল থেকে ইউসার বর্ণন পেতে সন্ধান করি।
03:03 ফর্মে লেখা ইউসারনেম এবং পাসওয়ার্ড একই কিনা তা যাচাই করি।
03:09 এখানে, প্রশ্ন চিহ্ন ডাটাবেসে প্রতিটি ফীল্ড নির্দেশ করে।
03:15 প্রশ্ন চিহ্নের জায়গায় ভ্যালু দিতে, আমরা setString () মেথড নিষ্পাদিত করি।
03:22 আমরা PreparedStatement object ব্যবহার করে করি।
03:26 তারপর Prepared statement অবজেক্ট executeQuery মেথড নিষ্পাদিত করি।
03:33 আমরা ফলাফল ResultSet এ সংরক্ষণ করি।
03:37 সফল লগইনের জন্য, successGreeting page প্রদর্শন করি।
03:43 তাই আমরা RequestDispatcher ইন্টারফেস ব্যবহার করি।
03:48 আমরা request এ requestDispatcher অবজেক্ট পেতে getRequestDispatcher () মেথড ব্যবহার করি।
03:56 তারপর RequestDispatcher অবজেক্ট forward method ব্যবহার করি।
04:02 এইভাবে, আমরা successGreeting ডট jsp এর দিকে এগোই।
04:07 এখন স্লাইডে ফিরে আসি।
04:10 আমরা RequestDispatcher ইন্টারফেস সম্পর্কে শিখি।
04:15 এই ইন্টারফেস request কে অন্য রিসোর্সে অনুরোধ পাঠাতে সুবিধা প্রদান করে।
04:22 এই রিসোর্স html, servlet বা jsp হতে পারে।
04:26 এখন, IDE তে ফিরে আসি।
04:29 এখন successGreeting ডট jsp তে আসি।
04:33 এখানে, You have successfully logged in ম্যাসেজ দেখাচ্ছে।
04:38 এখন, ব্রাউজারে ফিরে আসি।
04:41 ইউসারনেম এবং পাসওয়ার্ড লিখি যা ডাটাবেসে অন্তর্ভুক্ত করিনি।
04:47 তাই ইউসারনেমে abc এবং পাসওয়ার্ড হিসেবে abc123 লিখি।
04:56 তারপর Sign In এ ক্লিক করুন।
04:59 আমরা দেখি যে একই পৃষ্ঠায় এরর পেয়েছি।
05:03 Please correct the following error!!! Invalid username or password
05:09 এখন, এর কোড দেখি।
05:12 IDE তে ফিরে আসি।
05:14 GreetingServlet ডট java তে যাই।
05:17 বৈধতা ব্যর্থ হলে আমাদের এরর ম্যাসেজ পাওয়া উচিত।
05:22 প্রথমে, এরর ম্যাসেজের সূচী ইনিসিয়েলাইজ করেছি।
05:27 আমরা setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল এরর ম্যাসেজ সেট করেছি।
05:35 এখানে এরর ম্যাসেজ হল অ্যাট্রিবিউটের নাম।
05:39 আমরা একটি স্ট্রিং ভ্যারিয়েবল id কে null এ ইনিসিয়েলাইজ করেছি।
05:44 তারপর, ইউসার ডেটাবেসে থাকলে তা যাচাই করি।
05:48 হ্যাঁ হলে আমরা ভ্যালু id ভ্যারিয়েবলে সংরক্ষণ করি।
05:53 অন্যথায়, এরর ম্যাসেজের সূচীতে এরর Invalid username or password যোগ করি।
06:00 এরর ম্যাসেজের সূচীটি খালি না থাকলে আমরা এরর ম্যাসেজ index ডট jsp তে প্রদর্শন করি।
06:09 তাই index ডট jsp তে যেতে হবে।
06:13 আমরা আগেই দেখেছি যে RequestDispatcher দ্বারা অন্য পৃষ্ঠায় কিভাবে যায়।
06:20 exception এর অবস্থা সঞ্চলন করতে কোডটি try catch block এ অন্তর্ভুক্ত করেছি।
06:27 এখন দেখি যে এরর ম্যাসেজ ভ্যারিয়েবলকে index ডট jsp তে কিভাবে আনে।
06:34 প্রথমে attribute এরর ম্যাসেজের ভ্যালু পাই।
06:38 এটি request এ getAttribute মেথড দ্বারা করা হয়েছে।
06:44 আমরা Java code কে ওপেনিং ট্যাগ যা হল লেস দেন সাইন পার্সেন্টেজ সাইন এবং ক্লোসিং ট্যাগ পার্সেন্টেজ সাইন এবং গ্রেটার দেন সাইন এ অন্তর্ভুক্ত করেছি।
06:57 কোডের এই ব্লককে scriptlet বলে।
07:02 এতে java code রয়েছে যা JSP কার্যকর করার সময় বারবার নিষ্পাদিত হয়।
07:08 এরর ম্যাসেজের ভ্যালু null না হলে আমরা এই ম্যাসেজ পাই
07:15 Please correct the following errors
07:18 তারপর এরর ম্যাসেজের সূচীর মাধ্যমে পুনরাবৃত্তি করি।
07:23 তারপর সূচী হিসাবে এরর ম্যাসেজ দেখি।
07:27 এইভাবে এরর ম্যাসেজ index ডট jsp তে প্রদর্শন করি।
07:32 এখন, ইউসারকে ডাটাবেসে যোগ করা দেখি।
07:37 ডাটাবেসে ইউসার যোগ করার পূর্বে, ইউসার টেবিলের জন্য একটি model বানাতে হবে।
07:44 এখন, দেখি model কি।
07:48 একটি model: সফটওয়্যার অ্যাপ্লিকেশনে অন্তর্নিহিত ডেটার লজিক্যাল স্ট্রাকচার প্রতিনিধিত্ব করে।
07:55 attributes এর জন্য java class এবং তাদের জন্য setters এবং getters.
08:00 এইভাবে, আমরা model কে ব্যক্তিগত বৈশিষ্ট্যের পরিবর্তে সম্পূর্ণরূপে বিবেচনা করি।
08:07 এখন, Netbeans IDE তে ফিরে আসুন।
08:11 আমি ইতিমধ্যে User ডট java মেথড বানিয়েছি।
08:16 লক্ষ্য করুন আমরা java ক্লাস package org dot spokentutorial dot model এ বানিয়েছি।
08:24 আমাদের নিম্নোক্ত বৈশিষ্ট্যগুলি রয়েছে- firstName, surname, age, gender, email, username, password.
08:33 আমরা তাদের খালি ভ্যালুতে ইনিসিয়েলাইজ করেছি।
08:37 তারপর আমাদের কাছে parameterized constructor রয়েছে।
08:41 default constructor ও রয়েছে।
08:44 আমরা getFirstName method নির্ধারণ করি।
08:47 আমরা setFirstName method ও নির্ধারণ করি।
08:51 একইভাবে, set এবং get মেথড প্রতিটি বৈশিষ্ট্যে সংজ্ঞায়িত করি।
08:57 ব্রাউজারে ফিরে আসি।
08:59 এখন, রেজিস্টার করতে here link এ ক্লিক করুন।
09:03 Registration এ সকল ফীল্ড টাইপ করুন।
09:07 তারপর Add User এ ক্লিক করুন।
09:10 আমরা Add User Success Page পাই।
09:14 আমরা Your request to add harshita was successful ম্যাসেজ পাই।
09:20 এখানে আমাদের দেওয়া harshita, username ছিল।
09:24 এখন দেখি যে এটি কিভাবে হয়েছে।
09:28 IDE তে ফিরে যান।
09:30 AddUserServlet ডট java তে যান।
09:35 স্টেপগুলি একই, যেমন আমরা GreetingServlet ডট java তে অনুসরণ করেছি।
09:40 প্রথমে, getParameter method দ্বারা form parameters পাই।
09:46 ব্যক্তিগত attribute সহ User Model এর Instance এর মত ইউসার ভ্যারিয়েবলকে ইনিসিয়েলাইজ করি।
09:53 setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল ইউসার সেট করেছি।
10:01 ফর্ম ভরার সময় কোনো এরর না থাকলে ইউসার টেবিলে ভ্যালু সন্নিবেশ করতে কোয়েরি নিষ্পাদিত করি।
10:10 তারপর success user পেজের দিকে এগোই।
10:15 এখন successUser ডট jsp তে আসি।
10:19 প্রথমে User ডট java ইম্পোর্ট করেছি।
10:24 কোডের এই লাইনকে directive in JSP বলে।
10:28 JSP directive ওপেনিং ট্যাগ লেস দে সাইন পার্সেন্টেজ সাইন এবং এট দা রেট সাইন দ্বারা শুরু হয় এবং ক্লোসিং ট্যাগ পার্সেন্টেজ সাইন এবং গ্রেটার দেন সাইন দ্বারা সমাপ্ত হয়।
10:42 এই পৃষ্ঠাটি হল পেজ directive.
10:45 পেজ directive সকল ইম্পোর্ট করা প্যাকেজের সূচী রাখে।
10:50 আমরা অ্যাট্রিবিউট ইউজারের ভ্যালু পাই এবং এটি User object হিসেবে সংরক্ষণ করি।
10:57 তারপর, এখানে success message রয়েছে।
11:00 এখানে, আমরা ইউজারনেম সনাক্ত করেছি।
11:04 আমরা request object এ getUsername() method ব্যবহার করেছি।
11:09 scriptlet tags ব্যবহার করে এটি করেছি।
11:12 এখন ব্রাউজারে ফিরে আসি।
11:15 ইতিমধ্যে ডাটাবেসে স্থিত ইউসারকে আমরা যোগ করার চেষ্টা করব।
11:20 সুতরাং, আমি আবার harshita যোগ করার চেষ্টা করব।
11:24 আমরা এখানে এরর ম্যাসেজ পেয়েছি Please correct the following errors!!! Duplicate entry 'harshita' for key username.
11:33 এখন, আবার ইউসার রেজিস্টার করি।
11:37 এখানে, আমি একটি ফর্ম ভরেছি।
11:40 আমি Age ফীল্ডে একটি ভুল বানিয়েছি।
11:44 আমি একটি বৈধ নম্বরের জায়গায় ab লিখেছি।
11:48 এখন Add User এ ক্লিক করুন।
11:51 আমরা এরর ম্যাসেজ পাই - The age must be a positive integer.
11:57 এখন দেখি যে এটি কিভাবে হয়।
12:00 IDE তে ফিরে আসি।
12:03 AddUserServlet ডট java খুলুন।
12:08 এখানেও, এরর ম্যাসেজের সূচী বানিয়েছি।
12:11 এরপর setAttribute মেথড দ্বারা request scope এ ভ্যারিয়েবল এরর ম্যাসেজ সেট করেছি।
12:18 তারপর, ইন্টিজার টাইপের ageUser ঘোষিত করেছি এবং এটি -1 দ্বারা ইনিসিয়েলাইজ করেছি।
12:26 try catch block এর ভিতর, parseInt মেথড ব্যবহার করেছি।
12:31 এটি ইন্টিজার দেবে, যখনকি নম্বরের স্ট্রিং প্রদর্শন ইনপুট হিসাবে হয়।
12:37 এখানে আমরা যাচাই করি যে age ফীল্ড বৈধ পজিটিভ ইন্টিজার রাখে।
12:44 বৈধতা ব্যর্থ হলে এরর ম্যাসেজের সূচীতে এরর ম্যাসেজ যুক্ত করি।
12:51 age পজিটিভ ইন্টিজার হওয়া আবশ্যক।
12:54 একইভাবে, আমাদের যাচাই করতে হবে যে অন্যান্য সকল ফীল্ড বৈধ ডেটা রাখে।
13:01 এরর ম্যাসেজের সূচী খালি না হলে আমরা addUser ডট jsp তেই এরর ম্যাসেজ প্রদর্শন করব।
13:09 আমরা এও দেখেছি যে RequestDispatcher দ্বারা এটি কিভাবে হয়।
13:15 এখন, addUser ডট jsp তে আসি।
13:19 এখানে, প্রথমে user ডট java ইম্পোর্ট করেছি।
13:24 scriptlet tags এ, আমরা user টাইপের অবজেক্ট বানিয়েছি।
13:31 তারপর getAttribute মেথড দ্বারা attribute এর ভ্যালু এরর ম্যাসেজ পাই।
13:38 আমরা যাচাই করি যে এই ভ্যালু null এর সমান কিনা।
13:43 এটি null এর সমান না হলে আমরা এরর ম্যাসেজ যেমন আমরা index ডট jsp এর জন্য করেছি তা দেখাই।
13:51 না হলে, User model দ্বারা এট্রিবিউট request থেকে user এর ভ্যালু পাবো।
13:59 তারপর ফর্ম রয়েছে।
14:01 ফর্ম ট্যাগ AddUserServlet এর মত action এবং POST এর মত method রাখে।
14:07 প্রথম ফীল্ড text এর মত ইনপুট টাইপের First Name, FirstName এর মত Name এবং user ডট getFirstName এর মত value.
14:18 এখানে, firstName এর ভ্যালু খালি স্ট্রিং দ্বারা ইনিসিয়েলাইজ করছি।
14:24 একইভাবে, আপনাকে অন্যান্য ফীল্ডের জন্য করতে হবে।
14:28 আমাদের কাছে submit বোতাম এবং Add User এর মত ভ্যালুসও রয়েছে।
14:33 এইভাবে আমরা addUser.jsp তে ফীল্ডগুলি যাচাই করি।
14:38 Add User page এ বিভিন্ন এরর পরীক্ষা করতে পারেন।
14:42 এখন, দেখি যে ইউসার harshita ডাটাবেসে যুক্ত হয়েছে কিনা।
14:49 ইউসার টেবিলে ফিরে আসি। আমরা দেখি যে harshita ডাটাবেসে জুড়ে গেছে।
14:56 এই টিউটোরিয়ালে আমরা শিখেছি:
14:58 ডাটাবেসের সাথে যোগাযোগ করা এবং
15:00 ফীল্ডস যাচাই করা।
15:02 স্পোকেন টিউটোরিয়াল প্রকল্প সম্পর্কে আরও জানতে, নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি দেখুন।
15:07 এটি প্রকল্পকে সারসংক্ষেপে বোঝায়।
15:11 ভাল ব্যান্ডউইডথ না থাকলে ভিডিওটি ডাউনলোড করে দেখুন।
15:15 স্পোকেন টিউটোরিয়াল প্রকল্প দল
15:17 কর্মশালার আয়োজন করে।
15:20 অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়।
15:23 বিস্তারিত তথ্যের জন্য contact@spoken-tutorial.org তে ইমেল করুন।
15:29 স্পোকেন টিউটোরিয়াল প্রকল্প Talk to a Teacher প্রকল্পের অংশবিশেষ।
15:32 এটি ভারত সরকারের ICT, MHRD এর জাতীয় শিক্ষা মিশন দ্বারা সমর্থিত।
15:38 এই বিষয়ে বিস্তারিত তথ্য http://spoken-tutorial.org/NMEICT- Intro তে প্রাপ্তিসাধ্য।
15:48 Library Management System একটি সফ্টওয়্যার MNC, তাদের Corporate Social Responsibility প্রোগ্রামের মাধ্যমে করেছে।
15:57 তারা টিউটোরিয়ালের বিষয়বস্তু ও যাচাই করেছে।
16:02 আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি।

Contributors and Content Editors

Kaushik Datta, Satarupadutta