- Первым делом необходимо скачать последний опубликованый релиз
- После чего создать файл
config.js
в корне проекта.
-
После чего ввести персональные данные доступа к своей базе данных в аккаунте MongoDB:
- Вместо
<username>
имя пользователя базы данных. - Вместо
<password>
пароль пользователя базы данных. - Вместо
<database_name>
любое произвольное название базы данных.
- Вместо
-
Запустить проект с помощью команды
npm run dev:server
- Зайти на http://localhost:3003 и начать пользоваться приложением.
Чтобы развернуть через образ Docker необходимо первым делом скачать образ через опубликованный пакет
Перейти по ссылке указанной в GitHub репозитории, после чего пользоваться приложением.
Проект состоит из 5 страниц:
- Главная страница
- Поиск
- Уведомления
- Сообщения
- Профиль
На главной странице размещается лента пользователя. Лента пользователя - это вертикальный список из всех действий, которые делал непосредственно сам пользователь, а также действия или активность других пользователей, на которых текущий пользователь подписан.
Возможности, которые предоставляет главная страница:
- Пользователь может закрепить определённый, собственный пост.
- Видны все посты аккаунтов, на которые подписан пользователь.
- Возможность написать новый пост и сразу же его отправить в ленту.
- Комментирование, репост или пометить пост как "нравится".
- Переход к профилям других аккаунтов пользователей, которые есть в ленте.
Пользователи имеют возможность динамического поиска как по сообщениям так и пользователям. Таким образом пользователь может находить и подписыватся на других пользователей, а также искать нужный чат исходя из сообщений. Достаточно написать лишь часть никнейма пользователя или часть сообщения, чтобы получить весь список!
Полный список, который показывает любые изменения в аккаунте пользователя, будто подписки, лайки или комментарии.
При любой активности, динамически высвечиваются оповещания, чтобы пользователь мог видеть все изменения
Пользователь может создавать как приватные чаты с одним собеседником так и с несколькими.
В результате у пользователя может быть несколько чатов из которых соответственно приходят также уведомления, если собеседник написал новое сообщение.
А сам чат динамически подтягивается вниз, когда добавляются новые сообщения в чате.
Каждый пользователь имеет свой персональный профиль.
В профиле пользователь имеет следующие возможности:
- Менять аватарку и полотно аккаунта.
- Получить список собственных подписок и тех, кто подписан на пользователя
- Перечеть собственных постов, а также ретвитов (посты других пользователей, которые были добавлены на страничку текущего пользователя).
- Перечень ответов (комментариев) на посты других пользователей.
Проект можно переделать в MVC архитектуру создав отдельную папку для controllers, но поскольку кода достаточно мало, то логика controller'ов описана сразу же в коллбэке маршрутизатора.
Поскольку проект законсервирован под шаблонизатор pug, то данные созданные в коллбэке роута сразу передаются на страничку рендера. В больших проектах необходимо разделять:
- Создание API и тестирование его через Postman или аналогичные тестировщики API.
- Вывод и отрисовка под шаблонизатор по отдельному API.
Проще говоря API размещать по корневому роуту, а для отрисовки приложения в шаблонизаторе создать отдельный, корневой путь и отдельный, цельный, контроллер, через который ответвлятся и создавать html странички.