a-shaforostov / planning-pocker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This project was bootstrapped with Create React App.

Структура архіву:

  • client/ - папка з файлами клієнта.
  • server/ - папка з файлами сервера.
  • screenshots/ - декілька скріншотів.
  • test-session.json - файл з даними сесії, який можна завантажити.

Команди для роботи с проектом:

Для старту серверів:

  • docker-compose up

Якщо сервер на іншому комп'ютері або на віртуальній машині, то адресу серверу потрібно передати як env variable. Наприклад:

  • REACT_APP_HOST=192.168.0.83 docker-compose up

В браузері:

  • localhost:8080

Як запустити проект локально описано в файлі README_LOCAL.md

Опис роботи

В проекті використовується два окремих сервера:

  1. На порту 8080 - сервер статики для SPA додатку
  2. На порту 3002 - websoket API сервер

Використання двох мікросервісів дозволяе користуватися додатком, навіть якшо частина ресурсів недоступна. Додаток кешується на стороні браузера. Якщо сервер статики не доступний, сайт все одно працює з кешу. Якщо не доступний API сервер, у користувача залишається можливість працювати із збереженими сесіями. Отже додаток в обмеженому режимі може працювати без доступу до серверів взагалі.

При виконанні завдання використовано:

  • create-react-app
  • react
  • cerebral для керування станом
  • semantic-ui для інтерфейсу
  • jest для тестів
  • eslint з налаштуваннями create-react-app

В проекті реалізовані всі обов'язкові й додаткові завдання.

Додатково реалізовано:

  • Динамічний перелік користувачів. Користувачі можуть додаватися до сесіїї та покидати сесію в будь який час. Якщо гравець приєднався під час розгляду історії, він може бачити хід голосування, але не може прийняти в ньому участь (про що йому повідомляється). Такий гравець починає голосування з наступної історії. Якщо гравець покидає сесію і вже встиг дати оцінку поточній історії, то оцінка зараховується. Якщо гравець покидає сесію не надавши оцінки, то історія оцінюється без нього.

  • Збереження сесії. Всі дані сесії зберігаються в json

  • Перегляд збереженої сесії. Користувач може відкрити збережену сесію. Він може переглядати історії з результатами голосування, переглядати статистику. Список користувачів у збереженій сесії містить всіх гравців, які дали оцінку принаймні одній історії.

About


Languages

Language:JavaScript 92.7%Language:HTML 4.0%Language:CSS 2.5%Language:Dockerfile 0.7%