๐ OneLock Project Overview
โจ Inspiration
OneLock was inspired by the need for a simple, secure, and user-friendly file protection solution. Many users struggle with overly complex encryption tools, which led us to create a tool that empowers users to safeguard sensitive files with minimal effort. Our mission: protect privacy in an age of rising digital threats with zero friction.
โ๏ธ What It Does
OneLock is a PyQt5-based desktop application that enables users to lock and unlock files using a 6-digit PIN.
- ๐ Locked files are moved to a hidden directory
- ๐ Replaced with harmless placeholder files
- ๐ฑ๏ธ Features a drag-and-drop interface for file locking
- ๐ PIN-protected unlocking with custom dialogs
- ๐งฐ System tray access for smooth background operation
๐๏ธ How We Built It
๐งช Tech Stack
- Language: Python
- GUI Framework: PyQt5
- UI Design: Qt Designer (
file_locker.ui) - Styling: External stylesheet (
styles.qss)
๐งฑ Architecture
UniversalFileLocker: Main GUI class using Qt.uifileLoginDialog&UnlockDialog: Custom PIN input dialogspickle: Persistent storage for PIN & metadatashutil: File movement operationsQSystemTrayIcon: System tray integrationctypes: Hidden file attributes (Windows)
๐ ๏ธ Development Process
- Designed UI in Qt Designer
- Built modular Python code for logic
- Moved all styles to a
.qssfile for clean separation
๐ง Challenges We Ran Into
- ๐งฉ UI Mapping: Converting code-based UI to
.uifiles - ๐จ Styling: Achieving consistency across dialogs
- ๐๏ธ File Security: Managing safe file transfers & hidden paths
- ๐ฑ๏ธ Drag-and-Drop: Handling MIME data for file URLs
- ๐ PIN Storage: Pickle is fast but not secure enough
๐ Accomplishments We're Proud Of
- โ Clean, modern UI with Qt Designer integration
- โ External styling for scalable GUI management
- โ System tray support for background file protection
- โ Intuitive UX: Drag-and-drop + PIN = smooth operation
- โ Robust error handling with logs and dialogs
๐ What We Learned
- ๐ก Qt Designer workflow + signal mapping
- ๐ก Styling best practices using
.qssfiles - ๐ก Secure file operations across OS platforms
- ๐ก Importance of user-centric, intuitive design
- ๐ก Value of modular architecture for maintainability
๐ What's Next for OneLock
- ๐ Encrypted PIN storage instead of pickle
- ๐งช Cross-platform support (macOS, Linux compatibility)
- ๐ File encryption layer to protect file contents
- โ๏ธ Cloud sync for locked file backup
- ๐จ UI themes and accessibility improvements
- ๐ Project templates for knowledge transfer & documentation
๐งฎ Bonus: Math in OneLock (LaTeX Examples)
We used LaTeX-style math for planning security formulas and design algorithms:
- Area of secure block:
$$ A = \pi r^2 $$
- Encryption strength (illustrative formula):
$$ S = 2^k \quad \text{where } k = \text{key length} $$
- Access threshold condition:
$$ \text{Access Granted} \iff \text{Input PIN} = \text{Stored PIN} $$
โ Task Checklist
- [x] Drag-and-drop interface
- [x] PIN-based file locking
- [x] System tray operation
- [x] External
.qssstyles - [ ] Replace pickle with encrypted storage
- [ ] Add file encryption
- [ ] Cloud storage sync
Built With
- pickle
- pyqt5
- python
- qss
- qtdesigner
- windows-10


Log in or sign up for Devpost to join the conversation.