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, & 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.pyThe server will start at http://localhost:8000
- Navigate to the client directory:
cd client- Install dependencies:
npm install- Run the development server:
npm run devThe 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.
- Add dockerfile
- Make desktop app
- Password strength meter
- Export/Import functionality
- Password sharing capabilities
- Two-factor authentication
- Password expiry notifications
- Automatic password rotation
- Audit logs
- Browser extension