Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Structure and Usability Refactor #8

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

DJStompZone
Copy link

@DJStompZone DJStompZone commented Jun 19, 2024

Summary of Changes

  • Made significant enhancements to Vulnerability Finder, transitioning the application to a class-based structure and utilizing customtkinter for an improved user interface. These changes aim to increase the maintainability, scalability, and user interaction quality of the application.
  • Fixes Semantic Error #7

Changes Include:

  1. Class-Based Refactoring:
    • Converted the procedural code into a class-based structure to encapsulate application logic, improve state management, and eliminate global variables.
    • Each component of the UI and its corresponding functionalities are now methods within the VFinderApp class, enhancing readability and making the codebase easier to manage and debug.
  2. Customtkinter Integration:
    • Integrated customtkinter for all UI elements, which provides a more modern and adaptable interface. This includes buttons, labels, combo boxes, and dialog windows.
    • Set up a dark theme and a green color scheme consistent across the application, improving the aesthetic and user experience.
  3. Enhanced IP and Scan Type Handling:
    • Added a method ask_for_ip to handle IP input through a customtkinter dialog, ensuring that the IP address is stored as an instance variable.
    • Refined the scan type selection with a combo box that updates the application state based on the user's selection.
  4. Advanced Mode Preparations:
    • Laid groundwork for future features such as "Advanced Mode," which will allow users to customize nmap options directly within the UI.
  5. Improved Distribution and nmap Check:
    • Included methods get_distro and check_nmap to verify the system's configuration before executing scan commands, enhancing the robustness of the application.

Motivation for Changes

These changes were motivated by the need to make Vulnerability Finder more maintainable and developer-friendly. Transitioning to a class-based structure helps encapsulate functionality and manage state more effectively, while the use of customtkinter modernizes the interface. Additionally, these changes lay a foundation for adding more complex features in the future, such as customizable nmap scanning options and different operational modes.

Testing

  • Manually tested the new class-based application structure on multiple Linux distributions to ensure compatibility and functionality.
  • Verified that all UI elements render correctly and are responsive to user interactions.
  • Ensured that error handling gracefully catches issues like missing nmap or unsupported distributions.

Request for Review

(Testing and validation pending)
I would appreciate reviews on the current changes, particularly with respect to the application's structure and the integration of customtkinter. Feedback on potential issues or suggestions for further improvements would also be greatly valued.

Refactor VFinderApp to use class-based structure, eliminating global variables and enhancing UI organization with customtkinter.
Copy link
Owner

@solitary8 solitary8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is well beyond my programming skills and I must thank you for submitting these changes and I will immediately approve them, again thank you very much for doing this !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Semantic Error
2 participants