A powerful Python GUI application for exploring economic development data using CustomTkinter. Search through OECD-style datasets and reports with an intuitive interface.
- Modern GUI: Built with CustomTkinter for a sleek, modern interface
- Dual Search: Search both CSV datasets and text/JSON reports
- Keyword Matching: Intelligent keyword search across all data fields
- Real-time Results: Instant search results with highlighted matches
- OECD-style Data: Pre-loaded with sample economic indicators (GDP, education, inequality)
- Flexible Format: Supports CSV, TXT, and JSON data formats
- No Database Required: Uses file-based storage with pandas for processing
- Python 3.8 or higher
- pip (Python package installer)
-
Clone or download this project
# Download the files to your local machine git clone https://github.com/Vasishta03/EconoVisionAi -
Install dependencies
# Using the provided script (Linux/Mac) chmod +x install.sh ./install.sh # Or manually install pip install -r requirements.txt
-
Run the application
python main.py
EconoVisionAI/
├── main.py # Main GUI application
├── requirements.txt # Python dependencies
├── install.sh # Installation script
├── README.md # This file
├── data/ # CSV datasets folder
│ ├── gdp.csv # GDP data for various countries
│ ├── education.csv # Education spending and metrics
│ └── inequality.csv # Income inequality indicators
├── reports/ # Report summaries folder
│ ├── india_2022.txt # India economic report (text)
│ ├── brazil_2023.txt # Brazil economic report (text)
│ ├── germany_2023.json # Germany data (JSON format)
│ └── usa_2023.json # USA analysis (JSON format)
└── utils/ # Utility functions
├── __init__.py
└── search_utils.py # Advanced search functionality
- Enter keywords like "GDP India", "education Brazil", or "inequality"
- Click "🔍 Search Data (CSV)" to search through economic datasets
- View matching records with country, year, and indicator values
- Use keywords like "policy", "growth", "development", or country names
- Click "📄 Search Reports" to search through text and JSON reports
- Get contextual results with highlighted matches
- Click "🗑️ Clear Results" to reset the search interface
| Search Type | Keywords | Expected Results |
|---|---|---|
| GDP Data | "GDP India", "United States 2022" | GDP figures, growth rates |
| Education | "education spending", "enrollment" | Education metrics by country |
| Inequality | "gini", "poverty", "income share" | Inequality indicators |
| Country Reports | "Brazil policy", "Germany innovation" | Report excerpts and analysis |
- GDP Data: 24 countries with GDP, per capita income, growth rates
- Education Data: 20 countries with spending, enrollment rates
- Inequality Data: 20 countries with Gini coefficients, poverty rates
- India 2022: Comprehensive economic survey with growth analysis
- Brazil 2023: Economic outlook with social development focus
- Germany 2023: Detailed economic indicators and policy recommendations (JSON)
- USA 2023: Economic analysis with education and inequality data (JSON)
-
CSV Files: Place in
data/folder- Must have headers in first row
- Searchable columns: Country, Year, any text/numeric fields
- Example:
data/your_data.csv
-
Report Files: Place in
reports/folder- Text files:
.txtformat with any content - JSON files:
.jsonformat with structured data - Example:
reports/your_report.txt
- Text files:
- Edit
main.pyto customize the GUI layout - Modify colors, fonts, and button styles using CustomTkinter options
- Add new search filters in the
search_utils.pymodule
The application supports CustomTkinter themes:
- Dark Mode (default): Modern dark interface
- Light Mode: Change in
main.py:ctk.set_appearance_mode("light") - Color Themes: blue (default), dark-blue, green
- CustomTkinter: Modern GUI framework
- Pandas: Data processing and CSV handling
- JSON: Built-in JSON parsing
- OS/Glob: File system operations
- Case-insensitive keyword matching
- Multi-column search in CSV files
- Context-aware text search in reports
- JSON structure traversal for nested data
- Relevance scoring for better results
- Optimized for datasets up to 10,000 rows
- Lazy loading of data files
- Efficient pandas filtering
- Responsive UI with progress feedback
We welcome contributions! Here's how you can help:
- Add more sample data: Create additional CSV files with economic indicators
- Improve search functionality: Enhance the search algorithms
- UI improvements: Suggest better layouts or features
- Documentation: Help improve this README or add code comments
This project is licensed under the MIT License - see below for details:
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- OECD: Data structure inspired by OECD economic indicators
- CustomTkinter: Amazing modern GUI framework for Python
- Pandas: Powerful data manipulation library
- Python Community: For excellent documentation and support
If you encounter any issues or have questions:
- Check the troubleshooting section above
- Verify your Python version (3.8+ required)
- Ensure all dependencies are properly installed
- Check file permissions for data and reports folders
EconoVisionAI - Making economic data exploration simple and interactive