Skip to content

Latest commit

 

History

History
235 lines (161 loc) · 10.3 KB

File metadata and controls

235 lines (161 loc) · 10.3 KB

File Archive — Русская версия

English version: см. README.md

Python Platform Framework Security Access Modes Status License UI

🖼 Скриншоты

Окно авторизации

Безопасный вход с проверкой пароля.
Позволяет выбрать Полный или Обычный режим работы, а также перейти к изменению пароля.

auth_tab

Вкладка «Скачать»

Отображает все изделия и последние доступные версии.
Пользователь может искать, выбирать изделие и версию, и скачивать файлы (по умолчанию на рабочий стол или в выбранную папку).

download_tab

Вкладка «Добавить»

Доступна в Полном режиме.
Позволяет добавлять новые версии или прикреплять инструкции к существующим или новым группам изделий.

add_tab

Вкладка «Удалить»

Доступна в Полном режиме.
Позволяет удалять отдельные версии или целые группы изделий, с защитой от случайного удаления.

delete_tab


Что нового (v4.2.0)

✨ Новые функции

  • Добавлена поддержка инструкций в формате PDF
    Теперь вы можете прикреплять файлы с инструкциями в формате PDF к группам версий.

  • Добавлена кнопка «Открыть инструкцию»
    Файлы с инструкциями теперь можно открывать прямо из приложения, не переходя в папку с ними вручную.

🐞 Исправление ошибок

  • Исправлена проблема с обновлением таблицы
    В некоторых случаях таблица некорректно обновлялась после определенных действий пользователя. Эта проблема устранена.

  • Исправлена проблема с неправильным отображением расширений файлов с инструкциями
    Расширение файлов с инструкциями иногда отображалось некорректно. Логика отображения была исправлена.

  • Исправлена проблема, из-за которой интерфейс оставался неактивным после загрузки файла
    Из-за ошибки с блокировкой состояния пользовательского интерфейса после загрузки версии или инструкции интерфейс переставал отвечать на запросы. Теперь это исправлено.

  • Исправлена некорректная работа уведомлений после удаления группы
    Иногда после удаления группы версий уведомления отображались некорректно. Эта проблема устранена.

--

📥 Процесс скачивания

  1. Выберите изделие одним щелчком в таблице
    (автоматически выбирается последняя доступная версия)

  2. Дополнительно: дважды нажмите на изделие, чтобы открыть список версий
    и выбрать любую предыдущую версию, если она ранее была загружена

  3. Выберите путь сохранения:

    • по умолчанию файл скачивается на рабочий стол
    • при необходимости можно указать другую папку
  4. Нажмите Скачать
    Выбранная версия будет расшифрована и сохранена по указанному пути


📌 Обзор

File Archive обеспечивает безопасное, структурированное хранение, обновление, распространение и скачивание версионных файлов и технической документации.

Приложение использует пользовательские криптографические ключи, а также поддерживает разные режимы доступа для инженеров и производственного персонала.

Подходит для систем, где важны безопасность, контроль доступа, целостность и актуальность версий.


🎯 Основной функционал

✅ Версионное хранение файлов

  • группировка по изделиям
  • версии внутри каждой группы
  • автоматическое определение последней версии
  • файлы хранятся зашифрованными

✅ Два режима работы

🔐 Полный режим (после ввода пароля)

  • добавление новых версий
  • добавление .doc, .docx и .pdf файлов инструкций
  • удаление версий или групп
  • управление структурой
  • для инженеров и технологов

✅ Обычный режим

  • вкладки Добавить/Удалить видны, но отключены
  • можно только скачивать
  • для рабочих/операторов

✅ Поддержка файлов с инструкций

Можно прикреплять инструкцию к каждому изделию в форматах: DOC, DOCX и PDF.

✅ Открытие файлов с инструкцями

Открывайте файлы с инструкциями прямо из приложения

✅ Особенности UI/UX

  • интерфейс PyQt5
  • навигация по уровням
  • поиск среди версий
  • индикаторы выполнения
  • всплывающие уведомления

🧩 Кому подходит это приложение

✅ Инженерным отделам
✅ Производству и цехам
✅ Компаниям с контролируемой документацией
✅ Организациям, где важны версии файлов
✅ Предприятиям с разделением доступа (инженеры / рабочие)


🧠 Что этот проект демонстрирует обо мне

✅ Python ООП
✅ Разработку десктоп-приложений
✅ PyQt GUI и сигнально-слотовую модель
✅ Архитектуру MVC
✅ Многопоточность для длительных операций
✅ Безопасную работу с файлами
✅ Продуманный UX и управление состоянием
✅ Структурирование и документирование
✅ Инженерное мышление и практическую применимость


🏗 Архитектура

┌──────┐     ┌────────────┐     ┌───────┐
│ View │ <-- │ Controller │ --> │ Model │
└──────┘     └────────────┘     └───────┘

🛠 Стек технологий

  • Python 3.10
  • PyQt5
  • cryptography (Fernet)
  • PyYAML
  • threading
  • pathlib

🔧 Установка

git clone https://github.com/pntech-dev/File-Archive.git
cd File-Archive
pip install -r requirements.txt

🔑 Генерация ключей и инициализация

  1. Запустите скрипт генерации ключей: python generate_keyfiles.py
  2. config.yaml создаётся на основе config_template.yaml
  3. Ключи сохраняются локально и не коммитятся
  4. После этого приложение готово к работе

🏗 Сборка (опционально)

pyinstaller "File Archive.spec"

📂 Структура проекта

(структура аналогична английской версии)


🔒 Модель безопасности

✅ Шифрование Fernet
✅ Отсутствие хранения паролей в открытом виде
✅ Ключи не включены в репозиторий
✅ Инициализация под конкретного пользователя
✅ Безопасно для внутреннего использования


🚦 Статус проекта

✅ Завершён
✅ Поддерживается при необходимости
❌ Активная разработка не ведётся


📜 Лицензия

MIT License

Copyright (c) 2025 Pavel (PN Tech)


👤 Автор

Pavel (PN Tech)
Python desktop и web разработчик, UI/UX дизайнер, инженер-электроник