A robust desktop application that intelligently parses messy text data, filters out noise, and exports clean records to multi-sheet Excel files. Built with Python and Tkinter, packaged as standalone executables for easy distribution.
Latest Release: v2.0.0 (October 16, 2025)
New Features: Multi-architecture support, intelligent noise filtering, robust data parsing
For End Users: Download and run the pre-built executable:
-
Download the appropriate package for your system:
- Windows 32-bit:
DataSorterApp_32_Distribution.zip(21.1 MB) - Windows 64-bit:
DataSorterApp_64_Distribution.zip(22.0 MB) - Universal Windows:
DataSorterApp_universal_Distribution.zip(22.0 MB) - All Architectures:
DataSorterApp_Complete_All_Architectures.zip(65.0 MB)
- Windows 32-bit:
-
Extract the ZIP file and run
DataSorterApp.exe -
No Python installation required!
For developers who want to modify the source code:
- Clone this repository:
git clone https://github.com/iniakponode/data_sorter_app.git
cd data_sorter_app- Create and activate virtual environment:
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate- Install dependencies:
pip install -r requirements.txt- For End Users: Windows OS (32-bit or 64-bit)
- For Developers: Python 3.8+ and dependencies listed in
requirements.txt
- Run the application:
python app.py- In the application window:
- Paste your records into the text area (records should be in KEY: VALUE format, separated by blank lines)
- Click the "Process and Export to Excel" button
- Choose where to save the Excel file
- View the confirmation message with the file location
The application now intelligently filters noise and extracts data from messy text:
PERSONAL DATA OF COOPERATIVE OWNERS
NAME: John Doe
CO-OP NAME: Alpha Co-op
PHONE NO: 08012345678
BANK NAME: First Bank
ACCT NO: 1234567890
SEX: MALE
YOU JUST HAVE NOW TILL 3PM TOMORROW TO SEND YOUR DETAILS
PLZ DON'T SEND TO OTHER NUMBERS
CEO NAME: Jane Smith
CO-OP NAME: Beta Co-op
PHONE NO: 08087654321
BANK NAME: GTB
ACCT NO: 0987654321
SEX: FEMALE
Key Features:
- π§ Intelligent Noise Filtering: Automatically removes headers, instructions, and irrelevant text
- π Smart Data Detection: Recognizes valid KEY: VALUE pairs amidst noise
- π Flexible Format Support: Handles variations in key names and formatting
- π Automatic Grouping: Records are grouped by the
CO-OP NAMEfield value - β¨ Robust Parsing: Works with real-world messy data formats
- π Data Validation: Ensures only valid records with sufficient data are processed
Supported Field Variations:
- Names:
NAME,CEO NAME,CEO - Phone:
PHONE NO,PHONE,Phone no - Bank:
BANK NAME,BANK,Bank Name - Account:
ACCT NO,ACCOUNT NO,ACC No,Acct. N0. - Cooperative:
CO-OP NAME,COOP NAME,COOPERATIVE NAME
- Robust Noise Filtering: Automatically removes headers, instructions, and irrelevant text
- Smart Data Detection: Recognizes valid KEY: VALUE pairs amidst messy data
- Flexible Format Support: Handles variations in field names and formatting
- Field Name Normalization: Intelligently matches similar field names (e.g., "PHONE NO", "Phone no", "PHONE")
- Automatic Column Detection: Uses first valid record to establish column structure
- Mixed Format Support: Handles both KEY: VALUE format and single values per line
- Record Boundary Detection: Intelligently separates records using blank lines
- Data Validation: Ensures only valid records with sufficient data are processed
- Multi-sheet Excel Export: Automatically groups records by CO-OP NAME
- Clean Formatting: Auto-adjusted column widths and professional styling
- Error Handling: Comprehensive error reporting and user feedback
- Simple GUI: Intuitive drag-and-drop or paste interface
- Real-time Processing: Instant feedback during data processing
- Cross-platform Executables: Standalone apps for Windows (32-bit, 64-bit, universal)
The application is available as ready-to-run executables:
| Package | Size | Target System | Contents |
|---|---|---|---|
DataSorterApp_32_Distribution.zip |
21.1 MB | Windows 32-bit | Executable + Documentation + Examples |
DataSorterApp_64_Distribution.zip |
22.0 MB | Windows 64-bit | Executable + Documentation + Examples |
DataSorterApp_universal_Distribution.zip |
22.0 MB | Universal Windows | Executable + Documentation + Examples |
DataSorterApp_Complete_All_Architectures.zip |
65.0 MB | All Windows | All executables + Documentation |
- β Ready-to-run executable (no Python installation required)
- β User documentation with installation and usage instructions
- β Example data file for testing
- β Launcher script for easy execution
The application window consists of:
- Instructions Label - Shows how to format input data
- Text Area - Large scrollable text field for pasting records
- Process Button - Green button to trigger data processing and export
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Data Sorter Application β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β First record: KEY: VALUE format (establishes columns) β
β Subsequent records: KEY: VALUE or single values per β
β line (Records separated by blank lines): β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β ββ
β β Name: John Doe ββ
β β CO-OP NAME: Alpha Co-op ββ
β β Member ID: 12345 ββ
β β Email: john@example.com ββ
β β ββ
β β Jane Smith ββ
β β Alpha Co-op ββ
β β 67890 ββ
β β jane@example.com ββ
β β ββ
β β Bob Johnson ββ
β β Beta Co-op ββ
β β 11111 ββ
β β bob@example.com ββ
β β ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββββββββββββββ β
β β Process and Export to Excel β β
β βββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Input:
Name: John Doe
CO-OP NAME: Alpha Co-op
Member ID: 12345
Name: Jane Smith
CO-OP NAME: Alpha Co-op
Member ID: 67890
Name: Bob Johnson
CO-OP NAME: Beta Co-op
Member ID: 11111
Output: An Excel file with two sheets:
- "Alpha Co-op" sheet containing John Doe and Jane Smith's records
- "Beta Co-op" sheet containing Bob Johnson's record
For developers who want to build their own executables:
# Activate virtual environment
.venv\Scripts\activate
# Install build dependencies
pip install pyinstaller
# Build for current architecture
python build_exe.py# Build for all Windows architectures
python create_packages.pyThis will create distribution packages for:
- 32-bit Windows systems
- 64-bit Windows systems
- Universal Windows compatibility
- Complete package with all architectures
The project includes a comprehensive test suite using pytest:
# Install test dependencies
pip install -r requirements.txt
# Run all tests
pytest test_app.py -v
# Run specific test categories
pytest test_app.py::test_parse_records -v
pytest test_app.py::test_group_by_coop -vTest Coverage:
- β Noise filtering and data extraction
- β Record parsing from messy text input
- β Field name normalization and matching
- β Grouping records by CO-OP NAME
- β Excel file creation with multiple sheets
- β Edge cases (empty input, missing fields, malformed data)
- β Integration testing of complete workflow
data_sorter_app/
βββ app.py # Main application with GUI
βββ example.py # Test data examples
βββ test_app.py # Comprehensive test suite
βββ requirements.txt # Python dependencies
βββ build_exe.py # Multi-architecture build script
βββ create_packages.py # Distribution package creator
βββ dist/ # Built executables
β βββ DataSorterApp.exe # 64-bit executable
β βββ DataSorterApp_x64.exe # 64-bit explicit
β βββ DataSorterApp_x86.exe # 32-bit executable
βββ *.zip # Distribution packages
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
For issues, questions, or contributions, please open an issue on the GitHub repository.