Руководство по запуску
В корне проекта
- Выполнить
yarn install
-
- Выполнить
yarn start
для дев запуска - Выполнить
yarn build
,npx serve -s build
для прод запуска
- Выполнить
- Открыть страницу в браузере по адресу, который будет в консоли (по дефолту
localhost:3000
для дев,localhost:5000
для прод режима)
Дополнительные библиотеки:
styled-components
для написания стилей css-in-jsdate-fns
для обработки датuuid
для генерации уникальных idreact-router-dom
для роутинга
Дополнительная информация
Приложение состоит из 2 страниц - списка книг (BooksPage
) и редактирование данных книги/добавление новой книги (BookPage
).
Краткое описание структуры приложения:
App
- приложениеBooksContext
- контекст данных приложенияconstants
- общие константыpages
- страницыui
- ui компонентыwidgets
- виджеты
types
- глобальные дефинишены стилей (.d.ts
)
ТЗ
Написать небольшое одностраничное веб-приложение – редактор книг. Цель: продемонстрировать знание JavaScript и SPA фреймворка/архитектуры, HTML/CSS Оценивается: полнота реализации требований, модульность и архитектура приложения, простота и читабельность кода, следование принципам KISS/DRY Функциональные требования: • Отображать список книг со следующими параметрами:
- заголовок (обязательный параметр, не более 30 символов)
- список авторов (книга должна содержать хотя бы одного автора)
- имя автора (обязательный параметр, не более 20 символов)
- фамилия автора (обязательный параметр, не более 20 символов)
- количество страниц (обязательный параметр, больше 0 и не более 10000)
- название издательства (опциональный параметр, не более 30 символов)
- год публикации (опциональный параметр, не раньше 1800)
- дата выхода в тираж (опциональный параметр, не раньше 01.01.1800)
- ISBN с валидацией (опциональный параметр, http://en.wikipedia.org/wiki/International_Standard_Book_Number)
- изображение (опциональный параметр) • Возможность добавлять, удалять и редактировать существующие книги и ее авторов. • Возможность сортировать по заголовку и году публикации (сортировка должна сохраняться после перезагрузки страницы) • Возможность загружать изображение
Нефункциональные требования: • Технологии – React 16.8+ • Хранение данных – localStorage • Клиентская валидация • Клиентский роутинг