Skip to content

Commit

Permalink
Merge pull request #30 from frontend-park-mail-ru/feature-final-readme
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
let-robots-reign authored Dec 21, 2024
2 parents f859aaa + f8c6305 commit 544c326
Showing 1 changed file with 24 additions and 11 deletions.
35 changes: 24 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,38 @@
- **UI/UX**: Екатерина Гражданкина
- **Frontend**: Алексей Зотов
- **Backend**: Никита Архаров
- **СУБД**: Роман Фильченков

## Ссылки на внешние ресурсы

- [Стандартная ссылка на деплой](http://89.208.199.175)
- [Стандартная ссылка на деплой](https://uart.site)
- [Репозиторий бэкенда](https://github.com/go-park-mail-ru/2024_2_VKatuny)
- [Ссылка на документацию api в репозитории бэкенда](https://github.com/go-park-mail-ru/2024_2_VKatuny/tree/feature_vacancies-list-api/api)

## О продукте

Данный раздел будет заполнен по готовности четких представлений о продукте
Продукт uArt - это сайт для поиска работы для творческих специалистов.
Идеей продукта было совмещение сайтов для размещения произведений таких
специалистов и сайтов для поиска работы. Существует достаточно похожий [пример](https://www.artstation.com/?sort_by=community&dimension=all)
в области геймдева, и на наш взгляд, это единственный пример - причем англоязычный.

По результатам семестра продукт не совсем реализует идею - не успели это реализовать. Но так или иначе, он работает.

## Архитектура фронтенда

Было принято решение реализовывать flux-подобную архитектуру. Она приведена на картинке.
![Схема фронта drawio](https://github.com/user-attachments/assets/169107fa-1469-47a5-ac50-59ae938ee5b1)

В целом реализуется однонаправленный поток данных. StoreManager это связующее звено между virtual DOM и обобщенным
flux'овым Store. При приходе любого действия StoreManager вызывает перестроение virtual DOM и так поддерживается тонкость
View слоя (он почти не имеет состояния).

С одной стороны это позволяет держать данные консистентными и без аномалий при грамотном использовании Store. Однако важно
понимать, что любой Store - это глобальный Singleton внутри StoreManager, поэтому всегда нужно следить за тем, что лежит
в Store и при необходимости обновлять его.

View и Store разделены ActionCreators, которые скрывают за собой от View события Store'ов и скрывают от Store источник данных.
Плюсом этого стало, что вся обработка сетевых ошибок лежит именно в них и в одном месте.

## Установка и запуск

Expand Down Expand Up @@ -65,12 +87,3 @@ npm run start
```bash
npm run build
```

Запуск дев-сервера (устарел, но пока нужен для прода) осуществляется при помощи команды

```bash
npm run dev-server
```

При этом модифицировать ip-адрес и порт, на котором будет слушать сервер,
можно внутри файла ./src/server/server.mjs

0 comments on commit 544c326

Please sign in to comment.