-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Привет! Проверил твою работу, надеюсь ничем не обижу !
⚙️ Технические требования:
- Наличие отдельного репозитория проекта - 1/1
- Использование Vite для сборки - 1/1
- Применение CSS Modules для стилей - 1/1
- Модульная организация кода - 4/4
- Использование TypeScript (доп. баллы) - 0/2
Комментарий: Написано на JS
- Применение Zustand в качестве state-менеджера - 2/2
- Использование Fetch для API-запросов - 1/1
- Реализация модальных окон через Portals - 2/2
- Хранение истории в LocalStorage - 1/1
- Использование react-router-dom для роутинга - 2/2
- Настройка ESLint + Prettier - 0/1
Комментарий: Нет Prettier
- Отсутствие неразрешенных сторонних библиотек (React Compiler и classnames можно добавлять) - 6/6
Итого: 21/24
🎨 ️Соответствие дизайну:
- Главная страница - 11/12
Комментарий: Не крутится лоудер
- Хедер с меню - 2/2
- Страница генерации таблицы - 2/2
- Страница истории - 8/8
Итого: 23/24
Функциональные требования:
Главная страница:
- Загрузка таблицы через drag&drop или кнопку - 4/4
- Отправка таблицы в систему:
- Реализация запроса с постепенным получением данных - 4/8
Комментарий: При отправке файла весов 100МБ происходит ошибка
- Данные накапливаются плавно - 2/2
- Есть обработка ошибок - 2/2
- Отображение индикатора загрузки - 4/4
Не ставлю минус балл тут, так как лоудер появляется, но не крутится, что является ошибкой дизайна
- По окончании работы запроса в localStorage складывается запись об истории - 2/2
- Кнопка очистить - 4/4
Шапка
- Роутинг работает, страницы переключаются - 4/4
Страница генерации
- При клике на кнопку отправляется запрос за генерацией и автоматически начинается загрузка файла - 4/4
- Есть обработка ошибок - 2/2
Страница истории
- При загрузке страницы данные из localStorage выгружаются и страница инициализируется со списком - 4/4
- Удаление отдельных записей истории - 2/2
- При клике на пункт списка открывается модальное окно с хайлайтами - 6/6
- Полная очистка истории - 2/2
- Кнопка "сгенерировать больше" редиректит на генерацию - 2/2
Итого: 48/52
Итог: 92
Мнение:
- Мне кажется (также это говорили на лекции), что логику обработки стрима нужно выполнять не в Pages, а создать отдельную папку services, в которой будет прописана бизнес логика
- Было бы уместно добавить cursor:pointer, чтобы пользователь понимал, что элемент кликабельный
- Не стал снижать балл(так как есть обработка в pages), но так нельзя обрабатывать ошибку, так как Promise не перейдет в состояние reject и мы не пробросим ошибку дальше

Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
