Thanks to visit codestin.com
Credit goes to github.com

Skip to content

πŸ“’πŸ”–πŸ·οΈπŸ“Œ WOOJ β€” это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ("Π²ΡƒΠ΄ΠΆΠ°ΠΌΠΈ")

License

Notifications You must be signed in to change notification settings

scott-walker/wooj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WOOJ

WOOJ

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ систСма управлСния Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ с возмоТностями ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ рСдактирования ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Laravel Vue PHP PostgreSQL Docker

ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

WOOJ - это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ("Π²ΡƒΠ΄ΠΆΠ°ΠΌΠΈ"). БистСма позволяСт ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· систСму Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ rich-text Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ прСдоставляСт ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ.

✨ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ с rich-text Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ (TipTap)
  • Π’ΠΎΠΏΠΈΠΊΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°
  • Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ
  • Drag & Drop для измСнСния порядка Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ
  • ΠšΠΎΡ€Π·ΠΈΠ½Π° с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ восстановлСния
  • БистСма Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ email
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π°Π²Π°Ρ‚Π°Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
  • Адаптивный Π΄ΠΈΠ·Π°ΠΉΠ½ для всСх устройств

(Π±Π»ΠΈΠ½, Π½Π°Π΄ΠΎ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ... πŸ™ƒπŸ˜‡)

WOOJ

πŸ—οΈ АрхитСктура

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ построСн Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° frontend ΠΈ backend:

Backend (Laravel 12)

  • API: RESTful API с Laravel Sanctum для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • МодСли: User, Wooj, Topic, WoojTopic
  • Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…: PostgreSQL с миграциями
  • БСрвисы: WoojService, TopicService, UserService (бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°)

Frontend (Vue.js 3)

  • БостояниС: Pinia stores для управлСния состояниСм
  • Π ΠΎΡƒΡ‚ΠΈΠ½Π³: Vue Router с Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ
  • UI: ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ стили
  • Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€: TipTap для rich-text рСдактирования

πŸ› οΈ Stack

Backend

  • Framework: Laravel 12.x
  • PHP: 8.4
  • Database: PostgreSQL
  • Authentication: Laravel Sanctum
  • Package: Compoships для составных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Frontend

  • Framework: Vue.js 3.5
  • Build Tool: Vite 6.x
  • State Management: Pinia 3.x
  • Routing: Vue Router 4.x
  • Editor: TipTap 2.x
  • Styles: SCSS
  • Icons: Font Awesome
  • Additional: Swiper.js, Lodash, Advanced Cropper, Draggable

DevOps

  • Containerization: Docker & Docker Compose
  • Web Server: Nginx
  • Mail: MailHog для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

πŸ“¦ Установка ΠΈ запуск

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • Docker
  • Docker Compose
  • Git

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ запуск

# ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
git clone https://github.com/scottwalker87/wooj.git
cd wooj

# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ .env Ρ„Π°ΠΉΠ» Π½Π° основС .env.example
cp api/.env.example api/.env

# ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π² .env
vim api/.env

# Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
docker-compose up -d

# Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости backend
docker-compose exec api composer install

# Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
docker-compose exec api php artisan migrate

# Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости frontend
docker-compose exec front npm install

# Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ dev сСрвСр frontend
docker-compose exec front npm run dev

ДоступныС ΠΏΠΎΡ€Ρ‚Ρ‹

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

  • users: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ систСмы
  • woojs: Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ (Π²ΡƒΠ΄ΠΆΠΈ)
  • topics: Π’ΠΎΠΏΠΈΠΊΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • woojs_topics: Бвязь Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ²

Π’ΠΈΠΏΡ‹ Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ²

  • pinned - Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ
  • public - ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ
  • custom - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΎΠΏΠΈΠΊΠΈ

API Endpoints

АутСнтификация

POST /api/register    # РСгистрация
POST /api/login       # Π’Ρ…ΠΎΠ΄
POST /api/logout      # Π’Ρ‹Ρ…ΠΎΠ΄
GET  /api/check       # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ
POST /api/resend      # ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° письма

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ (Woojs)

GET    /api/woojs              # Бписок Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ
POST   /api/woojs              # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ
GET    /api/woojs/{id}         # ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ
PUT    /api/woojs/{id}         # ОбновлСниС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ
DELETE /api/woojs/{id}         # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ
PUT    /api/woojs/{id}/restore # ВосстановлСниС
PUT    /api/woojs/{id}/pin     # Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅
PUT    /api/woojs/{id}/unpin   # ΠžΡ‚ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅

Π’ΠΎΠΏΠΈΠΊΠΈ

GET    /api/topics           # Бписок Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ²
POST   /api/topics           # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΈΠΊΠ°
PUT    /api/topics/{id}      # ОбновлСниС Ρ‚ΠΎΠΏΠΈΠΊΠ°
DELETE /api/topics/{id}      # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΏΠΈΠΊΠ°
PUT    /api/topics/{id}/sort # Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ UI/UX

Π”ΠΈΠ·Π°ΠΉΠ½

  • ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ интСрфСйс
  • Адаптивная вСрстка для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств
  • Анимации ΠΈ ΠΏΠ»Π°Π²Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹

Drag & Drop

  • ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ
  • ИзмСнСниС порядка Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠΏΠΈΠΊΠ°
  • Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ обратная связь ΠΏΡ€ΠΈ пСрСтаскивании

πŸ”§ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Backend (Laravel)

# Π’ΠΎΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ API
docker-compose exec api bash

# Artisan ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
php artisan migrate
php artisan tinker
php artisan make:model ModelName
php artisan make:controller ControllerName

# Composer
composer install
composer update

Frontend (Vue.js)

# Π’ΠΎΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Frontend
docker-compose exec front bash

# NPM ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
npm run dev          # Запуск dev сСрвСра
npm run build        # Π‘Π±ΠΎΡ€ΠΊΠ° для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°
npm run preview      # ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр сборки
npm run format       # Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

πŸ“š РСсурсы ΠΈ докумСнтация

Backend

Frontend

Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈ UI

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ЛицСнзия

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ распространяСтся ΠΏΠΎΠ΄ MIT License.

About

πŸ“’πŸ”–πŸ·οΈπŸ“Œ WOOJ β€” это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ("Π²ΡƒΠ΄ΠΆΠ°ΠΌΠΈ")

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published