# πŸ–₯️ @coopenomics/desktop Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π° Π½Π° Vue 3 ΠΈ Quasar Framework с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SSR ΠΈ SPA. Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс для всСх участников ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π°: прСдсСдатСля, Ρ‡Π»Π΅Π½ΠΎΠ² совСта ΠΈ ΠΏΠ°ΠΉΡ‰ΠΈΠΊΠΎΠ² β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, голосованиС, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚, финансовыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΎΠΌ. ## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности - АрхитСктура Feature Sliced Design (FSD) - SSR ΠΈ SPA Ρ€Π΅ΠΆΠΈΠΌΡ‹ (Quasar Framework) - Pug-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ с Composition API - БистСма Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ (extensions) для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ - Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ (Vue I18n) - Pinia для управлСния состояниСм с ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠΌ EOSIO Ρ‡Π΅Ρ€Π΅Π· Wharfkit - Push-увСдомлСния Ρ‡Π΅Ρ€Π΅Π· Novu - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‡Π΅Ρ€Π΅Π· Sentry ΠΈ OpenReplay ## Установка ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ монорСпозитория. Установка зависимостСй ΠΈΠ· корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: ```bash pnpm install ``` Или Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°: ```bash pnpm install --filter @coopenomics/desktop ``` ## Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ | Π‘ΠΊΡ€ΠΈΠΏΡ‚ | Команда | ОписаниС | |--------|---------|----------| | `dev` | `pnpm run dev` | Запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SSR-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ | | `devnet` | `pnpm run devnet` | Запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SPA-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ | | `build` | `pnpm run build` | Π‘Π±ΠΎΡ€ΠΊΠ° SSR для production | | `build:spa` | `pnpm run build:spa` | Π‘Π±ΠΎΡ€ΠΊΠ° SPA | | `build:lib` | `pnpm run build:lib` | Π‘Π±ΠΎΡ€ΠΊΠ° ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Vite) | | `lint` | `pnpm run lint` | ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° (ESLint) | | `typecheck` | `pnpm run typecheck` | ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² TypeScript | | `format` | `pnpm run format` | Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (Prettier) | | `start` | `pnpm run start` | Запуск собранного SSR-прилоТСния | Из корня монорСпозитория: ```bash pnpm run dev:desktop ``` ## ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ `.env-example` Π² `.env`. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: - URL GraphQL API ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° - Endpoint Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½-Π½ΠΎΠ΄Ρ‹ ΠΈ `CHAIN_ID` - Настройки Sentry ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ - Настройки OpenReplay ΠΈ Chatwoot Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ тСстовой сСти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `.env-testnet`. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… β€” Π² Ρ„Π°ΠΉΠ»Π΅ `.env-example`. ## АрхитСктура ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ **Feature Sliced Design (FSD)**: ``` src/ β”œβ”€β”€ app/ # Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ прилоТСния, ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ β”œβ”€β”€ pages/ # ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ страницы β”œβ”€β”€ widgets/ # БоставныС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ β”œβ”€β”€ features/ # Π€ΠΈΡ‡ΠΈ (бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° UI) β”œβ”€β”€ entities/ # Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ сущности β”œβ”€β”€ shared/ # ΠžΠ±Ρ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, UI-kit, конфигурация β”œβ”€β”€ processes/ # БизнСс-процСссы β”œβ”€β”€ stores/ # Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Pinia β”œβ”€β”€ desktops/ # Π Π°Π±ΠΎΡ‡ΠΈΠ΅ столы ΠΏΠΎ ролям β”œβ”€β”€ i18n/ # ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ └── boot/ # Quasar boot-Ρ„Π°ΠΉΠ»Ρ‹ extensions/ # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ β”œβ”€β”€ capital/ # ΠŸΠ°Π΅Π²Ρ‹Π΅ взносы β”œβ”€β”€ chairman/ # ΠšΠ°Π±ΠΈΠ½Π΅Ρ‚ прСдсСдатСля β”œβ”€β”€ chatcoop/ # Π§Π°Ρ‚ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π° β”œβ”€β”€ market/ # ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΏΠ»Π΅ΠΉΡ β”œβ”€β”€ market-admin/ # АдминистрированиС маркСтплСйса β”œβ”€β”€ participant/ # ΠšΠ°Π±ΠΈΠ½Π΅Ρ‚ ΠΏΠ°ΠΉΡ‰ΠΈΠΊΠ° β”œβ”€β”€ powerup/ # Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами └── soviet/ # Π‘ΠΎΠ²Π΅Ρ‚ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π° ``` ### Π‘Ρ‚Π΅ΠΊ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ - **Vue 3** β€” Composition API - **Quasar Framework** β€” UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ SSR/SPA инфраструктура - **Pug** β€” ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² - **Pinia** β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм - **Vue Router** β€” ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ - **Vue I18n** β€” интСрнационализация - **Wharfkit** β€” интСграция с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠΌ EOSIO > **ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:** Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ рСкомСндуСтся SPA (`quasar dev`), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ SSR-Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ сСриализации Pinia. ## ЛицСнзия [BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.ru)