परियोजना का विवरण
अनुवादिततकनीकी रूप से हम लाइव डिलीवरी के लिए WebSocket परिवहन की अपेक्षा करते हैं जिसमें एक उचित बैकअप विकल्प और कनेक्शन खोने पर स्वचालित पुन: कनेक्शन होता है। संदेशों को डेटाबेस में स्थायी रूप से संग्रहीत किया जाना चाहिए ताकि बातचीत को फिर से खोलने पर चैट इतिहास सही ढंग से लोड हो सके, और डिलीवरी को क्रमबद्ध और डुप्लिकेट रहित होना चाहिए, भले ही नेटवर्क अस्थिर हो। हमें एक टाइपिंग संकेतक, 'डिलीवर किया गया' और 'पढ़ा गया' स्थिति प्रत्येक संदेश के लिए, प्रत्येक चैट के लिए अनपढ़ काउंटर, और उपस्थिति (ऑनलाइन, अंतिम बार देखा गया) की आवश्यकता है। अटैचमेंट महत्वपूर्ण हैं: उपयोगकर्ताओं को पूर्वावलोकन और सुरक्षित आकार सीमाओं के साथ चित्र और दस्तावेज़ भेजने में सक्षम होना चाहिए। जब प्राप्तकर्ता ऑफ़लाइन हो या टैब बंद हो, तो एक पुश सूचना उन्हें नए संदेश के बारे में सूचित करती है। बैकएंड को हमारे वर्तमान उपयोगकर्ता खातों और पहुंच अनुमतियों पर निर्भर रहना चाहिए न कि एक अलग प्रमाणीकरण प्रणाली को पेश करना चाहिए।
हम सुरक्षा और दुरुपयोग रोकथाम को कार्य का हिस्सा मानते हैं: सक्रिय सत्रों से जुड़े प्रमाणित सॉकेट कनेक्शन, अनुमति जांच (एक उपयोगकर्ता केवल उन धागों को पढ़ता है जिनमें वे भाग लेते हैं), संदेश प्रदर्शित करते समय XSS के खिलाफ इनपुट सफाई, और स्पैम के खिलाफ बुनियादी दर सीमित करना। हम अपने वर्तमान स्टैक में साफ़ दस्तावेज़ कोड, संक्षिप्त एकीकरण निर्देश, और मुख्य परिदृश्यों के लिए परीक्षण की अपेक्षा करते हैं।
— प्रतिभागी प्रबंधन के साथ निजी और समूह चैट
— पुन: कनेक्शन और ऑफ़लाइन बैकअप के साथ WebSocket डिलीवरी
— टाइपिंग संकेतक, डिलीवरी/पढ़ने की स्थिति, अनपढ़ काउंटर, उपस्थिति
— पूर्वावलोकन और आकार सीमाओं के साथ चित्र और दस्तावेज़ अटैचमेंट
— ऑफ़लाइन प्राप्तकर्ताओं के लिए पुश सूचनाएं
— इतिहास, क्रमबद्धता, डुप्लिकेशन और संदेश स्थिरता
— सत्र-बाउंड सॉकेट, प्रति-धागा अनुमति जांच, XSS सुरक्षा, दर सीमित करना