- Amil Shahul (Tech Lead): Led the technical aspects of the project, ensuring the software's functionality and security.
- Mit Damniwala (Documentation Lead): Was responsible for overseeing the creation and maintenance of project documentation.
- Ciril Biju Joseph (Project Manager): Managed the overall project, coordinating between team members and ensuring timely completion.
In today's digital era, managing passwords securely had become more crucial than ever. Our Password Management Software was designed to tackle this challenge head-on, providing users with a robust solution for creating, storing, and managing their passwords efficiently.
Weak or reused passwords can lead to severe consequences, including identity theft and data breaches. Effective password management was not just a convenience but a necessity, ensuring that users' online identities and sensitive information remained protected from unauthorized access.
- Enhance Security: Provided users with a secure platform to store and manage their passwords, utilizing advanced encryption techniques.
- Improve Convenience: Simplified the process of managing multiple passwords, allowing users to access their credentials with ease.
- Increase Efficiency: Streamlined the process of creating, updating, and retrieving passwords, saving users time and effort.
- Individual Users: People looking for a reliable solution to manage their personal passwords and secure their online presence.
- Small to Medium Businesses (SMBs): Organizations in need of a centralized password management system to safeguard their company's sensitive information.
- Add Credentials: Allowed users to add a website's username and password to the database for secure storage.
- View Credentials: Users could view all stored websites and usernames in the database for easy access.
- Delete Credentials: Provided the option to delete a website's username and password from the database, ensuring users could manage their stored information.
- Update Username: Users could change the username associated with a website, maintaining up-to-date information.
- Update Password: Allowed users to change a website's password, ensuring strong and current security measures.
- Delete User Account: Users had the option to delete their user account, which removed all saved usernames and passwords from the system.
- Secure storage: Encrypted and stored passwords safely.
- Login authentication: Ensured only authorized users accessed the manager.
- Password retrieval: Retrieved passwords upon user request.
- Password update: Allowed users to update stored passwords.
- Usability: Intuitive graphical user interface for ease of use.
- Performance: Fast response times for storing and retrieving passwords.
- Scalability: Ability to handle an increasing number of users and passwords.
- Security: High-level encryption and security measures to protect data.
- Programming Language: Java
- Database: SQL for storing user and password information
- Encryption: Advanced Encryption Standard
- Project duration: 42 days
- Team size: 3 group members
- Client-Server Model: The system operated on a client-server model where the client application communicated with a server hosting a centralized database.
- Layered Architecture: Comprised three main layers:
- Presentation Layer: The user interface for interaction.
- Logic Layer: Core functionality and logic for password management.
- Data Access Layer: Handled communication with the database for data storage and retrieval.
- User Interface: Provided a seamless and intuitive interface for users to interact with the password manager.
- Encryption Module: Utilized advanced encryption algorithms to ensure the security of stored passwords.
- Database Manager: Managed the storage, retrieval, and organization of password data within the database.
- The
App
class contained the main method, which was the entry point of the program. - It created an instance of the
App
class and called thecreateConnection
method to establish a connection with the MySQL database and start the application.
- The
createConnection
method initialized a connection to the MySQL database using JDBC (Java Database Connectivity). - It checked if the
versions
table existed in the database to determine if the database had been initialized. If not, it initialized the database. - It prompted the user to indicate whether they were a new user or an existing user. Based on the input, it either registered a new user or logged in an existing user.
- After successful login or registration, it created an instance of the
Menu
class to display the menu options to the user and allowed them to interact with the password manager.
- The
User
class represented a user in the password management system. It had attributes for the username, password, and user ID. - It provided static methods
registerNewUser
andlogin
for user registration and login, respectively. - The
registerNewUser
method prompted the user for a username and password, checked if the username was already taken, and inserted the new user into the database. - The
login
method prompted the user for their username and password, verified the credentials against the database, and returned aUser
object if the login was successful.
- The
Menu
class provided the user interface for interacting with the password management system. - It displayed a menu with options to add a website, print all websites, delete a website, change a username, change a password, delete the user account, or quit the application.
- It had methods for each menu option, such as
addWebsite
,printAllWebsites
,deleteWebsite
,changeWebsiteName
,changePassword
, anddeleteUser
. - These methods interacted with the database to perform the respective operations, such as adding a new website and password, retrieving all stored websites, updating or deleting records, etc.
- The program used SQL queries to interact with the MySQL database. It used
PreparedStatement
objects to execute SQL queries with parameters. - The
website_data
table stored information about websites and passwords, and thepasswords
table linked users to their stored website data. - The program checked for existing data, inserted new records, updated existing records, and deleted records as needed based on the user's actions.
- This Case below shows adding a new user (shows that a duplicate user cannot be added to the server so each and everyone has a unique username and password), Also shows adding of Three websites and password to the server. (YouTube, Google and Netflix). There are 7 possible steps a user could take when a user is logged in :-
- Demonstrated the functionality of deleting a user, which deleted the entire account and all associated usernames and passwords.
-
The database functionality connected to the password management system.
-
Showed all tables available in the database and the table for passwords containing user and website information.
-
Showed the table of users containing the username and password of each user, and the website data containing the website name and the password for that website.
- The password manager provided secure and efficient management of passwords.
- Featured a user-friendly interface for easy navigation and interaction.
- Employed robust encryption techniques to ensure the security of stored data.
- Java Development Kit (JDK) 8 or higher
- Git (optional, for cloning the repository)
-
Clone the repository:
git clone <repository_url>
-
Navigate to the project directory:
cd PasswordManagementSystem
-
Compile the Java files:
javac *.java
-
Run the application:
java App
Ensure you have a MySQL database running and update the database connection details in the App.java
file:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "YOURPASSWORD");