इस प्रोजेक्ट के बारे में

OwnChat एक स्व-होस्टेड डेस्कटॉप चैट एप्लिकेशन है, जो उन उपयोगकर्ताओं के लिए है जो अपने संचार पर नियंत्रण चाहते हैं। यह क्लाइंट-सर्वर-क्लाइंट आर्किटेक्चर का पालन करता है, जहां कई डेस्कटॉप क्लाइंट एक केंद्रीय सर्वर से जुड़ते हैं जो संदेशों को रीयल-टाइम में रिले करता है। एप्लिकेशन यूजर इंटरफेस के लिए Java Swing, नेटवर्किंग के लिए Java Sockets, और स्थायी भंडारण के लिए Oracle Database का उपयोग करके बनाया गया है। मुख्य विशेषताओं में शामिल हैं: - **खाता निर्माण और लॉगिन**: उपयोगकर्ता क्रेडेंशियल्स `USER_DETAILS` तालिका में संग्रहीत होते हैं और लॉगिन के दौरान मान्य किए जाते हैं। - **संपर्क प्रबंधन**: उपयोगकर्ता संपर्क जोड़ सकते हैं, अपनी संपर्क सूची देख सकते हैं, और चैट शुरू करने से पहले जांच सकते हैं कि कोई संपर्क ऑनलाइन है या नहीं। - **रीयल-टाइम संदेश**: प्रत्येक लॉग-इन क्लाइंट सर्वर के साथ एक सॉकेट पंजीकृत करता है; यदि प्राप्तकर्ता के पास चैट विंडो खुली है तो संदेश लाइव रिले किए जाते हैं। सभी संदेश `CHAT_HISTORY` में लॉग किए जाते हैं। - **चैट इतिहास**: किसी संपर्क के साथ चैट फिर से खोलने पर पिछले संदेश दोबारा प्रदर्शित होते हैं, जो प्रेषक के अनुसार रंग-कोडित होते हैं, दिनांक/समय हेडर के साथ। - **थीम**: उपयोगकर्ता Metal, Dark और Light लुक-एंड-फील के बीच चयन कर सकते हैं। चयनित थीम प्रति उपयोगकर्ता `SETTINGS` तालिका में सहेजी जाती है और लॉगिन पर स्वचालित रूप से लागू होती है। - **ऑनलाइन/ऑफलाइन स्थिति ट्रैकिंग**: सर्वर `LOG_STATUS` को अपडेट करता है जब भी कोई उपयोगकर्ता संपर्क सूची खोलता/बंद करता है या लॉगिन/लॉगआउट करता है, जिसमें विंडो बंद होने पर ऑटो-लॉगआउट हुक भी शामिल है। - **कॉन्फ़िगर करने योग्य सर्वर IP**: क्लाइंट एक साधारण सेटिंग्स स्क्रीन के माध्यम से किसी भी सर्वर होस्ट को इंगित कर सकते हैं। - **अबाउट स्क्रीन**: डेवलपर और ब्रांडिंग जानकारी प्रदर्शित करता है। परियोजना तीन मुख्य भागों में संरचित है: क्लाइंट एप्लिकेशन, सर्वर, और डेटाबेस स्कीमा। क्लाइंट में विभिन्न स्क्रीन (वेलकम, लॉगिन, खाता निर्माण, सेटिंग्स, संपर्क, चैट विंडो, आदि) के लिए कई Java क्लासेस शामिल हैं। सर्वर मल्टी-थ्रेडेड है, प्रत्येक क्लाइंट कनेक्शन को एक अलग थ्रेड में संभालता है, और संदेश रिले करने के लिए कनेक्टेड क्लाइंट्स को ट्रैक करने के लिए `ConcurrentHashMap` का उपयोग करता है। डेटाबेस स्कीमा में उपयोगकर्ताओं, सेटिंग्स, लॉगिन स्थिति, संपर्कों और चैट इतिहास के लिए तालिकाएँ शामिल हैं, जिनमें नए उपयोगकर्ताओं के लिए डिफ़ॉल्ट सेटिंग्स और प्रारंभिक लॉग-आउट स्थिति को स्वतः सीड करने के लिए ट्रिगर शामिल हैं। सेटअप में प्रदान की गई SQL स्क्रिप्ट चलाकर Oracle डेटाबेस बनाना, फिर सर्वर निष्पादन योग्य (OwnChatS-Portable.zip) चलाना और डेटाबेस क्रेडेंशियल्स दर्ज करना, और अंत में क्लाइंट निष्पादन योग्य (OwnChat-Portable.zip) चलाना, सर्वर IP सेट करना, खाता बनाना और चैट करना शामिल है। रोडमैप में Servlets, JSP, J2EE और Spring Boot का उपयोग करके HTML/CSS/Bootstrap फ्रंटएंड के साथ भविष्य के वेब-आधारित संस्करण का उल्लेख है।