Thread - это SPA с готовой архитектурой и структурой, подключенным базовым стеком технологий и стартовым функционалом, предназначенный для самостоятельной практики студентов.
Тематика проекта - социальная сеть, похожая на Twitter.
Основная идея проекта - ознакомить студентов с нашим виденьем того, как реальный проект должен выглядеть изнутри, и дать возможность самостоятельно исследовать, как устроена архитектура и структура проекта, посмотреть его возможные конфигурации, попробовать покопаться и разобраться в чужом коде.
Здесь перечислены основные фреймворки и библиотеки, используемые в проекте. Полный список используемых технологий для каждой части проекта находится в файлах package.json и build.gradle в папках frontend и backend.
-
Установить последнюю стабильную версию Java. А также любую доступную IDE, например IntelliJ IDEA
-
Установить последнюю стабильную версию Node.js (LTS). Note: npm будет установлен автоматически. Проверьте корректность установки: для этого выполните в командной строке (терминале):
node -v // для проверки версии Node.js npm -v // для проверки версии npm
-
Установить последнюю стабильную версию PostgreSQL для вашей OS. Проверьте корректность работы - попробуйте создать базу, таблицу, - для этого можете использовать pgAdmin или другой удобный способ, который найдете.
-
Создайте в PostgreSQL пустую базу данных для проекта. Например, threaddb.
-
Установите Git.
-
Склонировать репозиторий проекта:
git clone [email protected]:BinaryStudioAcademy/thread-java.git
-
Создать репозиторий на Bitbucket и вести дальнейшую разработку там.
-
В папке backend\src\main\resources\ создайте файл application.properties и скопируйте в него содержимое из файла application.properties.example.
Note: файл application.properties содержит реальные ключи проекта и не должен сохраняться в репозиторий.
Замените в файле application.properties значения ключей на действительные. И укажите название созданной базы данных, используемой для работы с проектом. Для того, чтобы указать токен для Gyazo, необходимо зарегистрироваться на сайте Gyazo и зарегистрировать приложение, а также прочитать три строчки документации, чтобы понимать, как работать с API.
-
Запустить проект можно с помощью предустановленной IDE.
-
Установить lombok plugin
- Используя встроенную системы плагинов IDE в Windows:
- File > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
- Вручную:
- Загрузите latest release и установите его вручную, используя Preferences > Plugins > Install plugin from disk...
- Используя встроенную системы плагинов IDE в Windows:
-
При первом старте создадутся все таблицы и автоматически запуститься Seed базы данных для заполнения ее первоначальными данными.
-
В командной строке (терминале) зайдите в папку frontend:
cd /* путь к папке frontend */
-
Установите все необходимы пакеты из package.json командой:
npm install
-
В папке frontend создайте файл .env и скопируйте в него содержимое из файла .env.example.
Note: файл .env содержит реальные ключи проекта и не должен сохраняться в репозиторий.
Замените в файле .env значения ключей на действительные.
-
Для запуска клиента в командной строке (терминале) в папке клиента выполните:
npm start
Приложение должно само автоматически открыться в брузере по умолчанию.
Необходимо добавить следующие возможности:
- Поставить dislike посту.
- Редактировать свой пост.
- Удалить свой пост. Soft deletion - пост должен остаться в базе данных.
- Редактировать свой комментарий.
- Удалить свой комментарий. Soft deletion - комментарий должен остаться в базе данных.
- Поставить like комментарию.
- Поставить dislike комментарию.
- Фильтр - не отображать свои посты, а отображать только чужие.
- Фильтр - отображать только те посты, которым я (как пользователь) поставил лайк.
- Отобразить кто поставил like/dislike посту.
- Отобразить кто поставил like/dislike комментарию.
- Добавить больше real-time уведомлений (websocket), например при обновлении/удалении поста/комментария.
- Редактировать собственный профиль. Добавить валидацию (например, пользователь не должен иметь возможности сохранить невалидный email).
- Устанавливать статус пользователя (например, "А сегодня, в завтрашний день, не все могут смотреть. Вернее.."). Отображать его под username.
- Сбросить пароль (Forgot password). Отправить email с ссылкой на страницу изменения пароля.
- Отправить пользователю email, если его посту поставили like.
- Поделиться постом по email.
Весь список тасков также можно найти на доске Trello в колонке Backlog Students. Доску нужно скопировать себе и по ней работать. Это поможет вам отслеживать весь процесс своей работы, а нам - определить, что уже готово. Таск будет считаться выполненным, если он полностью завершен и фича работает. Посмотрим на ее реализацию и оценим, правильно ли распределили логику в проекте. Это покажет, насколько вы разобрались в архитектуре. Также дадим комментарии по коду.
Основной результат работы можно определить тем, как глубоко вы смогли разобраться в проекте и понять его, и как далеко продвинулись в личном обучении.
Ссылки: