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
- Host: GitHub
- URL: https://github.com/mariyazakharova73/app
- Owner: Mariyazakharova73
- Created: 2023-09-13T14:22:46.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T10:51:59.000Z (over 2 years ago)
- Last Synced: 2025-02-14T11:34:04.086Z (over 1 year ago)
- Topics: feature-sliced-design, jest, react, storybook, ts, webpack
- Language: TypeScript
- Homepage:
- Size: 2.79 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
#### Технологии
#### Установка и запуск приложения
Развернуть
Клонировать репозиторий (backend):
git clone https://github.com/Mariyazakharova73/app.git
Установить зависимости:
npm install
Запустить проект:
npm start