CodeVault
Web Development
CodeVault is a password management website, designed to help users have a convenient and centralized way to access and store their account credentials. CV also offers users the ability to generate a password and set the password requirements, which is beneficial for their account’s security and is generally considered a good password practice. Similar products that currently exist include Bitwarden and Apple’s Password app.
Duration: 3 Months
Team Size: 2
Primary Role: Frontend & Backend

Our Audience
The intended audience of our website is people who like a singular location to manage all their account credentials.

Meet Matt Smith
Age: 27
Education: Masters in Cybersecurity
Hometown: Austin, TX
Occupation: Cybersecurity Analysis
As a cybersecurity analyst, Matt likes to have good password practices that keep his accounts secure. Because Matt has several different accounts, Matt prefers to have a way to manage all of his accounts in one spot, as well as having the option to generate passwords that lead to better security.
User Journey
Register and Login
Users will be asked for their account information to log in. If the user is new to the website, they will be asked for information such as their name.
Dashboard
Once successfully logged in, users will be directed to their dashboard where all their accounts are listed. Additionally, on the right of the screen is the password generator.
Manage Accounts and Profile
From the dashboard, users will be able to create, delete, and edit the account information, as well as edit their profile information.

Wireframes

Development
Languages and Framework Used: Spring Boot, Java, HTML, CSS, JS, MySQL, Thymeleaf
For this project, my role was primarily handling both frontend and backend responsibilities. In the project, we used dependencies including Spring Web, Thymeleaf, Spring Security, and Spring Data JPA. For both the user and credentials, controllers were used to handle endpoints and manage CRUD operations. When creating the design of the website, we used HTML, CSS, and JavaScript. We also integrated Thymeleaf into these pages, as Thymeleaf displayed the user's accounts stored.
For our database, I used MySQL and created two tables within our database, CVDB. The user table stores the user’s ID, email, login, and password, in which the ID is used as a primary key. For the credential table, it stores the account, the account’s ID, the date of which it was created, the password, username, and user’s ID. In the credential table, the user ID is used to identify which credentials belong on the specified user’s dashboard.
To test that the server side was properly interacting with the database, I used Postman by sending POST and DELETE requests.
Final Code
To look at the final code, please refer to the Github link!