Цель проекта — разработать полноценное веб-приложение для обмена сообщениями в реальном времени и на практике реализовать взаимодействие современного frontend и backend.
Необходимо было реализовать регистрацию и авторизацию пользователей, создание и управление чатами, поиск пользователей, отправку сообщений в реальном времени, работу с профилями и аватарами, а также постоянное хранение пользовательских данных и медиафайлов.
Проект разрабатывался как самостоятельное full-stack приложение с отдельно развернутыми frontend и backend частями.
Frontend реализован на React и TypeScript.
Для работы с приложением были реализованы:
— интерфейс списка чатов и сообщений;
— создание и изменение чатов;
— поиск пользователей;
— регистрация и авторизация;
— редактирование профиля;
— загрузка аватаров;
— desktop и mobile интерфейсы.
Для взаимодействия между frontend и backend используются GraphQL-запросы и мутации.
Обмен сообщениями в реальном времени реализован через WebSocket-подписки.
Backend разработан на Python и Django. Для хранения данных используется PostgreSQL, а пользовательские изображения вынесены в отдельное облачное object storage, чтобы файлы не зависели от файловой системы сервера.
Frontend и backend развернуты отдельно и работают как единое приложение.
Получилось работающее full-stack приложение, в котором пользователи могут регистрироваться, создавать чаты, находить других пользователей, изменять профиль и обмениваться сообщениями в реальном времени.
Проект позволил на практике реализовать связку React + TypeScript + Django + GraphQL + WebSocket, работу с PostgreSQL, загрузкой файлов и облачным хранением медиа.
Приложение развернуто и доступно как рабочая Live Demo.