This project is a graphical user interface (GUI) registration form built with Python’s Tkinter library. It allows users to enter their name, email, phone number, and comments, validates the inputs for correctness, and saves the data securely into a local CSV file for easy record-keeping.
It’s simple, elegant, and demonstrates key Object-Oriented Programming (OOP) and data validation concepts in Python.
✨ Features
✅ Modern Tkinter GUI with custom colors and fonts ✅ Real-time input validation for email and phone numbers ✅ Data persistence — automatically saves submissions to user_data.csv ✅ “View Data” feature to open and read stored data ✅ “Clear” button to reset all input fields ✅ Timestamp for every user submission
🖥️ GUI Preview
The form includes the following input fields:
Name
Phone Number
Comments
and three main buttons:
Submit → Save user data into CSV
Clear → Reset the form
View Data → Display all saved records
🧠 Core Concepts Used
Tkinter for GUI design
Regular Expressions (re) for validating emails and phone numbers
CSV Module for data storage
Datetime for timestamps
OS Module for file management
⚙️ How It Works
Launch the app:
python Gui.py
Fill out all fields in the form.
Click Submit to save your data into user_data.csv.
Click Clear to reset the form.
Click View Data to open a new window showing all saved records.
🧾 File Structure project-folder/ │ ├── Gui.py # Main Python script (the form) ├── user_data.csv # Auto-created CSV file to store submissions └── README.md # Documentation (this file)
💡 Validation Rules
Email: Must follow a standard email format (e.g., user@example.com ).
Phone Number: Must be 10–15 digits, numbers only (no symbols or letters).
If validation fails, a clear error message is shown using Tkinter’s messagebox.
🧰 Requirements
Python 3.x
Tkinter (usually comes pre-installed)
To confirm Tkinter is installed, run:
python -m tkinter
If a blank window appears, you’re good to go.
🌟 Future Improvements
Add database storage (SQLite or MySQL)
Export data as Excel or PDF
Add login system or user authentication
Include dropdowns or gender selection options More to come on this