Final Project: Tkinter-Based Phonebook Management System
Due: Tue May 5, 2026 11:59pm
Ungraded, 1,000 Possible Points1,000 Points Possible
In Progress
NEXT UP: Submit Assignment
Unlimited Attempts Allowed
Dear Students,
Your final programming project for this semester is to build a Tkinter-based Phonebook Management System using Python. This project will help you solidify your skills in GUI design, event-driven programming, file handling, and modular code organization.
Project Overview
You will create a single-window Tkinter application with the following components arranged vertically:
1. Search Bar
- A search input box
- A Search button
- Search must be case-insensitive and support partial matching across all fields
- Search results must immediately update the contact list display
2. Contact List Display
- A
ListboxorTreeviewshowing all saved contacts - Displays: First Name, Last Name, Phone Number, Email
- Must refresh after add, delete, or search actions
3. Contact Entry Section
A form with text inputs for:
- First Name
- Last Name
- Phone Number
Below this form:
- An Add button to insert a new contact
- A Delete button to remove the selected contact from the list
Validation is required: empty fields must not be accepted.
4. Persistent Storage via CSV
- Load all contacts from a CSV file on program startup
- Save all additions and deletions back to the CSV file
- You may use only Pythons built-in modules (
csv,tkinter, etc.)
Testing & Submission
Your script must:
- Run without errors
- Load existing contacts correctly
- Add, delete, and search contacts accurately
- Update the CSV file appropriately
- Display data properly in the GUI
Submit a single .py file through Canvas.
Docstrings are not required this semester, but your code should still be reasonably readable with clear naming and comments where needed.
All submissions must be uploaded to Canvas.
Updated Grading Criteria
| Criteria | Description | Points |
|---|---|---|
| 1. Add Functionality | Correctly inserts a new contact; validates fields; updates list and CSV. | 15% |
| 2. Delete Functionality | Deletes the selected contact from both the GUI list and CSV; handles errors gracefully. | 10% |
| 3. Search Functionality | Case-insensitive, partial-match search across all fields; updates display. | 10% |
| 4. GUI Contact List Display | Clear, readable list using Listbox/Treeview; correct refreshing behavior. | 10% |
| 5. CSV Data Persistence | Loads on startup; reliably writes updates; preserves data across runs. | 10% |
| 6. GUI Layout & Usability | Clean, functional, intuitive one-page interface; proper widget organization. | 10% |
| 7. Code Modularity | Logical function separation (e.g., load, save, add, delete, search); no redundant logic. | 10% |
| 8. Error Handling & User Guidance | Handles invalid input, missing selections, file issues; provides clear messages (console or GUI). | 10% |
| 9. Readability (Docstrings Not Required) | Clear variable/function naming and consistent formatting. | 15% |
Choose a submission type
Leave a Reply
You must be logged in to post a comment.