Анонс: кросс-платформенная разовидность TreePad
Примерно год назад я решил заняться самообразованием и научиться писать проекты с использованием Qt. Практический опыт получать лучше всего в процессе написания практической же задачи.
Тк. TreePad (cистема для хранения документов), о котором я уже писал в своем блоге, меня окончательно перестал устраивать, я решил переписать его, добавив необходимую мне функциональность и выкинув ненужную.
В результате я написал собственный вариант, который вам и представляю. Назначение точно такое же как и у оригинального TreePad: упорядоченное хранение и быстрый поиск необходимых документов. Далеко не все в нем реализовано максимально эффективно, но я продолжаю улучшать его каждый день.
Отличия от прототипа следующие:
- Продукт написан на Qt, посему полностью кросс-платформенный.
- Все данные хранятся в таблицах SQL-сервера, способ хранения абсолютно прозрачный в отличие от пропиетарного формата TreePad. Пользователь может использовать любой уже имеющийся SQL-сервер, предусмотрен импорт данных, предварительно экспортированных из оригинального TreePad.
- Поддержка неограниченного количества серверов: данные можно держать на разных серверах и переключаться между ними.
- Поддержка неограниченного количества деревьев документов на каждом сервере.
- Поддержка шифрования "на лету", шифрование обеспечивается OpenSSL библиотекой на клиентской части, поддерживаются все популярные методы симметричного шифрования.
- Поддержка работы с сервером через создаваемый SSH-тоннель.
- Защита от случайного удаления или модификации данных.
- Безопасное удаление временных файлов и импортируемых в систему данных.
- Замена документов в БД (в оригинальном TreePad нужно удалить старый документ, а затем добавить новый).
- Функция "добавить и удалить", которая добавляет документ в систему и удаляет его с диска после успешного добавления.
- Поиск документов включает ряд продвинутых опций (использование регулярных выражений и поиск внутри аттачментов).
- Детальный лог-файл действий пользователя.
Планируется:
I. Сделать сборку и тестирование проекта под Windows
II. "Причесать" английский в исходном коде и интерфейсе.
III. Добавить следующую функциональность:
- Прямое сканирование документов прямо в базу данных, работа с предопределенным набором параметров сканирования.
- "умный" слайсер для отсканированных документов (те, кто сканировал торговые чеки десятками, поймут).
- Автоматическая синхронизация документов с внешними источниками (DropBox, Google documents и пр.)
- Активная поддержка форматирования для описания документов. (сейчас она только пассивная)
- Быстрый бэкап данных прямо из системы (сейчас для этого необходимо использовать сторонний скрипт/средства сервера).
- Библиотека шаблонов документов для быстрого создания новых документов.
- отсылка документов адресатам прямо из программы.
- Планируется написать собственный аналог WISO (кто работал, тот в курсе) c учетом специализации фрилансеров и сделать соединение с этим продуктом.
Бинарники я выкладывать не стал, т.к. не сделан пока п. I, исходники же можно регулярно брать здесь
А теперь картинки.
Сама программа.
Программа настройки и установки.
Да, все это распространяется "as is", разумеется. Лично я пользуюсь этой штукой в личных целях каждый день около 5-ти месяцев, перетащив в нее документы из старой версии TreePad. Статистика выглядит вот так:
select count(*) from node_tbl;
+----------+
| count(*) |
+----------+
| 2025 |
+----------+
select count(*) from attachments;
+----------+
| count(*) |
+----------+
| 3215 |
+----------+
Общий размер базы - около 2 Гб.
Да, совсем забыл: если кто хочет активно поучаствовать - пишите. Идеи по улучшению так же активно приветствуются.
- cynic's blog
- Login to post comments