Skip to content

GenLock is a Python-powered password management system that generates secure passwords, evaluates their strength, and stores them safely in an Excel-based database. Featuring a user-friendly Streamlit interface, robust Flask APIs, and built-in testing, GenLock ensures both functionality and security.

License

Notifications You must be signed in to change notification settings

coding-chemist/GenLock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenLock: Password Management System

GenLock is a robust, user-friendly password management system designed to help users generate secure passwords, evaluate their strength, and manage them efficiently. It includes a modern Streamlit-based frontend for an intuitive UI and a Flask-powered backend for handling API operations.

GenLock

Table of Contents

  • Features
  • Tech Stack
  • Setup Instructions
  • Project Structure
  • Usage
  • API Endpoints
  • Contributing
  • License

Features

Password Generator

  • Generate strong passwords with custom lengths and optional special characters.
  • Visualize password strength with a color-coded progress bar.

Password Security Check

  • Analyze password strength and identify weaknesses.
  • Supports evaluation based on length, character diversity, and sequence patterns.

Password Storage

  • View and manage a list of generated passwords.
  • Passwords are securely stored in an Excel file (passwords.xlsx).

Rate Limiting

  • Built-in rate limiting for API endpoints to prevent abuse.

Modern UI

  • Clean, responsive interface built using Streamlit for easy navigation.

Tech Stack

  • Backend: Flask Flask-Limiter
  • Frontend: Streamlit
  • Storage: OpenPyXL
  • Utilities: Requests Logging

Setup Instructions

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

Installation

Clone the Repository

git clone https://github.com/your-repo/genlock.git
cd genlock

Create a Virtual Environment

python -m venv venv
source venv/bin/activate  # For Linux/Mac
venv\Scripts\activate     # For Windows

Install Dependencies

pip install -r requirements.txt

Initialize the Excel File The passwords.xlsx file will be automatically created when the app is first run. If needed, you can reinitialize it manually:

python -c "from app.excel_manager import initialize_excel; initialize_excel()"

Run the Backend Server

python main.py

Run the Frontend Open a new terminal and run:

streamlit run frontend/app.py

Project Structure

GenLock/
├── app/
│   ├── __init__.py             # Flask app factory
│   ├── routes.py               # API routes
│   ├── password_utils.py       # Password generation and validation logic
│   ├── excel_manager.py        # Excel file management for storing passwords
├── frontend/
│   ├── app.py                  # Streamlit-based frontend
│   ├── utils.py                # Utility functions for frontend
├── main.py                     # Entry point for the Flask backend
├── requirements.txt            # Python dependencies
├── passwords.xlsx              # (Generated) Password storage
└── README.md                   # Project documentation

Usage

Generate Password

  • Navigate to the Generate Password tab in the UI.
  • Customize the password length and toggle special character inclusion.
  • Click Generate Password to get a strong password.

Check Password Security

  • Go to the Check Password Security tab.
  • Input a password to evaluate and click Check Security.
  • View its strength rating and potential weaknesses.

Stored Passwords

  • Access the Stored Passwords tab to view all generated passwords.
  • Manage stored passwords (deletion functionality to be added as needed).

API Endpoints

Method Endpoint Description
POST /generate-password Generates a secure password.
POST /check-security Evaluates password strength.
GET /passwords Retrieves all stored passwords.
DELETE /password/int:id Deletes a password by its ID.

Example Request (Generate Password):

POST /generate-password
{
    "length": 16,
    "include_special": true
}

Example Response:

{
    "password": "aG$6!J3kL",
    "security_level": "Strong"
}

Contributing

Welcome your contributions to GenLock! If you would like to contribute, please fork the repository, create a new branch, and submit a pull request with your changes..

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Flask: A lightweight WSGI web application framework for Python. Flask.
  • Streamlit: An open-source app framework for Machine Learning and Data Science projects. Streamlit.
  • OpenPyXL: A Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files. OpenPyXL.
  • Requests: A simple HTTP library for Python. Requests.
  • Flask-Limiter: Rate limiting for Flask applications. Flask-Limiter.
  • Python Software Foundation: For maintaining Python and supporting the development of Python-based tools and libraries.
  • Logo: The logo image used in this project is sourced from Les Olson IT.

About

GenLock is a Python-powered password management system that generates secure passwords, evaluates their strength, and stores them safely in an Excel-based database. Featuring a user-friendly Streamlit interface, robust Flask APIs, and built-in testing, GenLock ensures both functionality and security.

Topics

Resources

License

Stars

Watchers

Forks