Descrizione del progetto
TradottoTecnicamente ci aspettiamo un trasporto WebSocket per la consegna in tempo reale con un'opzione di fallback ragionevole e riconnessione automatica in caso di perdita di connessione. I messaggi devono essere persistenti nel database in modo che la cronologia della chat si carichi correttamente quando si riapre una conversazione, e la consegna deve essere ordinata e deduplicata anche su reti instabili. Abbiamo bisogno di un indicatore di digitazione, stati 'consegnato' e 'letto' per ogni messaggio, contatori di messaggi non letti per chat e presenza (online, ultimo accesso). Gli allegati sono importanti: gli utenti devono essere in grado di inviare immagini e documenti con anteprime e limiti di dimensione sicuri. Quando il destinatario è offline o la scheda è chiusa, una notifica push li avvisa del nuovo messaggio. Il backend dovrebbe basarsi sui nostri attuali account utente e permessi di accesso piuttosto che introdurre un sistema di autenticazione separato.
Consideriamo la sicurezza e la prevenzione degli abusi parte del compito: connessioni socket autenticate legate a sessioni attive, controlli di autorizzazione (un utente legge solo i thread a cui partecipa), sanitizzazione dell'input contro XSS durante la visualizzazione dei messaggi e limitazione di base contro lo spam. Ci aspettiamo codice pulito e documentato nel nostro stack attuale, brevi istruzioni di integrazione e test per gli scenari principali.
— Chat private e di gruppo con gestione dei partecipanti
— Consegna WebSocket con riconnessione e fallback offline
— Indicatore di digitazione, stati di consegna/lettura, contatori di messaggi non letti, presenza
— Allegati di immagini e documenti con anteprime e limiti di dimensione
— Notifiche push per destinatari offline
— Cronologia, ordinamento, deduplicazione e persistenza dei messaggi
— Socket legati alla sessione, controlli di autorizzazione per thread, protezione XSS, limitazione della velocità