A powerful Flask-based web application for data manipulation, file processing, and development utilities. Workbench provides a comprehensive suite of tools for working with CSV files, raw text editing, file downloads, and command execution in a modern web interface.
- File Download: Download files from URLs with automatic filename detection
- File Viewing: View and process files directly from URLs
- Local File Support: Handle local files with proper sanitization
- Interactive CSV Editing: Full-featured spreadsheet-like interface
- Pagination: Handle large CSV files with configurable page sizes
- Real-time Editing: Edit cells directly with immediate updates
- Export Options: Download edited CSV files
- Data Validation: Built-in data type handling and validation
- Syntax Highlighting: Support for various file formats
- Large File Handling: Efficient processing of large text files
- Save/Download: Save changes and download processed files
- Theme Support: Dark/light theme switching
- Terminal Integration: Execute system commands through the web interface
- Timeout Protection: Commands timeout after 30 seconds for safety
- Output Capture: View both stdout and stderr output
- Error Handling: Comprehensive error reporting
- Modern Design: Clean, responsive web interface
- Dark Theme: Built-in dark mode support
- Real-time Clock: Live time and date display
- Session Management: Persistent user sessions
- Python 3.10+
- pip (Python package manager)
-
Clone the repository:
git clone <repository-url> cd workbench
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
Run the application locally:
python workbench.py
The application will start on http://localhost:9000
(or the port specified in the PORT
environment variable).
The application is configured for deployment on platforms like Heroku:
# Set environment variables
export PORT=5000
export FLASK_ENV=production
# Run with gunicorn
gunicorn workbench:app --bind 0.0.0.0:$PORT
GET /
- Main application interfacePOST /
- Handle file downloads and URL processing
GET /csv-editor
- CSV editor interfaceGET /csv-edit
- CSV editing with paginationPOST /csv-edit
- Update CSV dataPOST /update-csv-edit
- Real-time CSV cell updatesPOST /download_csv
- Download CSV files
GET /raw-editor
- Raw text editor interfacePOST /save_raw
- Save raw text contentPOST /download_raw
- Download raw text files
POST /execute_command
- Execute system commandsPOST /set-theme
- Change application themePOST /save-settings
- Save user preferences
PORT
- Server port (default: 9000)FLASK_ENV
- Flask environment (development/production)
The application supports various user-configurable settings:
- Theme preferences (dark/light)
- CSV pagination settings
- Editor preferences
- Flask 2.3.3 - Web framework
- pandas 2.0.3 - Data manipulation and analysis
- numpy 1.24.3 - Numerical computing
- requests 2.31.0 - HTTP library
- gunicorn 21.2.0 - WSGI HTTP server
- Commands are executed with a 30-second timeout
- File downloads are validated and sanitized
- Session management with secure keys
- Input validation for all user inputs
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source. Please check the repository for specific licensing information.
For issues, questions, or contributions, please use the repository's issue tracker.