Russian version available: README_RU.md
Desktop application for encrypted versioned storage, distribution, and controlled access to engineering files within an organization.
Secure login screen with password authentication.
Allows switching between Full Access mode and Standard mode, and provides an option to change the password.
Displays all products and their latest available versions.
Users can search, select a product, choose a version, and download files (automatically to Desktop or to a custom location).
Available in Full Access mode.
Allows you to add new versions or attach instructions to existing or new product groups.
Available in Full Access mode.
Allows deleting specific versions or entire product groups, with confirmation protection to prevent accidental removal.
-
Added support for PDF instructions
Now you can attach files with instructions in PDF format to groups of versions. -
Added βOpen Instructionβ button
Instruction files can now be opened directly from the application, without navigating to their folder manually.
-
Fixed a table refresh issue
In some cases, the table did not update correctly after certain user actions. This behavior has now been resolved. -
Fixed incorrect display of instruction file extensions
The file extension for instruction documents was sometimes shown incorrectly. This display logic has been corrected. -
Fixed an issue where the interface remained disabled after uploading a file
A UI state-lock bug caused the interface to stay unresponsive after uploading a version or instruction. This is now fixed. -
Fixed incorrect notification behavior after deleting a group
Notifications were sometimes displayed incorrectly following the deletion of a version group. This issue has been corrected.
-
Select a product by clicking once in the table
(the latest available version is selected automatically) -
Optional: double-click a product to open version listing
and select any previous version if it was uploaded earlier -
Choose a save location:
- by default, the file will be downloaded to the Desktop
- or a custom folder can be selected
-
Click Download
The selected version is decrypted and saved to the chosen destination
This workflow allows engineers to retrieve current releases
and operators to safely download only approved versions.
File Archive provides a secure and structured way to store, update, distribute, and retrieve versioned project files and technical documentation.
The application ensures data confidentiality using user-generated cryptographic keys and supports different access modes for engineers and production personnel.
Designed for environments where controlled access, integrity, and up-to-date versions, secure distribution is critical.
- Organized by groups (products) and versions
- Automatic latest version detection
- Encrypted at rest
- Add new versions
- Add
.doc,.docxand.pdfinstruction files - Delete versions or entire groups
- Manage archive structure
- Engineers / supervisors
- Tabs Add/Delete are visible but disabled
- Users can only download
- Operators / factory workers
You can attach instructions to each product in the following formats: DOC, DOCX and PDF.
Open the files with instructions directly from the application.
- Fernet symmetric encryption
- User-generated keyfile and password file
- No shared keys in repository
- Encrypted files stored with
.encextension
- PyQt5 interface
- Layered navigation
- Search across all versions
- Progress indicators
- Action notifications
β
Engineering departments
β
Manufacturing and production environments
β
Teams distributing controlled documentation
β
Organizations requiring secure versioned file access
β
Workplaces with separated access levels (engineers vs operators)
β
Python OOP
β
PyQt GUI engineering
β
MVC architecture
β
Multithreading for blocking operations
β
Secure file handling
β
UX logic and state management
β
Clean code and documentation discipline
β
Configuration & deployment awareness
β
Real-world application thinking
ββββββββ ββββββββββββββ βββββββββ
β View β <-- β Controller β --> β Model β
ββββββββ ββββββββββββββ βββββββββ
UI Layer Signal/Slot Encryption Widgets coordination File ops State visuals Flow logic Versioning
- 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- Run the key generation script:
python generate_keyfiles.py - A
config.yamlfile is created based onconfig_template.yaml - Keys are stored locally and never committed
- Application can now operate securely
The application can be packaged using PyInstaller with the provided spec:
pyinstaller "File Archive.spec"FILE-ARCHIVE/
β app.py
β config_template.yaml
β generate_keyfiles.py
β File Archive.spec
β requirements.txt
β README.md
β
ββ mvc/
β ββ controller.py
β ββ model.py
β ββ view.py
β ββ __init__.py
β
ββ classes/
β ββ notifications.py
β ββ password_dialog.py
β ββ __init__.py
β
ββ resources/
β ββ resources.qrc
β ββ resources_rc.py
β ββ icon.ico
β ββ checkbox_check.svg
β ββ combobox_arrow.svg
β ββ auth/
β ββ notifications/
β ββ radio_buttons/
β ββ search/
β ββ tabs/
β
ββ ui/
β ββ (Qt Designer UI files)
β
ββ screenshots/
ββ (application images)
β
Encrypted storage
β
No plaintext password saving
β
No cryptographic keys in repository
β
User-specific initialization
β
Safe for internal distribution
β
Stable
β
Maintained when needed
β
Bug fixes and improvements possible
β No active feature expansion planned
MIT License
Copyright (c) 2025 Pavel (PN Tech)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files...
Pavel (PN Tech)
Python desktop and web developer, UI/UX designer, electronics engineer



