প্রকল্প সম্পর্কে
OwnChat হলো একটি স্ব-হোস্টেড ডেস্কটপ চ্যাট অ্যাপ্লিকেশন, যা তাদের জন্য যারা নিজেদের যোগাযোগের উপর নিয়ন্ত্রণ চান। এটি একটি ক্লায়েন্ট-সার্ভার-ক্লায়েন্ট আর্কিটেকচার অনুসরণ করে, যেখানে একাধিক ডেস্কটপ ক্লায়েন্ট একটি কেন্দ্রীয় সার্ভারের সাথে সংযুক্ত হয় যা রিয়েল টাইমে বার্তা রিলে করে। অ্যাপ্লিকেশনটি ইউজার ইন্টারফেসের জন্য Java Swing, নেটওয়ার্কিংয়ের জন্য Java Sockets এবং স্থায়ী স্টোরেজের জন্য Oracle Database দিয়ে তৈরি।
মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
- **অ্যাকাউন্ট তৈরি এবং লগইন**: ব্যবহারকারীর ক্রেডেনশিয়াল `USER_DETAILS` টেবিলে সংরক্ষিত হয় এবং লগইনের সময় যাচাই করা হয়।
- **পরিচিতি ব্যবস্থাপনা**: ব্যবহারকারীরা পরিচিতি যোগ করতে, তাদের পরিচিতি তালিকা দেখতে এবং চ্যাট শুরু করার আগে কোনো পরিচিতি অনলাইনে আছে কিনা তা পরীক্ষা করতে পারেন।
- **রিয়েল-টাইম মেসেজিং**: প্রতিটি লগইন করা ক্লায়েন্ট সার্ভারের সাথে একটি সকেট নিবন্ধন করে; প্রাপক যদি চ্যাট উইন্ডো খোলা রাখেন তাহলে বার্তাগুলি সরাসরি লাইভে রিলে করা হয়। সমস্ত বার্তা `CHAT_HISTORY`-তে লগ করা হয়।
- **চ্যাট ইতিহাস**: কোনো পরিচিতির সাথে চ্যাট পুনরায় খুললে পূর্ববর্তী বার্তাগুলি পুনরায় প্রদর্শিত হয়, প্রেরক অনুযায়ী রঙ-কোডেড, তারিখ/সময় হেডার সহ।
- **থিম**: ব্যবহারকারীরা Metal, Dark এবং Light লুক-অ্যান্ড-ফিলের মধ্যে বেছে নিতে পারেন। নির্বাচিত থিম প্রতি ব্যবহারকারীর জন্য `SETTINGS` টেবিলে সংরক্ষিত হয় এবং লগইনে স্বয়ংক্রিয়ভাবে প্রয়োগ হয়।
- **অনলাইন/অফলাইন স্ট্যাটাস ট্র্যাকিং**: ব্যবহারকারী যখনই পরিচিতি তালিকা খোলেন/বন্ধ করেন বা লগইন/লগআউট করেন, সার্ভার `LOG_STATUS` আপডেট করে, যার মধ্যে উইন্ডো বন্ধ করার সময় একটি স্বয়ংক্রিয়-লগআউট হুক অন্তর্ভুক্ত।
- **কনফিগারযোগ্য সার্ভার IP**: ক্লায়েন্টরা একটি সাধারণ সেটিংস স্ক্রিনের মাধ্যমে যেকোনো সার্ভার হোস্টে নির্দেশ করতে পারেন।
- **About স্ক্রিন**: ডেভেলপার এবং ব্র্যান্ডিং তথ্য প্রদর্শন করে।
প্রকল্পটি তিনটি প্রধান অংশে গঠিত: ক্লায়েন্ট অ্যাপ্লিকেশন, সার্ভার এবং ডেটাবেস স্কিমা। ক্লায়েন্ট বিভিন্ন স্ক্রিনের জন্য একাধিক Java ক্লাস নিয়ে গঠিত (স্বাগতম, লগইন, অ্যাকাউন্ট তৈরি, সেটিংস, পরিচিতি, চ্যাট উইন্ডো ইত্যাদি)। সার্ভারটি মাল্টি-থ্রেডেড, প্রতিটি ক্লায়েন্ট সংযোগ একটি পৃথক থ্রেডে পরিচালনা করে এবং বার্তা রিলে করার জন্য সংযুক্ত ক্লায়েন্টদের ট্র্যাক করতে একটি `ConcurrentHashMap` ব্যবহার করে। ডেটাবেস স্কিমায় ব্যবহারকারী, সেটিংস, লগইন স্ট্যাটাস, পরিচিতি এবং চ্যাট ইতিহাসের জন্য টেবিল রয়েছে, সাথে নতুন ব্যবহারকারীদের জন্য স্বয়ংক্রিয়ভাবে ডিফল্ট সেটিংস এবং প্রাথমিক লগআউট স্ট্যাটাস সিড করার ট্রিগার রয়েছে।
সেটআপে প্রদত্ত SQL স্ক্রিপ্ট চালিয়ে Oracle ডেটাবেস তৈরি করা, তারপর সার্ভার এক্সিকিউটেবল (OwnChatS-Portable.zip) চালিয়ে ডেটাবেস ক্রেডেনশিয়াল প্রবেশ করা এবং অবশেষে ক্লায়েন্ট এক্সিকিউটেবল (OwnChat-Portable.zip) চালিয়ে সার্ভার IP সেট করা, একটি অ্যাকাউন্ট তৈরি করা এবং চ্যাট করা অন্তর্ভুক্ত। রোডম্যাপে Servlets, JSP, J2EE এবং Spring Boot ব্যবহার করে HTML/CSS/Bootstrap ফ্রন্টএন্ড সহ একটি ভবিষ্যতের ওয়েব-ভিত্তিক সংস্করণের কথা উল্লেখ করা হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.