Welcome to the Password Generator project! This Python application allows you to generate secure passwords in two modes: a command-line interface (CLI) and an interactive web-based GUI powered by Streamlit. The project supports three types of password generation: Random Passwords, Memorable Passwords, and Pin Codes, each implemented as a class inheriting from a base PasswordGenerator
class.
In this project, you will be expected to apply your knowledge of Streamlit and python to create a user-friendly dashboard interface for these password generators, or edit the password generators
- RandomPasswordGenerator: Generates a random password of a specified length, with optional inclusion of numbers and symbols.
- MemorablePasswordGenerator: Creates a password by combining a specified number of words from an English vocabulary (default: NLTK words corpus), with options for custom separators and random capitalization.
- PinCodeGenerator: Produces a numeric PIN of a specified length.
- Two Interfaces:
- CLI Mode
- GUI Mode
password-generator/
├── src/
│ ├── MemorablePasswordGenerator.py
│ └── Random_Password_Generator.py
│ └── Pin_Generator.py
├── gui/
│ ├── Dashboard.py
└── README.md # Project documentation
- Python 3.7+
- Streamlit for the GUI
- NLTK (Natural Language Toolkit) for word corpus
pip install nltk streamlit
import nltk
nltk.download('words')
Make sure you've installed all the required dependencies. You can then set your PYTHONPATH, navigate to the 'src' directory and run the project using Python:
export PYTHONPATH="${PYTHONPATH}:/your/path/to/main/directory"
cd src
python filename
Be sure to replace /your/path/to/main/directory
with the actual path to the directory containing your project.
You can run the Streamlit web app using the following command:
streamlit run gui/Dashboard.py
This will run the web page at localhost. You can view this by opening your web browser and navigating to http://localhost:8501/
.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch (git checkout -b feature/your-feature).
- Commit your changes (git commit -m "Add your feature").
- Push to the branch (git push origin feature/your-feature).
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.