/2 Enhancing Interaction – Introducing Menus & Workflow Refinement (Solidsight v3 & v4)


Improving User Experience
I realised early on that functionality alone wasn't enough; Solidsight needed an intuitive way for users to interact with generated reports. This led to the development of interactive command-line menus, providing users with easy navigation options and clear choices.
Interactive Menu Implementation
The new menu allowed users to select specific analyses or regenerate outputs as needed:
pythonCopyEditdef main_menu(output_dir):
while True:
print("\n--- Main Menu ---")
reports = [f for f in os.listdir(output_dir) if f.endswith("_analysis_report.md")]
if not reports:
print("No reports found in this directory.")
break
for idx, report in enumerate(reports, start=1):
print(f"{idx}. {report.replace('_analysis_report.md', '')}")
choice = input("Select a report by number or type 'exit': ")
if choice.lower() == 'exit':
break
# additional logic here
Navigating Initial Errors
Initially, the menu would crash if no reports existed or when invalid inputs were entered. It became clear that thorough input validation and better user prompts were essential.
Lessons Learned
Addressing these user-experience issues taught me to anticipate user behaviours better and ensure the program remained stable, irrespective of how it was used.
We will stop here, and I’ll see you on the next one.
pxng0lin.
Subscribe to my newsletter
Read articles from Isa directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Isa
Isa
Former analyst with expertise in data, forecasting, and resource modeling, transitioned to cybersecurity over the past 4 years (as of May 2024). Passionate about security and problem-solving, utilising skills in data and analysis, for cybersecurity challenges. Experience: Extensive background in data analytics, forecasting, and predictive modelling. Experience with platforms like Bugcrowd, Intigriti, and HackerOne. Transitioned to Web3 cybersecurity with Immunefi, exploring smart contract vulnerabilities. Spoken languages: English (Native, British), Arabic (Fus-ha)