An open API service indexing awesome lists of open source software.

https://github.com/susamn/helpful-tools-v2

Privacy-focused local developer toolkit: JSON/YAML formatters, regex tester, diff viewer, JWT decoder & more
https://github.com/susamn/helpful-tools-v2

autosuggestion devtools flask graph json local mathematics plotting privacy productivity python regex scientific-calculator textdiff tools yaml

Last synced: 13 days ago
JSON representation

Privacy-focused local developer toolkit: JSON/YAML formatters, regex tester, diff viewer, JWT decoder & more

Awesome Lists containing this project

README

          

# Helpful Tools v2

[![CI](https://github.com/susamn/helpful-tools-v2/actions/workflows/ci.yml/badge.svg)](https://github.com/susamn/helpful-tools-v2/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![Code style: flake8](https://img.shields.io/badge/code%20style-flake8-orange.svg)](https://flake8.pycqa.org/)

[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Support-yellow?style=flat&logo=buy-me-a-coffee)](https://paypal.me/SupratimSamanta)

A comprehensive web-based developer toolkit built with Flask. Simple, fast, and privacy-focused - all tools run locally with no data sent to external servers.

![Dashboard](screenshots/dashboard.png)

## Features

- **11 Developer Tools** - JSON/YAML formatters, converters, diff viewer, regex tester, aws-sf-viewer and more
- **History Tracking** - Save and retrieve tool usage across sessions
- **Configurable** - Enable/disable tools via configuration
- **Modern UI** - Clean, responsive interface
- **Privacy-First** - All processing happens locally

## Available Tools

| Tool | Description | Status |
|------|-------------|-----------------|
| **Scratchpad** | Simple note-taking tool with history tracking | Disabled (Beta) |
| **JSON Tool** | Format, validate, and minify JSON data | Stable |
| **YAML Tool** | Format, validate, and work with YAML data | Stable |
| **JSON-YAML-XML Converter** | Bidirectional format conversion | Stable |
| **Text Diff Tool** | Compare text side-by-side with highlighting | Stable |
| **Regex Tester** | Interactive regex testing with live highlighting | Stable |
| **Cron Parser** | Parse cron expressions with human-readable output | Stable |
| **Scientific Calculator** | Advanced calculator with graphing support | Stable |
| **JWT Decoder** | Decode and analyze JWT tokens | Stable |
| **Sources Manager** | Manage data sources (local, S3, SFTP, HTTP) | Stable |
| **AWS Step Functions Viewer** | Visualize state machines | Beta |

## Screenshots

### Source Manager
![Source Manager](screenshots/source-manager-tool.png)

### JSON Tool
![JSON Tool](screenshots/json-tool.png)

### Regex Tester
![Regex Tester](screenshots/regex-tool.png)

### Text Diff Tool
![Text Diff Tool](screenshots/text-diff-tool.png)

### Cron Parser
![Cron Parser](screenshots/cron-tool.png)

### Scientific Calculator
![Scientific Calculator](screenshots/scientific-calculator.png)

### AWS SF Viewer (Beta)
![AWS SF Viewer](screenshots/aws-sf-viewer.png)

## Quick Start

```bash
# Clone the repository
git clone https://github.com/susamn/helpful-tools-v2.git
cd helpful-tools-v2

# Run the quick-start script (creates venv, installs deps, starts server)
./quick-start.sh

# Or start manually
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.py
```

Open your browser to: `http://127.0.0.1:8000`

### Command Line Options

```bash
python app.py --port 8080 # Run on different port
python app.py --host 0.0.0.0 # Bind to all interfaces
```

## Configuration

### Tools

Tools can be enabled/disabled via `config/config.json`:

```json
{
"tools": {
"json-tool": {
"enabled": true,
"description": "JSON formatter and validator"
},
"aws-sf-viewer": {
"enabled": false,
"description": "AWS Step Functions state machine viewer"
}
}
}
```

Set `"enabled": false` to hide a tool from the dashboard and disable its route.

### Source Types

The Sources Manager supports multiple data source types. You can enable/disable source types in `config/config.json`:

```json
{
"source_types": {
"http": {
"enabled": true,
"description": "HTTP/HTTPS URL resources"
},
"s3": {
"enabled": true,
"description": "AWS S3 buckets"
},
"local_file": {
"enabled": false,
"description": "Local file system"
},
"sftp": {
"enabled": false,
"description": "SFTP servers"
},
"samba": {
"enabled": false,
"description": "Samba/SMB network shares"
}
}
}
```

Only enabled source types will appear in the Sources Manager dropdown.

## Project Structure

```
helpful-tools-v2/
├── app.py # Application entry point
├── config/
│ └── config.json # Tool configuration
├── src/
│ ├── main.py # Flask application and routes
│ ├── api/ # API modules (history, converter)
│ ├── sources/ # Data source implementations
│ └── validators/ # Data validation system
├── frontend/
│ ├── tools/ # HTML templates for each tool
│ └── static/ # CSS and JavaScript
└── tests/ # Test suite
```

## API Endpoints

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/` | GET | Dashboard |
| `/api/tools` | GET | List enabled tools |
| `/api/source-types` | GET | List enabled source types |
| `/api/convert` | POST | Format conversion |
| `/api/text-diff/compare` | POST | Text comparison |
| `/api/history/` | GET/POST | Tool history |
| `/health` | GET | Health check |

## Roadmap

### Planned Features

- [ ] **Base64 Encoder/Decoder** - Encode/decode Base64 strings
- [ ] **URL Encoder/Decoder** - URL encoding utilities
- [ ] **Hash Generator** - MD5, SHA-1, SHA-256 hash generation
- [ ] **UUID Generator** - Generate various UUID formats
- [ ] **Color Picker** - Color format converter (HEX, RGB, HSL)
- [ ] **Unix Timestamp Converter** - Convert between formats
- [ ] **Markdown Preview** - Live markdown rendering
- [ ] **SQL Formatter** - Format and beautify SQL queries
- [ ] **HTML/CSS Minifier** - Minify web assets
- [ ] **IP Address Tools** - Subnet calculator, CIDR notation

### Improvements

- [ ] Dark mode support
- [ ] Export/import history
- [ ] Keyboard shortcuts documentation
- [ ] Plugin system for custom tools

## Development

### Running Tests

```bash
# Activate virtual environment
source venv/bin/activate

# Run all tests
python -m pytest tests/ -v

# Run specific test category
python -m pytest tests/api/ -v
python -m pytest tests/converter/ -v

# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html
```

### Adding New Tools

1. Create HTML template in `frontend/tools/*-tool.html`
2. Add CSS/JS assets in `frontend/static/`
3. Add tool entry in `src/main.py` TOOLS list with unique `id`
4. Add configuration in `config/config.json`
5. Add tests in `tests/*-tool/`

## Requirements

- Python 3.8+
- Flask 3.0+
- PyYAML 6.0+
- xmltodict 0.13+

See `requirements.txt` for complete list.

## License

MIT License - see [LICENSE](LICENSE) for details.

## Contributing

Contributions are welcome! Please:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## Acknowledgments

Built with Flask, and inspired by the need for simple, local developer tools that respect privacy.