From ad5ae9a1e7fabc344f212ca049d7ded85a85b075 Mon Sep 17 00:00:00 2001 From: Princee Date: Fri, 10 Apr 2026 12:15:17 +0545 Subject: [PATCH 1/5] Add input validation and success messaging --- Spell-Checker/Spell-Checker.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Spell-Checker/Spell-Checker.py b/Spell-Checker/Spell-Checker.py index 936b59d..bc64cb6 100644 --- a/Spell-Checker/Spell-Checker.py +++ b/Spell-Checker/Spell-Checker.py @@ -3,8 +3,14 @@ def check_spelling(): input_text = input_entry.get() - corrected_text = TextBlob(input_text).correct() - result_label.config(text="Corrected text: " + str(corrected_text)) + if not input_text: + result_label.config(text="TextBox cannot be empty!", fg="red") + return + corrected_text = str(TextBlob(input_text).correct()) + if input_text!=corrected_text: + result_label.config(text="Corrected text: " + corrected_text, fg="black") + return + result_label.config(text=f"{input_text} is Correct!", fg="green") def reset(): input_entry.delete(0, tk.END) From b2a9176984acbc9463764d1eab9c0bf8e6386be4 Mon Sep 17 00:00:00 2001 From: Princee Date: Fri, 10 Apr 2026 12:42:15 +0545 Subject: [PATCH 2/5] Relocate project to dedicated folder and restore default files --- Spell-Checker/Spell-Checker.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Spell-Checker/Spell-Checker.py b/Spell-Checker/Spell-Checker.py index bc64cb6..936b59d 100644 --- a/Spell-Checker/Spell-Checker.py +++ b/Spell-Checker/Spell-Checker.py @@ -3,14 +3,8 @@ def check_spelling(): input_text = input_entry.get() - if not input_text: - result_label.config(text="TextBox cannot be empty!", fg="red") - return - corrected_text = str(TextBlob(input_text).correct()) - if input_text!=corrected_text: - result_label.config(text="Corrected text: " + corrected_text, fg="black") - return - result_label.config(text=f"{input_text} is Correct!", fg="green") + corrected_text = TextBlob(input_text).correct() + result_label.config(text="Corrected text: " + str(corrected_text)) def reset(): input_entry.delete(0, tk.END) From 5e1c7748e33cc39d25c11721583d0a7c6356b6fe Mon Sep 17 00:00:00 2001 From: Princee Date: Fri, 10 Apr 2026 13:03:15 +0545 Subject: [PATCH 3/5] feat: implement core spell-checking logic using TextBlob --- Spell-Sense/logic.py | 12 ++++++++++++ Spell-Sense/requirements.txt | 1 + 2 files changed, 13 insertions(+) create mode 100644 Spell-Sense/logic.py create mode 100644 Spell-Sense/requirements.txt diff --git a/Spell-Sense/logic.py b/Spell-Sense/logic.py new file mode 100644 index 0000000..38bd71c --- /dev/null +++ b/Spell-Sense/logic.py @@ -0,0 +1,12 @@ +from textblob import TextBlob + +def get_correction(text): + if not text.strip(): + return None, False + + blob = TextBlob(text) + corrected = str(blob.correct()) + + # Check if the original matches the corrected version + is_correct = text.lower().strip() == corrected.lower().strip() + return corrected, is_correct \ No newline at end of file diff --git a/Spell-Sense/requirements.txt b/Spell-Sense/requirements.txt new file mode 100644 index 0000000..3f42dc3 --- /dev/null +++ b/Spell-Sense/requirements.txt @@ -0,0 +1 @@ +textblob \ No newline at end of file From 39f0fa6b566257c98d9361c6561dc5844133d55c Mon Sep 17 00:00:00 2001 From: Princee Date: Fri, 10 Apr 2026 13:04:01 +0545 Subject: [PATCH 4/5] feat: add Tkinter UI with keyboard bindings and color feedback --- Spell-Sense/main.py | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Spell-Sense/main.py diff --git a/Spell-Sense/main.py b/Spell-Sense/main.py new file mode 100644 index 0000000..0ab991f --- /dev/null +++ b/Spell-Sense/main.py @@ -0,0 +1,55 @@ +import tkinter as tk +from logic import get_correction + +class SpellCheckerApp: + def __init__(self, root): + self.root = root + self.root.title("Spell Checker Pro") + self.root.geometry("400x300") + self.root.configure(bg='#f7f7f7') + + self.setup_ui() + self.root.bind('', lambda e: self.process_text()) + + def setup_ui(self): + # Label + tk.Label(self.root, text="Pro Spell Checker", font=("Arial", 14, "bold"), bg='#f7f7f7').pack(pady=10) + + # Entry + self.input_entry = tk.Entry(self.root, font=("Arial", 12), width=30) + self.input_entry.pack(pady=10) + self.input_entry.focus_set() + + # Buttons + btn_frame = tk.Frame(self.root, bg='#f7f7f7') + btn_frame.pack(pady=10) + + self.check_btn = tk.Button(btn_frame, text="Check", command=self.process_text, bg='#4CAF50', fg='white', width=10) + self.check_btn.pack(side=tk.LEFT, padx=5) + + self.reset_btn = tk.Button(btn_frame, text="Reset", command=self.reset_fields, bg='#f44336', fg='white', width=10) + self.reset_btn.pack(side=tk.LEFT, padx=5) + + # Result display + self.result_label = tk.Label(self.root, text="", font=("Arial", 11), bg='#f7f7f7', wraplength=350) + self.result_label.pack(pady=20) + + def process_text(self): + text = self.input_entry.get() + corrected, is_correct = get_correction(text) + + if corrected is None: + self.result_label.config(text="Please enter a word!", fg="orange") + elif is_correct: + self.result_label.config(text=f"✔ '{text}' is spelled correctly!", fg="green") + else: + self.result_label.config(text=f"✖ Suggestion: {corrected}", fg="blue") + + def reset_fields(self): + self.input_entry.delete(0, tk.END) + self.result_label.config(text="") + +if __name__ == "__main__": + root = tk.Tk() + app = SpellCheckerApp(root) + root.mainloop() \ No newline at end of file From d1fba5bdbb47f21a6be629dfe3e355263a1ab26e Mon Sep 17 00:00:00 2001 From: Princee Date: Fri, 10 Apr 2026 13:22:35 +0545 Subject: [PATCH 5/5] docs: add comprehensive documentation for Spell-Sense --- Spell-Sense/README.md | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Spell-Sense/README.md diff --git a/Spell-Sense/README.md b/Spell-Sense/README.md new file mode 100644 index 0000000..2716c58 --- /dev/null +++ b/Spell-Sense/README.md @@ -0,0 +1,49 @@ +# Spell-Sense: Advanced Spell Checker + +Spell-Sense is a professional, modular Python application that provides real-time spelling suggestions. Built with `Tkinter` and `TextBlob`, it improves upon basic implementations by adding robust error handling and a clean, user-friendly interface. + +## Features +- Smart Validation: Detects empty inputs and prevents unnecessary processing. +- Color-Coded Feedback: Uses visual cues (Green for success, Blue for suggestions, Red for errors). +- Modular Design: Separation of concerns between UI logic and processing logic. +- Keyboard Friendly: Press `Enter` to check spelling instantly without clicking. +- Auto-Focus: The cursor starts in the input box for immediate typing. + +## Project Structure +/Spell-Sense/ +├── main.py # Entry point and UI (Tkinter) +├── logic.py # Core NLP logic (TextBlob) +├── requirements.txt # Dependency list +└── README.md # Documentation + +🚀 Installation & Setup +Prerequisites +Python 3.6 or higher + +Setup +Navigate to your project directory: + +Bash +cd Spell-Sense +Install the required dependencies: + +Bash +pip install -r requirements.txt +🛠️ Usage +Run the script from your terminal: + +Bash +python main.py +Type a word into the input box. + +Press Enter or click Check. + +View the suggestion or success message below. + +Click Reset to clear the fields. + +📝 Credits +This project was developed as an enhanced alternative to basic scripts in this repository. It focuses on modularity, error handling, and improved User Experience (UX). + +License +This project is open-source and intended for educational use. \ No newline at end of file