Shrine is a web-based application that helps safely store and retrieve passwords with ease.
Here's a demo (may not be up-to-date).
- Storing basic password infos: name, url, username, password, two factor authentication secret
- End-to-end encryption with end-to-end AES-GCM 128 encryption, salted hashing, and PBKDF2 SHA-256
- Dynamic TOTP code generation
- Search all stored items by name, username, and url
- Password generation with multiple tweaks
- Password breach report (while preserving k-anonymity)
- Node.js (tested on v16.13.0)
- npm (tested on 8.1.0)
- A local or remote MongoDB
For convenience, here's one:
mongodb+srv://randygu:[email protected]/shrineDB?retryWrites=true&w=majority
with no guarantee.
For local development, first provide the server with a working MongoDB url: navigate to .env, change item "DB_URL"
Then start the server with:
cd server
npm install
npm start
At last start the client:
cd shrine-web
npm install
npm start
You can now access the web shrine in your browser at http://localhost:3001
.
After successfully running app locally, follow instructions here. Follow the "Other Solution" and ("Serving Apps with Client-Side Routing")[https://create-react-app.dev/docs/deployment/#serving-apps-with-client-side-routing] section.
You can also use the "deploy" branch.
Shrine is a collaboration project for UCLA CS35L course.