{"id":31696684,"url":"https://github.com/sanjaykumar200599/password_generator","last_synced_at":"2026-04-29T23:01:30.333Z","repository":{"id":318171756,"uuid":"1070236603","full_name":"sanjaykumar200599/Password_generator","owner":"sanjaykumar200599","description":"Secure Vault is a web app for generating strong passwords and storing them in a personal, encrypted vault. All encryption happens client-side, keeping user secrets private from the server.","archived":false,"fork":false,"pushed_at":"2025-10-05T18:09:35.000Z","size":177,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-13T16:28:20.257Z","etag":null,"topics":["cryptojs","jwt-authentication","mongodb","mongodb-atlas","nextjs","tailwind-css","typescript"],"latest_commit_sha":null,"homepage":"https://password-generator-nine-beta-85.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanjaykumar200599.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T14:44:51.000Z","updated_at":"2025-10-05T18:09:38.000Z","dependencies_parsed_at":"2025-10-05T16:28:09.087Z","dependency_job_id":null,"html_url":"https://github.com/sanjaykumar200599/Password_generator","commit_stats":null,"previous_names":["sanjaykumar200599/password_generator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sanjaykumar200599/Password_generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaykumar200599%2FPassword_generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaykumar200599%2FPassword_generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaykumar200599%2FPassword_generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaykumar200599%2FPassword_generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanjaykumar200599","download_url":"https://codeload.github.com/sanjaykumar200599/Password_generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjaykumar200599%2FPassword_generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32447312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptojs","jwt-authentication","mongodb","mongodb-atlas","nextjs","tailwind-css","typescript"],"created_at":"2025-10-08T17:13:07.802Z","updated_at":"2026-04-29T23:01:30.328Z","avatar_url":"https://github.com/sanjaykumar200599.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Secure Vault - Password Manager (MVP)\n\nSecure Vault is a web application that allows users to generate strong, unique passwords and save them in a personal, encrypted vault. This project emphasizes privacy-first principles by performing all encryption and decryption on the client-side, ensuring the server never has access to plaintext secrets.\n\n---\nDeployed Link: https://password-generator-nine-beta-85.vercel.app/\n\n---\n\nHow to use:(how to run)\n\n## Step 1: Create Your Account (Sign Up)\nThis is the first thing you'll do to get started.\n\nNavigate to the home page of the application.\n\nClick the Sign Up button.\n\nEnter your email address and create a strong Master Password.\n\nClick \"Create Account\".\n\nImportant: Your Master Password is the key to your entire vault. 🔑 Due to the zero-knowledge design, if you forget this password, your encrypted data cannot be recovered.\n\n\n## Step 2: Log In to Your Vault\nOnce your account is created, you can log in.\n\nGo to the Login page.\n\nEnter the email and Master Password you just created.\n\nClick Login. You will be taken to your dashboard.\n\nIf you have Two-Factor Authentication (2FA) enabled, you will be asked to enter a 6-digit code from your authenticator app after entering your password.\n\n\n## Step 3: Generate and Save a New Password\nThis is the main workflow of the application.\n\nOn the dashboard, find the Password Generator card on the left.\n\nAdjust the settings (length, symbols, etc.) to your preference. A new password will be generated automatically.\n\nClick the Copy button next to the generated password.\n\nOn the right side of the dashboard, click the \"+ Add Item\" button.\n\nA modal window will pop up. Fill in the details for the new entry (e.g., Title: \"Google\", Username: \"my-email@gmail.com\").\n\nPaste the password you copied into the \"Password\" field.\n\nClick Save Item. Your new credential is now securely stored in your vault!\n\n\n## Step 4: Manage Your Saved Items\nOnce you have items in your vault, you can manage them easily.\n\nSearch: Simply type in the search bar at the top of your vault list. The list will filter in real-time.\n\nView a Password: Click the eye icon (👁️) within an item to temporarily reveal the password.\n\nCopy a Password: Click the copy icon next to a password to copy it to your clipboard.\n\nEdit an Item: Click the Edit icon on any vault item. The modal will appear with the item's details, allowing you to make changes.\n\n\nDelete an Item: Click the Delete (trash) icon and confirm your choice to permanently remove an item.\n\n\n## Step 5: Enhance Your Security (Optional)\nYou can add an extra layer of protection to your account.\n\nIn the navbar at the top, click Settings.\n\nClick the Enable 2FA button.\n\nScan the QR code that appears with an authenticator app (like Google Authenticator, Authy, or Microsoft Authenticator).\n\nEnter the 6-digit code from the app to verify and complete the setup.\n\n## Step 6: Back Up and Restore Your Vault (Optional)\nYou can export an encrypted backup of your vault for safekeeping.\n\nTo Export: On the dashboard, find the \"Manage Vault\" card and click Export Encrypted Vault. A secure .json file will be downloaded to your computer.\n\nTo Import: Click Import Encrypted Vault, select the .json file you previously exported, and the items will be added back to your vault.\n\n\nNote:: what you used for crypto and why?\n\nFor client-side encryption, I used AES-256, a robust and industry-standard symmetric encryption algorithm. The encryption key is derived from the user's master password using PBKDF2, which adds protection against brute-force attacks. This zero-knowledge approach ensures maximum privacy, as all sensitive vault data is encrypted on the client before ever being transmitted to the server.\n\n---\n\n\n### Features\n\n* **Strong Password Generator**: Customizable options for length, numbers, and symbols, including the ability to exclude look-alike characters.\n* **Encrypted Vault**: Securely store credentials (title, username, password, URL, notes) using client-side AES-256 encryption.\n* **Zero-Knowledge Architecture**: The server only ever stores encrypted blobs of data, guaranteeing user privacy.\n* **Full CRUD Functionality**: Add, view, edit, and delete vault items seamlessly.\n* **User Authentication**: Secure user registration and login system.\n* **Two-Factor Authentication (2FA)**: Support for TOTP-based 2FA for an extra layer of security.\n* **Dark Mode**: A sleek, user-friendly dark theme.\n* **Encrypted Export/Import**: Users can back up and restore their entire vault with an encrypted JSON file.\n\n---\n\n### Tech Stack\n\n* **Frontend**: Next.js with React \u0026 TypeScript\n* **Backend**: Next.js API Routes\n* **Database**: MongoDB (via Mongoose)\n* **Styling**: Tailwind CSS\n* **Authentication**: JWT (JSON Web Tokens) \u0026 bcrypt.js\n* **Encryption**: crypto-js\n\n---\n\n### Getting Started: How to Run Locally\n\nTo get a local copy up and running, follow these simple steps.\n\n**Prerequisites:**\n* Node.js (v18 or later)\n* npm\n* A free MongoDB Atlas account\n\n**Installation \u0026 Setup:**\n\n1.  **Clone the repo**\n    ```sh\n    git clone \u003cyour-github-repo-url\u003e\n    cd secure-vault\n    ```\n\n2.  **Install NPM packages**\n    ```sh\n    npm install\n    ```\n\n3.  **Set up Environment Variables**\n    Create a file named `.env.local` in the root of the project and add the following variables:\n    ```env\n    MONGO_URI=\"your_mongodb_connection_string\"\n    JWT_SECRET=\"generate_a_very_long_and_random_secret_string_here\"\n    ```\n\n4.  **Run the development server**\n    ```sh\n    npm run dev\n    ```\n    Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjaykumar200599%2Fpassword_generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanjaykumar200599%2Fpassword_generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjaykumar200599%2Fpassword_generator/lists"}