https://github.com/coding-chemist/genlock
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.
https://github.com/coding-chemist/genlock
Last synced: 11 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/coding-chemist/genlock
- Owner: coding-chemist
- License: mit
- Created: 2024-11-26T07:02:30.000Z (about 1 year ago)
- Default Branch: lock
- Last Pushed: 2024-11-27T17:56:36.000Z (about 1 year ago)
- Last Synced: 2024-11-27T18:37:05.614Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.

## 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:**  
- **Frontend:** 
- **Storage:** 
- **Utilities:**  
## Setup Instructions
### Prerequisites
- Python 3.8 or higher
- pip (Python package manager)
### Installation
Clone the Repository
```bash
git clone https://github.com/your-repo/genlock.git
cd genlock
```
Create a Virtual Environment
```bash
python -m venv venv
source venv/bin/activate # For Linux/Mac
venv\Scripts\activate # For Windows
```
Install Dependencies
```bash
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:
```bash
python -c "from app.excel_manager import initialize_excel; initialize_excel()"
```
Run the Backend Server
```bash
python main.py
```
Run the Frontend Open a new terminal and run:
```bash
streamlit run frontend/app.py
```
## Project Structure
```bash
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/ | Deletes a password by its ID. |
**Example Request (Generate Password):**
```bash
POST /generate-password
{
"length": 16,
"include_special": true
}
```
**Example Response:**
```json
{
"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](https://flask.palletsprojects.com/).
- **Streamlit**: An open-source app framework for Machine Learning and Data Science projects. [Streamlit](https://streamlit.io/).
- **OpenPyXL**: A Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files. [OpenPyXL](https://openpyxl.readthedocs.io/en/stable/).
- **Requests**: A simple HTTP library for Python. [Requests](https://requests.readthedocs.io/en/latest/).
- **Flask-Limiter**: Rate limiting for Flask applications. [Flask-Limiter](https://flask-limiter.readthedocs.io/en/stable/).
- **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](https://lesolson.com/wp-content/uploads/2019/08/Asset-1strong-password.png).