Set up the HTTP server with Express, attach Socket.IO for real-time
messaging, add CORS middleware, async error handling utility, and
REST routes for room join/leave/messages/participants.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduce database config, MongoDB and JSON store implementations,
and a datastore factory that connects to MongoDB by default and falls
back to a local JSON file when MongoDB is unavailable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduce errorMessages.js with i18n translation keys for all
user-facing errors (form, connection, API) and validators.js with
reusable validation functions that reference those keys.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Initialise i18next and react-i18next, add the German translation file
(locales/de/translation.json), and import the i18n config in main.jsx
so it is available before the app renders.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>