# Web Writer

**Лицензия:** AGPLv3  

**Web Writer** — веб-приложение для написания, хранения и публикации книг и серий книг. Поддерживает Markdown с расширением для диалогов, автосохранение текста, экспорт и управление пользователями.

---

## 🚀 Возможности

- **Книги и серии:** создавайте серии и добавляйте книги с главами.
- **Сортировка книг и глав:** сортируйте книги в сериях, и главы в книгах в том порядке в каком вам нравится.
- **Редактор книг:** 
  - WYSIWYG редактор Quill.js 
  - Автосохранение текста
  - Автоматическое форматирование книжных диалогов.
- **Темы оформления:** выберите в настройке тему которая вам больше по душе.
- **Предпросмотр книг:**
  - **Автор:** видит все черновики и опубликованные главы.  
  - **Публичный доступ:** только опубликованные главы по ссылке с `shared_token`.  
- **Обложки и аватары:** добавляйте изображения к книгам и профилям.  
- **Экспорт:** PDF, DOCX, HTML, TXT.  
- **Интерактивное содержание** в просмотре и экспорте книг
- **Администрирование пользователей:**  
  - Управление аккаунтами, активация/деактивация.  
  - При удалении пользователя удаляются все его книги.  

- **Публичные ссылки:** 
  - Делитесь книгой по `shared_token`. Хотите чтобы её никто больше не увидел? Перегенерируйте токен!
  - Давайте ссылку на свою страницу автора, где будет список опубликованных вами книг.

---

## ⚙️ Требования

- **PHP:** 8.0 и выше  
- **MySQL** с InnoDB и внешними ключами  
- **PHP расширения:** `mbstring`, `json`, `PDO`  
- Веб-сервер с правами на запись в папки `config/` и `uploads/`  

> Composer не нужен. Все библиотеки уже включены в `vendor/`. 

---
## 📁 Структура проекта

web_writer/
├── controllers/          # Контроллеры приложения
│   ├── AuthController.php
│   ├── BookController.php
│   ├── ChapterController.php
│   └── ...
├── models/              # Модели данных
│   ├── User.php
│   ├── Book.php
│   ├── Chapter.php
│   └── ...
├── views/               # Шаблоны представлений
├── assets/              # Статические файлы
│   ├── css/
│   ├── js/
│   └── bs               # Темы для Bootstrap
├── uploads/             # Загружаемые файлы
│   ├── covers/          # Обложки книг
│   └── avatars/         # Аватары пользователей
├── vendor/              # Внешние библиотеки
├── config/              # Конфигурационные файлы
└── index.php           # Точка входа


## 🛠 Установка

1. Скопируйте файлы на веб-сервер или склонируйте репозиторий.
2. Проверьте доступность папок `config/` и `uploads/` для записи.  
3. Перейдите в браузере на `install.php` и следуйте шагам:  

   **Шаг 1: Настройки базы данных**  
   - Хост БД  
   - Имя базы данных  
   - Пользователь и пароль  

   **Шаг 2: Создание администратора**  
   - Имя пользователя  
   - Пароль  
   - Email (по желанию)  
   - Отображаемое имя (по желанию)

4. После успешной установки файл `config/config.php` будет сгенерирован автоматически.  
5. Перейдите на главную страницу приложения (`index.php`) и войдите под админом.
6. **Не забудьте удалить или переместить файл install.php!!!** (не обязательно, но желательно)

---

## 📝 Конфигурация

Файл `config/config.php` содержит:

- Подключение к базе данных: `DB_HOST`, `DB_USER`, `DB_PASS`, `DB_NAME`  
- Константы для системных путей
- Адрес сайта: `SITE_URL`  
- Имя приложения: `APP_NAME` = "Web Writer"

---

## 🛠 Дальнейшее развитие

- Возможно, добавится поддержка комментариев для публичных книг и рейтинг. Но это не точно :)

---

## ❗ Поддержка

Все ошибки и предложения шлите в issue

---

## 📜 Лицензия

Приложение распространяется под лицензией [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).



