Разработать систему обмена сообщениями. Все пользователи видят все чаты, любой пользователь может создать чат. Отправку и получаение сообщений реализовать через socket.
Также добавить:
- регистрацию и авторизацию;
- возможность поиска сообщения в чате;
- возможность передавать файлы через чат.
Основной стэк:
- ejs, ejs-mate
- express, express-sessions
- socket.io
- mongoose
- passport
За отрисовку страниц отвечает ejs и ejs-mate (/views/
).
Аутентификация и базовые маршруты реализованы через express (/api/routes/
).
Через socket.io реализованы (/api/events/
) :
- Загрузка данных пользователя из сессии и его отрисовка;
- Взаимодействие с сообщениями (создание, удаление, отправка файла);
- Взаимодействие с чатами (создание, удаление)
Для хранения и управления данными использованы MongoDB и mongoose с моделями User
, Chat
, Message
(/models/
).