Skip to content

A social network leaning towards Twitter with its main features such as: likes, reposts, adding friends, as well as correspondence

Notifications You must be signed in to change notification settings

pestsov-v/social-network

Repository files navigation

Социальная сеть

Оглавление

Запуск и развёртывание проекта

Развёртывания руками на своей хост машине

  1. Первым делом необходимо скачать последний опубликованый релиз

release.png

  1. После чего создать файл config.js в корне проекта.

config-js.png

  1. После чего ввести персональные данные доступа к своей базе данных в аккаунте MongoDB:

    1. Вместо <username> имя пользователя базы данных.
    2. Вместо <password> пароль пользователя базы данных.
    3. Вместо <database_name> любое произвольное название базы данных.
  2. Запустить проект с помощью команды

npm run dev:server
  1. Зайти на http://localhost:3003 и начать пользоваться приложением.

Развёртывания через образ Docker

Чтобы развернуть через образ Docker необходимо первым делом скачать образ через опубликованный пакет

Запуск через Heroku

Перейти по ссылке указанной в GitHub репозитории, после чего пользоваться приложением.

Структура проекта и его компоненты

Проект состоит из 5 страниц:

  1. Главная страница
  2. Поиск
  3. Уведомления
  4. Сообщения
  5. Профиль

Главная страница

На главной странице размещается лента пользователя. Лента пользователя - это вертикальный список из всех действий, которые делал непосредственно сам пользователь, а также действия или активность других пользователей, на которых текущий пользователь подписан.

image.png

Возможности, которые предоставляет главная страница:

  • Пользователь может закрепить определённый, собственный пост.
  • Видны все посты аккаунтов, на которые подписан пользователь.
  • Возможность написать новый пост и сразу же его отправить в ленту.
  • Комментирование, репост или пометить пост как "нравится".
  • Переход к профилям других аккаунтов пользователей, которые есть в ленте.

Поиск

Пользователи имеют возможность динамического поиска как по сообщениям так и пользователям. Таким образом пользователь может находить и подписыватся на других пользователей, а также искать нужный чат исходя из сообщений. Достаточно написать лишь часть никнейма пользователя или часть сообщения, чтобы получить весь список!

image.png

Уведомления

Полный список, который показывает любые изменения в аккаунте пользователя, будто подписки, лайки или комментарии.

image.png

При любой активности, динамически высвечиваются оповещания, чтобы пользователь мог видеть все изменения

image.png

Переписки

Пользователь может создавать как приватные чаты с одним собеседником так и с несколькими.

image.png

В результате у пользователя может быть несколько чатов из которых соответственно приходят также уведомления, если собеседник написал новое сообщение.

image.png

А сам чат динамически подтягивается вниз, когда добавляются новые сообщения в чате.

image.png

Профиль

Каждый пользователь имеет свой персональный профиль.

image.png

В профиле пользователь имеет следующие возможности:

  • Менять аватарку и полотно аккаунта.
  • Получить список собственных подписок и тех, кто подписан на пользователя
  • Перечеть собственных постов, а также ретвитов (посты других пользователей, которые были добавлены на страничку текущего пользователя).
  • Перечень ответов (комментариев) на посты других пользователей.

Архитектура проекта

Проект можно переделать в MVC архитектуру создав отдельную папку для controllers, но поскольку кода достаточно мало, то логика controller'ов описана сразу же в коллбэке маршрутизатора.

Маршрутизация

Поскольку проект законсервирован под шаблонизатор pug, то данные созданные в коллбэке роута сразу передаются на страничку рендера. В больших проектах необходимо разделять:

  • Создание API и тестирование его через Postman или аналогичные тестировщики API.
  • Вывод и отрисовка под шаблонизатор по отдельному API.

Проще говоря API размещать по корневому роуту, а для отрисовки приложения в шаблонизаторе создать отдельный, корневой путь и отдельный, цельный, контроллер, через который ответвлятся и создавать html странички.

About

A social network leaning towards Twitter with its main features such as: likes, reposts, adding friends, as well as correspondence

Topics

Resources

Stars

Watchers

Forks

Packages