/kts-gastronaut

Food Client - это PWA-приложение для просмотра рецептов различных блюд.

Primary LanguageTypeScript

Food Client

Food Client - PWA-приложение для просмотра рецептов различных блюд.

Содержание

  1. О проекте
  2. Технологии
  3. Запуск

1. О проекте

Проект имеет адаптивный дизан, что позволяет комфортно пользоваться сервисом как с ПК, так и с телефона или планшета. Приложение состоит из 5 страниц:

  1. Страница списка рецептов;
  2. Страница подробной информации о рецепте;
  3. Страница сохраненных рецептов;
  4. Страница авторизации;
  5. Страница регистрации.

Страница списка рецептов содержит фильтры, определяющие параметры подборки блюд, а такж сам список рецептов. При изменении фильтров, их значения сохраняются в query-параметрах, что позволяет сохранять состояния фильтров и делиться ссылками без потери контекста. При рендере списка рецептов используется виртуализация с бесконечным скроллом, позволяющая хранить в DOM только те рецепты, которые видны на странице в данный момент, что существенно оптимизирует работу приложения.

Страница рецепта содержит подробную информацию о рецепте.

Страница сохраненных рецептов хранит рецепты, выбранные пользователем, в LocalStorage.

2. Технологии

  • Проект написан на связке React + TypeScript, в качестве сборщика используется Vite;
  • Food Client - это PWA, поэтому его можно скачать, как приложение, на телефон или компьютер и использовать даже в оффлайне;
  • Для хранения состояния был выбран стейт-менеджер MobX;
  • Стили написаны на SCSS Modules;
  • В проекте используется yarn в качестве пакетного менеджера;
  • Для отправки запросов к API использовал axios;
  • Для написания виртуализованного списка с бесконечным скроллом использовал react-window;
  • Проект задеплоен на GitHub Pages.

3. Запуск

Режим разработки (рекомендуется для тестирования)

  1. Склонировать репозиторий;
  2. Установить зависимости командой yarn install;
  3. Запустить приложение командой yarn dev;
  4. Проект будет запущен на http://127.0.0.1:8000/.

Prod сборка

  1. Склонировать репозиторий;
  2. Установить зависимости командой yarn install;
  3. Собрать приложение командой yarn build;
  4. Перейти в директорию dist;
  5. Запустить сервер с приложением командой http-server;
  6. Проект будет запущен на http://127.0.0.1:8080/

Связь со мной