How mrunclejhay/csv-splitter works
CSV Splitter is a Flask web app for uploading a CSV, splitting it into row-limited files, tracking background progress, and downloading the results as a ZIP. The main workflow runs from the browser interface through upload validation and task dispatch, then through CSV processing and archive creation; the browser polls task status before downloading. The graph separates request handling, background processing, and file/task state. The README also describes progress updates, validation, and error handling; those are represented in the shared route and worker components. Only app.py was sampled, so links for unsampled frontend behavior are limited to the documented interactions.
Main entry points: index.html Splitter UI · app.py SplitTask Worker
Components 11
Browser Interface
- Splitter UI
templates/index.html
Flask Requests
- Flask Routes
app.py - Upload Handler
app.py - Status Handler
app.py - Download Handler
app.py
Split Processing
- SplitTask Worker
app.py - CSV Chunking
app.py - ZIP Creation
app.py
Task And Files
- Active Tasks
app.py - Uploaded And Output Files
app.py
Other components
- User Browser
Connections 20
- User Browser → Splitter UI: opens app
- Splitter UI → Flask Routes: requests page
- Flask Routes → Splitter UI: renders page
- Splitter UI → Upload Handler: submits CSV
- Upload Handler → Uploaded And Output Files: saves upload
- Upload Handler → Active Tasks: registers task
- Upload Handler → SplitTask Worker: starts worker
- SplitTask Worker → Uploaded And Output Files: reads CSV
- SplitTask Worker → CSV Chunking: chunks rows
- CSV Chunking → Uploaded And Output Files: writes parts
- SplitTask Worker → ZIP Creation: archives parts
- ZIP Creation → Uploaded And Output Files: writes ZIP
- SplitTask Worker → Active Tasks: updates task
- Splitter UI → Status Handler: polls progress
- Status Handler → Active Tasks: reads task
- Splitter UI → Download Handler: requests ZIP
- Download Handler → Active Tasks: checks task
- Download Handler → Uploaded And Output Files: sends ZIP
- Status Handler → Splitter UI: returns progress
- Download Handler → User Browser: delivers archive