Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Personal Resource Workspace

Рабочее пространство ресурсов, которые пользователь описывает тэгами и находит через закреплённую навигацию. Ниже зафиксирован язык модели приложения.

## Язык

**Ресурс**:
Сохранённый объект рабочего пространства, например ссылка, файл или заметка.

**Тэг**:
Именованная характеристика ресурса. Один ресурс может иметь несколько тэгов; в первой версии тэг не имеет визуальных атрибутов.
_Избегать_: коллекция, когда имеется в виду характеристика ресурса.

**Предопределённый тэг**:
Тэг «Корзина» или «Входящие», который существует в рабочем пространстве и не может быть удалён пользователем.

**Входящие**:
Предопределённый тэг для ресурса без пользовательских тэгов при создании. При назначении первого пользовательского тэга снимается автоматически, но может быть назначен вручную.

**Корзина**:
Предопределённый тэг для удалённого ресурса. Остальные тэги ресурса сохраняются до восстановления или окончательного удаления.

**Сохранённый поиск**:
Именованный набор обязательных тэгов для поиска ресурсов, представленный узлом боковой панели со своим цветом и иконкой. Узлы организованы в дерево только для отображения; их расположение не влияет на результаты поиска и связи ресурсов с тэгами.
_Избегать_: коллекция, закреплённый тэг, когда имеется в виду узел навигации.

**Обзор «Все ресурсы»**:
Доступный без сохранения поиск без обязательных тэгов, показывающий ресурсы вне Корзины.
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,30 @@

[English](docs/README.en.md) · [Сценарии пользователя](docs/user-stories.md) · [Запуск из исходников](docs/development.md) · [Устройство проекта](docs/architecture.md)

![Personal Resource Workspace — общий вид приложения](assets/personal-resource-workspace.png)

## Что уже работает

- **Всё под рукой:** добавляйте веб-ссылки, файлы, папки, приложения, текстовые и графические фрагменты, команды. Ресурсы сохраняются локально и доступны после перезапуска.
- **Узнаваемые карточки:** смотрите ресурсы в сетке с обложками, значками и превью либо переключайтесь на компактный список.
- **Удобная организация:** создавайте коллекции, задавайте им цвет и значок, отмечайте важное как избранное. Раздел «Все ресурсы» показывает содержимое целиком.
- **Тэги и сохранённые поиски:** назначайте ресурсу несколько тэгов, объединяйте их условием «И» и сохраняйте именованные поиски в дереве боковой панели. «Все ресурсы» показывает активные ресурсы без дополнительных условий.
- **Быстрый доступ:** ищите по каталогу и сортируйте по названию или дате изменения. Открывайте ресурсы из карточки и редактируйте их через контекстное меню.
- **Простое добавление:** перетаскивайте файлы, папки и веб-ссылки в окно. При создании ресурса приложение может подставить содержимое буфера обмена.
- **Корзина:** случайно удалённый ресурс сначала попадает в корзину; её можно очистить отдельно.
- **Входящие и корзина:** новые ресурсы без пользовательских тэгов попадают во «Входящие»; удаление добавляет тэг «Корзина» с сохранением остальных тэгов. Ресурс можно восстановить или удалить окончательно.
- **Portable-данные:** новые сборки хранят базу и визуальные файлы в `content` рядом с приложением. В «Настройках» можно выбрать другой каталог; вид и сортировка сохраняются в БД.

Приложение находится в активной разработке. Скриншот показывает один из вариантов наполнения личного пространства; ваши данные и карточки будут другими.
Приложение находится в активной разработке.

## Попробовать

Скачайте [предварительную версию v0.1.1 для Windows x64](https://github.com/web2bear/PersonalResourceWorkspace/releases/tag/v0.1.1): распакуйте ZIP целиком и запустите `PersonalResourceWorkspace.App.exe`. Это переносимая версия без установщика и цифровой подписи. При желании проект можно [собрать из исходников](docs/development.md).

Версия v0.1.1 выпущена до реализации portable-хранения; описанное выше расположение `content` относится к текущему исходному коду и будущим сборкам.
При первом запуске новой схемы старая база коллекций сохраняется в `Data/workspace.collections-backup-*.db`, после чего создаётся пустое рабочее пространство. Данные старых коллекций автоматически не переносятся.

## Идеи на будущее

Это направления развития, **не реализованные функции и не обещание сроков**:

- вложенные коллекции и более гибкое перемещение ресурсов между ними;
- дополнительные визуальные атрибуты тэгов и выбор стартового поиска;
- ручной порядок карточек и дополнительные способы навигации;
- быстрый вызов пространства глобальной горячей клавишей;
- более удобная работа с текстовыми и графическими фрагментами;
Expand Down
12 changes: 6 additions & 6 deletions docs/README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,28 @@

[Русский](../README.md) · [Build and run](development.md) · [Architecture](architecture.md)

![Personal Resource Workspace app overview](../assets/personal-resource-workspace.png)

## What works today

- **One place for your resources:** save web links, files, folders, applications, text and image snippets, and commands. Your catalog persists locally across restarts.
- **Visual browsing:** recognize cards by their covers, icons, and previews, or switch to a compact list.
- **Collections and favorites:** create collections, choose their color and icon, mark resources as favorites, and see everything in one view.
- **Tags and saved searches:** assign several tags to a resource, combine them with AND, and organize named searches in the sidebar tree. The All Resources view shows active resources without extra conditions.
- **Find and open quickly:** search the catalog, sort by title or modification date, open resources from their cards, and edit them through a context menu.
- **Easy capture:** drop files, folders, or web links into the window. Creating a resource can also prefill it from the clipboard.
- **Trash:** deleted resources first go to Trash, which you can empty separately.
- **Inbox and Trash:** untagged new resources enter Inbox. Deletion adds the Trash tag while preserving other tags; resources can be restored or permanently removed.

The app is under active development. The image shows one example workspace; your content will differ.
The app is under active development.

## Try it

Download the [v0.1.1 prerelease for Windows x64](https://github.com/web2bear/PersonalResourceWorkspace/releases/tag/v0.1.1), extract the entire ZIP, and run `PersonalResourceWorkspace.App.exe`. This is a portable build without an installer or digital signature. You can also [build from source](development.md).

The release predates this source implementation. On first launch with the new schema, the previous collections database is backed up as `Data/workspace.collections-backup-*.db`, then a new empty workspace is created. Existing collection entries are not imported.

## Ideas for the future

These are **possibilities, not shipped features or delivery commitments**:

- nested collections and easier movement between them;
- optional visual attributes for tags and a configurable startup search;
- manual card ordering and more navigation options;
- a global keyboard shortcut to bring the workspace forward;
- richer workflows for text and image snippets;
Expand Down
5 changes: 5 additions & 0 deletions docs/adr/0004-tags-and-saved-searches.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Разделить тэги ресурсов и сохранённые поиски панели

Статус: принято, реализуется в текущей ветке.

Решено заменить единственную коллекцию ресурса множеством тэгов, а боковую панель строить из самостоятельных именованных сохранённых поисков. Поиск хранит набор обязательных тэгов, собственное имя и оформление. Дерево панели задаёт только визуальную организацию, поэтому перемещение узла не меняет ни тэги ресурсов, ни результаты других поисков. Такой выбор позволяет повторно использовать тэг в разных сочетаниях и не связывает модель ресурсов с расположением навигации. Согласованные правила поведения описаны в [проекте модели](../tag-model-design.md).
4 changes: 3 additions & 1 deletion docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@
| `src/PersonalResourceWorkspace.App` | WinUI UI, startup, composition root |
| `src/PersonalResourceWorkspace.Domain` | Domain boundary |
| `src/PersonalResourceWorkspace.Application` | Use cases and ports |
| `src/PersonalResourceWorkspace.Infrastructure` | SQLite, files, migrations, search |
| `src/PersonalResourceWorkspace.Infrastructure` | SQLite, files, workspace initialization and backup |
| `src/PersonalResourceWorkspace.Windows` | Windows shell, clipboard, activation, visuals |
| `tests` | Unit and isolated SQLite integration tests |

По умолчанию данные находятся в `content` рядом с исполняемым файлом: БД — `Data\workspace.db`, пользовательские изображения — `Data\Visuals\user`, автоматически полученные превью — `Data\Visuals\cache`. Все пользовательские настройки, кроме пути к каталогу данных, хранятся в таблице `Settings` БД. Исторический каталог `%LOCALAPPDATA%\PersonalResourceWorkspace` копируется при первом запуске с пустым portable-каталогом. / By default, app data lives in `content` beside the executable. The database is `Data\workspace.db`; user images and generated previews are under `Data\Visuals`. User preferences live in SQLite. A legacy profile is copied on first launch into an empty portable data root.

Новая схема хранит ресурсы, тэги, связи ресурса с тэгами, сохранённые поиски и их обязательные тэги в отдельных таблицах с внешними ключами. При обнаружении старой схемы создаётся проверенная резервная копия `workspace.collections-backup-*.db`, затем новая пустая база. Переноса записей коллекций нет. / The new schema separates resources, tags, resource tags, saved searches, and required search tags. A legacy database is backed up before a fresh empty database is created; collection rows are not imported.

Подробнее / Further reading: [project specification](../PROJECT.md), [portable storage decision](adr/0003-portable-data-and-settings.md), [architecture review](../architecture-review.md).
Loading
Loading