Skip to content

KafetzisThomas/PassManagerWeb

Repository files navigation

Logo Icon

Securely manage your passwords of your online accounts.
https://passmanagerweb.onrender.com/
Written in Python/Django

Run Tests

Features

  • AES 256 Encryption: Securely store and manage passwords with AES 256-bit encryption, ensuring top-tier security for sensitive information.
  • Multi-Factor Authentication: Protect your account with your favorite authenticator app.
  • Password Generator Tool: Built-in tool to generate strong, random passwords, with customizable options (length, character types).
  • Password Health Monitoring: Built-in tool to check the strength and health of stored passwords, identifying weak, reused, or compromised passwords.
  • Import/Export Data: Upload data such as passwords from a CSV file or download your stored data in CSV format for easy backup or migration.
  • Automatic Logout: Automatically logs you out after a customizable period of inactivity. Choose the timeout duration that best suits your needs.
  • Cloudflare CAPTCHA Verification: Protects against automated attacks by using CAPTCHA to verify human users.

Purpose

The primary goal of this project is to provide an open-source application that anyone can use and learn from. While the deployed app is available for use, my main intention is not to attract active users or compete with major applications like Bitwarden. Instead, I aim to share the code, primarily written in Django, with those who might find it useful for similar projects or personal use.

If you find this project interesting, helpful, or inspiring, please consider giving a star, following, or even donating to support further development.

Setup for Local Development

Set up Virtual Environment

cd path/to/root/directory
$ python3 -m venv env/
$ source env/bin/activate

Install Dependencies

$ pip3 install -r requirements.txt

Create Enviroment Variable file

$ touch main/.env
$ nano main/.env

Add the following environment variables (modify as needed):

➜ SECRET_KEY="example_secret_key"  # https://stackoverflow.com/a/57678930
➜ ENCRYPTION_KEY="example_encryption_key"  # https://cryptography.io/en/latest/fernet/#cryptography.fernet.Fernet
➜ DEBUG=True  # For development
➜ EMAIL_HOST_USER="example_email_host"
➜ EMAIL_HOST_PASSWORD="example_email_password"

Save changes and close the file.

Migrate Database

$ python3 manage.py migrate

Run Django Server

$ python3 manage.py runserver

Now you can access the website at http://127.0.0.1:8000/ or http://localhost:8000/.

Run Tests

cd path/to/root/directory
$ python3 manage.py test users.tests passmanager.tests

Demo Images

Vault

Vault

Password Generator

Password Generator

Import Data

Import Data

Password Checkup

Password Checkup

New Item

New Item

Edit Item

Edit Item

Contributing Guidelines for PassManager

Pull Requests

  • Simplicity: Keep changes focused and easy to review.
  • Libraries: Avoid adding non-standard libraries unless discussed via an issue.
  • Testing: Ensure code runs error-free, passes all tests, and meets coding standards.

Bug Reports

  • Report bugs via GitHub Issues.
  • Submit pull requests via GitHub Pull Requests.

Thank you for supporting PassManager!