A secure password manager application built with FastAPI (Python) and React.js. This application allows users to safely store and manage their passwords with features like category organization, password generation, and secure master password authentication.
- 🔐 Master password authentication
- 📂 Password categorization
- 🔄 Password generation
- 🔍 Search and filter capabilities
- 📱 Responsive design
- 💾 Local session storage
- 🔒 Secure password storage
- FastAPI (Python 3.8+)
- SQLite database
- uvicorn ASGI server
- Python packages:
- fastapi
- uvicorn
- sqlite3 (built-in)
- python-multipart
- python-jose[cryptography]
- passlib[bcrypt]
- React.js
- Tailwind CSS
- shadcn/ui components
- Radix UI primitives
- Local/Session Storage for auth persistence
- Python 3.8 or higher
- Node.js 14 or higher
- npm or yarn
- Navigate to the server directory:
cd server
- Create and activate a virtual environment:
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Run the server:
python main.py
The server will start at http://localhost:8000
- Navigate to the client directory:
cd client
- Install dependencies:
npm install
- Run the development server:
npm run dev
The client will start at http://localhost:5173
password-manager/
├── server/
│ ├── main.py
│ ├── requirements.txt
│ └── passwords.db
└── client/
├── src/
│ ├── components/
│ │ └── ui/
│ ├── pages/
│ │ └── PasswordManager.jsx
│ ├── utils/
│ │ └── authStorage.js
│ ├── lib/
│ │ └── utils.js
│ ├── App.jsx
│ └── main.jsx
├── public/
├── index.html
├── package.json
├── tailwind.config.js
└── vite.config.js
POST /auth/login
- Login with master passwordPOST /auth/change-master-password
- Change master password
GET /categories
- Get all categoriesPOST /categories
- Create new category
GET /passwords
- Get all passwordsPOST /passwords
- Create new passwordDELETE /passwords/{password_id}
- Delete passwordGET /generate-password
- Generate random password
- Password hashing using SHA-256
- Session-based authentication
- Secure password storage
- CORS protection
- Input validation
- Optional "Remember Me" functionality
Master Password: admin123
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Export to Desktop apps
- Password strength meter
- Export/Import functionality
- Password sharing capabilities
- Two-factor authentication
- Password expiry notifications
- Automatic password rotation
- Audit logs
- Browser extension