passguard-flask Tailwind Templates

Passguard Flask

A modern, secure, and beautifully designed password manager built with Flask, SQLAlchemy, Flask-Login, and Tailwind CSS. Store and encrypt your credentials with confidence. Fast, easy, and open source!

PassGuard – Modern Flask Password Manager with Face Recognition

PassGuard Logo

A beautifully designed, modern, and secure password manager built with Flask, SQLAlchemy, Flask-Login, DeepFace, and Tailwind CSS.
Manage your secrets and credentials with confidenceβ€”your data is encrypted, and only you have access.
Now with Face Registration & Login for an extra layer of convenience and security!


πŸš€ Features

  • Modern, Responsive UI β€” Built with Tailwind CSS for a clean, mobile-first experience.
  • User Registration & Authentication β€” Secure sign-up and login with hashed passwords (Flask-Login).
  • Password Vault β€” Store credentials (site, login, password, notes, links) for unlimited accounts.
  • Strong Encryption β€” All passwords are encrypted in the database using cryptography Fernet symmetric encryption.
  • Face Recognition Login β€” Register your face from your device (mobile/desktop), then login using face recognition powered by DeepFace.
  • Reveal Password β€” Click-to-show/hide password fields for extra privacy.
  • Flash Messages β€” Friendly feedback for all actions.
  • Session Management β€” Uses Flask-Login for secure user sessions.
  • Easy Deployment β€” Runs anywhere Python does.

πŸ–ΌοΈ Screenshots

Landing Page Dashboard Add Password Face Login Page


πŸ› οΈ Installation

1. Clone the repository

git clone https://github.com/farsbrayek3/passguard-flask.git
cd passguard-flask

2. Create a virtual environment

python -m venv venv
venv\Scripts\activate        # On Linux : source venv/bin/activate 

3. Install dependencies

pip install -r requirements.txt

4. Run the app

python app.py 

if you dont have a camera in ur pc use

1. Start your Flask server like this:

flask run --host=0.0.0.0

2. On your phone, open a browser and go to

http://192.168.X.X:5000/register_face

The app will be available at http://127.0.0.1:5000


πŸ” Security

  • Passwords are never stored in plaintext!
  • Each password is encrypted with a strong, randomly generated Fernet key (secret.key).
  • User authentication uses securely hashed passwords.
  • Face images are stored locally and matched securely with DeepFace.
  • Built for demo and personal use. For production, use HTTPS and a more robust database.

πŸ“‚ Project Structure

passguard-flask/
β”‚
β”œβ”€β”€ app.py                 # Main Flask application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ instance/
β”‚   └── users.db           # SQLite database (auto-created)
β”œβ”€β”€ secret.key             # Fernet encryption key (auto-created)
β”œβ”€β”€ registered_faces/      # Stored face images for users
└── templates/
    β”œβ”€β”€ base.html
    β”œβ”€β”€ index.html
    β”œβ”€β”€ register.html
    β”œβ”€β”€ login.html
    β”œβ”€β”€ dashboard.html
    β”œβ”€β”€ add_password.html
    β”œβ”€β”€ register_face.html
    └── login_with_face.html

✨ Customization

  • UI: Easily adjust colors and layouts in base.html (Tailwind-powered).
  • Encryption: Uses cryptography.fernet for symmetric encryption.
  • Face Recognition: Uses DeepFace for robust face matching.
  • Database: Uses SQLite by default; swap for Postgres/MySQL for production.

πŸ“¦ Dependencies

  • Flask
  • Flask-WTF
  • Flask-Login
  • Flask-SQLAlchemy
  • cryptography
  • deepface
  • tf-keras
  • tailwindcss (via CDN)

See requirements.txt for exact versions.


🀳 Face Registration & Login

  • Register Face:
    Go to Register Face in your dashboard. Snap or upload a photo with your device’s camera.

  • Login with Face:
    On the login page, choose "Login with Face", take/upload a picture. If recognized, you’ll be logged in instantly.

    Tip: For best results, use a clear, well-lit photo.


πŸ™‹ FAQ

Q: Can I deploy this publicly?
A: Yes, but use HTTPS and consider deploying with a production WSGI server (e.g., Gunicorn), and store the Fernet key & face images securely.

Q: Is this suitable for team/shared use?
A: This is a single-user-per-account manager. For multi-user/collaboration, extend user permissions and roles.

Q: How do I reset my database or faces?
A: Stop the app, delete instance/users.db and the contents of registered_faces/, then restart.


πŸ“„ License

MIT License.
Feel free to use, modify, and contribute!


🀝 Contributing

Pull requests and issues are welcome!
Please open an issue for suggestions or bugs.


⭐️ Show your support

If you like this project, please give it a ⭐️ on GitHub!


Built with love, Flask, and face recognition.

Top categories

Loading Svelte Themes