A full-stack password manager application with beautiful UI and secure backend.
password_manager/
├── frontend/ # React + Vite frontend
│ ├── src/
│ │ ├── components/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ └── vite.config.js
│
├── backend/ # FastAPI backend
│ ├── routes/
│ ├── utils/
│ ├── main.py
│ ├── models.py
│ ├── schemas.py
│ └── requirements.txt
│
└── README.md
- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Run development server:
npm run devFrontend will be available at: http://localhost:5173
- Navigate to backend directory:
cd backend- Create virtual environment:
python -m venv venv- Activate virtual environment:
# Windows PowerShell
venv\Scripts\Activate.ps1
# Windows CMD
venv\Scripts\activate.bat
# Linux/Mac
source venv/bin/activate- Install dependencies:
pip install -r requirements.txt- Create
.envfile:
cp .env.example .env- Generate encryption key (run in Python REPL):
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())-
Add the key to
.envfile -
Run the server:
python main.pyBackend will be available at: http://localhost:8000 API Documentation: http://localhost:8000/docs
- 🎨 Beautiful gradient UI with smooth animations
- 🔑 Password generator with customizable options
- 📋 Copy to clipboard functionality
- 👁️ Show/hide password toggle
- 🔍 Search and filter passwords
- 💪 Password strength indicator
- 📱 Fully responsive design
- 💾 Local storage support
- 🔐 AES encryption for stored passwords
- 🚀 Fast and async API with FastAPI
- 💾 SQLite database (easily switchable to PostgreSQL/MySQL)
- 📚 Auto-generated API documentation
- 🔍 Search functionality
- ✅ Input validation
- 🌐 CORS enabled for frontend integration
- React 18
- Vite
- Lucide React (icons)
- CSS3
- Python 3.8+
- FastAPI
- SQLAlchemy
- Cryptography (Fernet)
- SQLite
- Pydantic
POST /api/passwords- Create new passwordGET /api/passwords- Get all passwordsGET /api/passwords/{id}- Get specific passwordPUT /api/passwords/{id}- Update passwordDELETE /api/passwords/{id}- Delete passwordGET /api/passwords/search/{query}- Search passwords
- Password encryption using Fernet (symmetric encryption)
- Secure key management via environment variables
- Input validation and sanitization
- CORS protection
- Encrypted database storage
cd frontend
npm run devcd backend
python main.pycd frontend
npm run build- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - feel free to use this project for learning or production.
This is a demonstration project. For production use:
- Use a production-grade database (PostgreSQL)
- Implement user authentication
- Use HTTPS
- Store encryption keys in a secure key management service
- Add rate limiting
- Implement logging and monitoring
- Regular security audits
Built with modern web technologies for educational purposes.