Welcome to Last-Pass – your open-source, full-stack password manager!
This app makes it easy to securely store, manage, and retrieve your passwords with a modern web experience.
-
🔐 User Authentication
Register, login, and logout — all secured with JWT tokens and bcrypt password hashing. -
🗄️ Password Vault
Store your secrets (like passwords or notes) in a personal vault.
Easily add or remove entries – your data, your control! -
🖼️ Profile Picture Upload
Upload a profile photo using a simple form!
Powered by Multer for file handling and Cloudinary for secure, fast image storage. -
🌩️ Cloud Storage
All uploaded images are stored on Cloudinary, ensuring speed and reliability. -
📲 RESTful API
Built with best practices for scalability and security. -
⚛️ Modern Frontend
A beautiful, responsive UI built using React and TailwindCSS.
Layer | Tech Stack | Purpose |
---|---|---|
Backend | Node.js, Express.js, MongoDB | API, server logic, data storage |
ORM | Mongoose | MongoDB modeling & queries |
Security | JWT, bcrypt, dotenv | Auth, password hashing, config |
File Upload | Multer, Cloudinary | User profile images, cloud storage |
Frontend | React, Vite, TailwindCSS | UI/UX, fast dev build |
Utilities | cookie-parser, cors | Cookie management, cross-origin access |
- Navigate to your profile page.
- Select an image file using the "Choose File" button.
- Click "Upload" – your picture will be processed by Multer and securely stored on Cloudinary.
- See your new avatar instantly!
sequenceDiagram
participant User
participant Frontend
participant Backend
participant Cloudinary
User->>Frontend: Selects image & submits form
Frontend->>Backend: Sends file via POST /api/v1/user/profile
Backend->>Multer: Handles file upload
Multer->>Cloudinary: Uploads image
Cloudinary-->>Backend: Returns image URL
Backend-->>Frontend: Sends updated user data
Frontend-->>User: Shows new profile picture
- Your secrets are always encrypted at rest.
- Seamless user experience: Fast, modern, and mobile-ready.
- Open-source: Fork it, improve it, use it your way!
- Try registering a new account.
- Add a few passwords to your vault.
- Upload a custom profile photo.
- Log out and see how your session is protected.
Made with ❤️ using Node.js, React, and all the latest web tech!