An open API service indexing awesome lists of open source software.

https://github.com/mariyazakharova73/app

advanced frontend
https://github.com/mariyazakharova73/app

feature-sliced-design jest react storybook ts webpack

Last synced: 3 months ago
JSON representation

advanced frontend

Awesome Lists containing this project

README

          

### app

#### О проекте

Проект без использования Create React App. Настроена работа с css-модулями. Для имитации бэкенда используется JSON Server. Бандл разделен на чанки (React.lazy). Добавлена возможность смены темы (React Context, css-variables, custom hook useTheme). Добавлена helper-функция для работы с классами. Реализована возможность смены языка (i18next). Настроен EsLint, Stylelint, husky. Протестированы некоторые функции (jest), компоненты (react-testing-library), асинхронные функции, селекторы. Настроена обработка ошибок (React ErrorBoundary). Настроена работа со Storybook.
Модальное окно создано с использованием React Portal.
loginReducer, profileReducer, articleDetailsReducer добавляются асинхроно через reducerManager (форма авторизации подгружается только для неавторизованного пользователя).
Страница профиля защищена от неавторизованного пользователя. В режиме редактирования можно изменить данные профиля.
Реализована возможность просмотра статей и комментариев. Также можно добавлять новые комментариик статье.

Применен Feature-Sliced Design
app - router, ThemeProvider, StoreProvider, styles, types

pages - AboutPage, MainPage, NotFoundPage

widgets - Navbar, SideBar, ThemeSwitcher, LanguageSwitcher, PageLoader

feautures - AuthByUsername

entities - User

shared - AppLink, classNames, assets, config i18next, routeConfig, Loader, Button, Modal, Portal, hooks, api

#### Технологии


Webpack.
React.
TypeScript.
Redux
React Router.
Sass
Jest
Storybook

#### Установка и запуск приложения

Развернуть

Клонировать репозиторий (backend):

git clone https://github.com/Mariyazakharova73/app.git

Установить зависимости:

npm install

Запустить проект:

npm start