You are tasked with developing an OTP (One-Time Password) verification system in Python. The system should generate a 6-digit OTP and send it to the user's email address for verification. Upon receiving the OTP, the user should enter it into the system for validation. If the entered OTP matches the generated OTP, access should be granted; otherwise, access should be denied.
-
Implement a function to generate a 6-digit OTP randomly.
-
Develop a function to simulate sending the OTP to the user's email address.
-
Create a function to prompt the user to enter the OTP received in their email.
-
Implement a function to verify if the entered OTP matches the generated OTP.
-
Ensure proper error handling and user-friendly prompts throughout the system.
-
Allow the user to retry OTP entry in case of incorrect input.
- Python script containing the implementation of the OTP verification system.
- Documentation explaining the functionality of each function, how to run the program, and any dependencies required.
- Test cases to ensure the system functions correctly under various scenarios, including correct and incorrect OTP entries.
- Optionally, you can create a simple GUI interface for the OTP verification system to enhance user experience.
Your project will be evaluated based on the following criteria:
- Correctness and functionality of the OTP generation, sending, and verification process.
- Code quality, including adherence to Python best practices, readability, and documentation.
- Error handling and user interaction aspects of the system.
- Robustness and reliability of the system under different scenarios.
- Optional: Creativity and usability of the GUI interface (if implemented).
Ensure that you handle sensitive information (such as email addresses and OTPs) securely and responsibly, and avoid hardcoding any sensitive data or credentials in your code.