VaultMaster is a web password manager that allows storage and retrieval of web credentials. It is built using React, FastAPI, PostgreSQL, and AWS, designed to offer high security and ease of use. App features time-based OTP MFA, checks of whether user passwords have appeared in data breaches, and end-to-end encryption of all information.
Here is a look at VaultMaster in action:
Page where users enter their credentials. This page provides a new user with a path to register.
Allows the user to create a new account. The user will also be prompted to scan a QR code with their mobile authentication app.
Dashboard to view, create, delete, and edit credentials. All passwords in VaultMaster are run through the Have I Been Pwned database to check for appearence in breaches as shown in above screenshot with the user attempting to use "password."
Allows users to edit their profile information or delete their profile.
Allows user to export all stored passwords in a plaintext JSON file. Also has Generate Strong Password utility.
To install and run VaultMaster using Docker, follow these steps:
- Clone the Repository
- Create a local .env.dev file
The following values must be defined in a file called
.env.dev
, in the repo's root directory, before the app will run locally:POSTGRES_USER= # arbitrary string POSTGRES_PASSWORD= # arbitrary string SECRET_KEY= # arbitrary string SECRET_ADMIN_KEY= # arbitrary string ACCESS_TOKEN_EXPIRE_MINUTES= # arbitrary integer
- Build the Docker Images:
- Ensure Docker is installed on your machine.
- Build the Docker images for the frontend, backend, and database services:
docker-compose build
- Run the Docker Containers:
- Start the containers:
docker-compose up
- Access the Application:
- The application should now be running at localhost:3000 for local development purposes.
Visit vaultmaster.site to use the production version of the app.
We welcome all contributions. Please see our Contribution Guidelines for more information. (TODO)
Developed by Will Lambeth, Elliott Larsen, and Myles Penner for OSU CS467.
This project is published under the MIT License.