This is a secure password manager built using FastAPI for the backend and React for the frontend. The application allows users to store, manage, and retrieve encrypted passwords securely. It also includes user authentication with 2-factor authentication (2FA), password recovery, and the ability to export/import passwords.
-
User Authentication
- Register and login
- Password reset functionality
- Two-factor authentication (2FA)
-
Password Management
- Add new password entries
- Edit existing password entries
- Delete password entries
- Encrypt and decrypt passwords securely
-
Advanced Features
- Export passwords securely
- Import passwords securely
- Generate strong passwords
- Python 3.8+
- Node.js and npm
- PostgreSQL or any supported database
- Clone the repository:
git clone https://github.com/your-repo/password-manager.git cd password-manager/server
- Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
Update
cp .env.example .env
.env
with database connection details and secret keys. - Apply database migrations:
alembic upgrade head
- Start the FastAPI server:
uvicorn main:app --reload
- Navigate to the React client:
cd ../react
- Install dependencies:
npm install
- Start the React development server:
npm run dev
POST /register
- Register a new userPOST /login
- Login a userPOST /forgot-password
- Request password resetPOST /reset-password
- Reset the passwordPOST /enable-2fa
- Enable 2-factor authenticationPOST /verify-2fa
- Verify 2FA code
POST /passwords
- Add a new password entryPUT /passwords/{id}
- Edit an existing password entryDELETE /passwords/{id}
- Delete a password entry
GET /export-passwords
- Export encrypted passwordsPOST /import-passwords
- Import encrypted passwords
POST /generate-secure-password
- Generate a secure password
- All passwords are encrypted using AES-256 encryption with a passphrase-derived key.
- User authentication is secured with JWT tokens.
- Two-factor authentication adds an additional layer of security.
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Commit your changes (
git commit -m 'Add new feature'
) - Push to the branch (
git push origin feature-branch
) - Open a Pull Request
This project is licensed under the MIT License.
For questions or support, reach out at [yln0501403845@gmail.com].