Project Proposal: SecureVault
An Object-Oriented Password Manager with a Graphical User Interface
1. Objective
This project proposes the design and implementation of SecureVault, a desktop password management application. The primary goal is to apply and demonstrate core Object-Oriented Programming (OOP) principles to build a secure, reliable, and user-friendly system. Using C++, the project will feature a fully graphical user interface (GUI) rendered with OpenGL, a lightweight XOR encryption module for data security, and file-based persistence to ensure user data is saved between sessions.
2. Problem Statement
In the digital age, users manage a vast number of online accounts, each requiring a unique and strong password. The common pitfalls of password management—using weak passwords, reusing passwords, or storing them insecurely (e.g., in plain text files)—create significant security risks. SecureVault aims to solve this by providing a centralized and encrypted repository for credentials, accessed through an intuitive graphical interface, thereby promoting better security hygiene.
3. Core OOP Concepts in Practice
SecureVault is fundamentally an object-oriented project. Click on each pillar to learn more.
Encapsulation
▼Abstraction
▼Inheritance
▼Polymorphism
▼5. Key Features
Core functionalities of the SecureVault application.
Master Authentication
Secure login screen to authenticate the user.
Full CRUD Functionality
Create, Read, Update, and Delete password entries.
Multi-Field Entries
Stores website, username, password, and backup code.
XOR Encryption
Encrypts all credentials stored in the data file.
Persistent Storage
Saves credentials to a local file for persistence.
Fully Interactive GUI
All interactions handled through a custom OpenGL interface.
6. Scope
Defining the boundaries of the project.
In Scope
- ✔ Complete GUI using OpenGL
- ✔ XOR encryption for data at rest
- ✔ File-based data persistence
- ✔ Master login mechanism
- ✔ Full credential lifecycle management (CRUD)
- ✔ Comprehensive error handling via GUI feedback
Out of Scope
- ✖ Network synchronization
- ✖ Multi-user support
- ✖ Advanced encryption (e.g., AES, RSA)
- ✖ Cloud storage integration
- ✖ Browser or mobile integration
- ✖ Biometric authentication
System Architecture
A visual representation of SecureVault's component layers and data flow.
User Interaction Layer (GUI)
User ↔ Mouse/Keyboard Input ↔ OpenGL/GLFW
Application Logic Layer
Data Persistence Layer
Encrypted Data ↔ File System (Save/Load)
Submission Details
6. Submission Details
Proposer (Student)
Name: Tijul Kabir Toha
Student ID: 240113
Email: toha.240113@s.pust.ac.bd
GitHub: tijulkabir
Website: tijulkabir.me
Instructor
Name: Dr. Md. Toukir Ahmed
Email: toukirahmedreal@pust.ac.bd
Assistant Professor
Department of Computer Science and Engineering
Pabna University of Science and Technology
Pabna, Bangladesh