DataPulse is a Python-based Streamlit application that processes multiple Excel and CSV files, automatically detects Name and Last Updated Date columns, and identifies outdated records.
Primary Rule: Records are included only when they have not been updated for more than 5 calendar days.
- Upload multiple Excel (
.xlsx) and CSV (.csv) files. - Process multiple worksheets independently.
- Automatically detect Name and Date columns using fuzzy matching and content validation.
- Support multiple date formats, Excel serial dates, and timezone conversion.
- Customize column mappings, date preferences, timezone, and aging threshold.
- View matching records, skipped records, and processing errors.
- Export filtered records to Excel and TXT files.
- Preview reports before downloading.
- Secure in-memory file processing.
- Python 3.11+
- Streamlit
- Pandas
- OpenPyXL
- RapidFuzz
- python-dateutil
- Pytest
text
smart-data-filter/
├── app.py
├── config/
├── modules/
├── utils/
├── tests/
├── sample_data/
├── .streamlit/
├── requirements.txt
└── README.md
bash
git clone <repository-url>
cd smart-data-filter
python -m venv .venvActivate the virtual environment:
bash
# macOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activateInstall dependencies:
bash
pip install -r requirements.txtbash
streamlit run app.pyOpen http://localhost:8501 in your browser.
- Upload Excel or CSV files.
- Review and configure detected column mappings.
- Set the date threshold and other preferences.
- Click Process Records.
- Review results and download Excel or TXT reports.
python
Days Difference = Reference Date - Last Updated Date
Include if Days Difference > 5- 0–5 days: Excluded.
- 6+ days: Included.
- Future dates: Logged as errors.
The project includes 51 automated tests covering column detection, date parsing, filtering, file processing, and report generation.
bash
python -m pytest tests/ -v