{"id":36964338,"url":"https://github.com/susamn/helpful-tools-v2","last_synced_at":"2026-01-13T19:28:47.000Z","repository":{"id":328098301,"uuid":"1048796237","full_name":"susamn/helpful-tools-v2","owner":"susamn","description":"Privacy-focused local developer toolkit: JSON/YAML formatters, regex tester, diff viewer, JWT decoder \u0026 more","archived":false,"fork":false,"pushed_at":"2025-12-18T16:40:47.000Z","size":7834,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T20:34:25.439Z","etag":null,"topics":["autosuggestion","devtools","flask","graph","json","local","mathematics","plotting","privacy","productivity","python","regex","scientific-calculator","textdiff","tools","yaml"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/susamn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-02T03:29:01.000Z","updated_at":"2025-12-18T16:40:52.000Z","dependencies_parsed_at":"2025-12-12T00:05:49.928Z","dependency_job_id":null,"html_url":"https://github.com/susamn/helpful-tools-v2","commit_stats":null,"previous_names":["susamn/helpful-tools-v2"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/susamn/helpful-tools-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/susamn%2Fhelpful-tools-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/susamn%2Fhelpful-tools-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/susamn%2Fhelpful-tools-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/susamn%2Fhelpful-tools-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/susamn","download_url":"https://codeload.github.com/susamn/helpful-tools-v2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/susamn%2Fhelpful-tools-v2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28397826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autosuggestion","devtools","flask","graph","json","local","mathematics","plotting","privacy","productivity","python","regex","scientific-calculator","textdiff","tools","yaml"],"created_at":"2026-01-13T19:28:46.222Z","updated_at":"2026-01-13T19:28:46.994Z","avatar_url":"https://github.com/susamn.png","language":"JavaScript","funding_links":["https://paypal.me/SupratimSamanta"],"categories":[],"sub_categories":[],"readme":"# Helpful Tools v2\n\n[![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)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![Code style: flake8](https://img.shields.io/badge/code%20style-flake8-orange.svg)](https://flake8.pycqa.org/)\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Support-yellow?style=flat\u0026logo=buy-me-a-coffee)](https://paypal.me/SupratimSamanta)\n\nA comprehensive web-based developer toolkit built with Flask. Simple, fast, and privacy-focused - all tools run locally with no data sent to external servers.\n\n![Dashboard](screenshots/dashboard.png)\n\n## Features\n\n- **11 Developer Tools** - JSON/YAML formatters, converters, diff viewer, regex tester, aws-sf-viewer and more\n- **History Tracking** - Save and retrieve tool usage across sessions\n- **Configurable** - Enable/disable tools via configuration\n- **Modern UI** - Clean, responsive interface\n- **Privacy-First** - All processing happens locally\n\n## Available Tools\n\n| Tool | Description | Status          |\n|------|-------------|-----------------|\n| **Scratchpad** | Simple note-taking tool with history tracking | Disabled (Beta) |\n| **JSON Tool** | Format, validate, and minify JSON data | Stable          |\n| **YAML Tool** | Format, validate, and work with YAML data | Stable          |\n| **JSON-YAML-XML Converter** | Bidirectional format conversion | Stable          |\n| **Text Diff Tool** | Compare text side-by-side with highlighting | Stable          |\n| **Regex Tester** | Interactive regex testing with live highlighting | Stable          |\n| **Cron Parser** | Parse cron expressions with human-readable output | Stable          |\n| **Scientific Calculator** | Advanced calculator with graphing support | Stable          |\n| **JWT Decoder** | Decode and analyze JWT tokens | Stable          |\n| **Sources Manager** | Manage data sources (local, S3, SFTP, HTTP) | Stable          |\n| **AWS Step Functions Viewer** | Visualize state machines | Beta            |\n\n## Screenshots\n\n### Source Manager\n![Source Manager](screenshots/source-manager-tool.png)\n\n### JSON Tool\n![JSON Tool](screenshots/json-tool.png)\n\n### Regex Tester\n![Regex Tester](screenshots/regex-tool.png)\n\n### Text Diff Tool\n![Text Diff Tool](screenshots/text-diff-tool.png)\n\n### Cron Parser\n![Cron Parser](screenshots/cron-tool.png)\n\n### Scientific Calculator\n![Scientific Calculator](screenshots/scientific-calculator.png)\n\n### AWS SF Viewer (Beta)\n![AWS SF Viewer](screenshots/aws-sf-viewer.png)\n\n## Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/susamn/helpful-tools-v2.git\ncd helpful-tools-v2\n\n# Run the quick-start script (creates venv, installs deps, starts server)\n./quick-start.sh\n\n# Or start manually\npython3 -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -r requirements.txt\npython app.py\n```\n\nOpen your browser to: `http://127.0.0.1:8000`\n\n### Command Line Options\n\n```bash\npython app.py --port 8080        # Run on different port\npython app.py --host 0.0.0.0     # Bind to all interfaces\n```\n\n## Configuration\n\n### Tools\n\nTools can be enabled/disabled via `config/config.json`:\n\n```json\n{\n  \"tools\": {\n    \"json-tool\": {\n      \"enabled\": true,\n      \"description\": \"JSON formatter and validator\"\n    },\n    \"aws-sf-viewer\": {\n      \"enabled\": false,\n      \"description\": \"AWS Step Functions state machine viewer\"\n    }\n  }\n}\n```\n\nSet `\"enabled\": false` to hide a tool from the dashboard and disable its route.\n\n### Source Types\n\nThe Sources Manager supports multiple data source types. You can enable/disable source types in `config/config.json`:\n\n```json\n{\n  \"source_types\": {\n    \"http\": {\n      \"enabled\": true,\n      \"description\": \"HTTP/HTTPS URL resources\"\n    },\n    \"s3\": {\n      \"enabled\": true,\n      \"description\": \"AWS S3 buckets\"\n    },\n    \"local_file\": {\n      \"enabled\": false,\n      \"description\": \"Local file system\"\n    },\n    \"sftp\": {\n      \"enabled\": false,\n      \"description\": \"SFTP servers\"\n    },\n    \"samba\": {\n      \"enabled\": false,\n      \"description\": \"Samba/SMB network shares\"\n    }\n  }\n}\n```\n\nOnly enabled source types will appear in the Sources Manager dropdown.\n\n## Project Structure\n\n```\nhelpful-tools-v2/\n├── app.py                  # Application entry point\n├── config/\n│   └── config.json         # Tool configuration\n├── src/\n│   ├── main.py             # Flask application and routes\n│   ├── api/                # API modules (history, converter)\n│   ├── sources/            # Data source implementations\n│   └── validators/         # Data validation system\n├── frontend/\n│   ├── tools/              # HTML templates for each tool\n│   └── static/             # CSS and JavaScript\n└── tests/                  # Test suite\n```\n\n## API Endpoints\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/` | GET | Dashboard |\n| `/api/tools` | GET | List enabled tools |\n| `/api/source-types` | GET | List enabled source types |\n| `/api/convert` | POST | Format conversion |\n| `/api/text-diff/compare` | POST | Text comparison |\n| `/api/history/\u003ctool\u003e` | GET/POST | Tool history |\n| `/health` | GET | Health check |\n\n## Roadmap\n\n### Planned Features\n\n- [ ] **Base64 Encoder/Decoder** - Encode/decode Base64 strings\n- [ ] **URL Encoder/Decoder** - URL encoding utilities\n- [ ] **Hash Generator** - MD5, SHA-1, SHA-256 hash generation\n- [ ] **UUID Generator** - Generate various UUID formats\n- [ ] **Color Picker** - Color format converter (HEX, RGB, HSL)\n- [ ] **Unix Timestamp Converter** - Convert between formats\n- [ ] **Markdown Preview** - Live markdown rendering\n- [ ] **SQL Formatter** - Format and beautify SQL queries\n- [ ] **HTML/CSS Minifier** - Minify web assets\n- [ ] **IP Address Tools** - Subnet calculator, CIDR notation\n\n### Improvements\n\n- [ ] Dark mode support\n- [ ] Export/import history\n- [ ] Keyboard shortcuts documentation\n- [ ] Plugin system for custom tools\n\n## Development\n\n### Running Tests\n\n```bash\n# Activate virtual environment\nsource venv/bin/activate\n\n# Run all tests\npython -m pytest tests/ -v\n\n# Run specific test category\npython -m pytest tests/api/ -v\npython -m pytest tests/converter/ -v\n\n# Run with coverage\npython -m pytest tests/ --cov=src --cov-report=html\n```\n\n### Adding New Tools\n\n1. Create HTML template in `frontend/tools/*-tool.html`\n2. Add CSS/JS assets in `frontend/static/`\n3. Add tool entry in `src/main.py` TOOLS list with unique `id`\n4. Add configuration in `config/config.json`\n5. Add tests in `tests/*-tool/`\n\n## Requirements\n\n- Python 3.8+\n- Flask 3.0+\n- PyYAML 6.0+\n- xmltodict 0.13+\n\nSee `requirements.txt` for complete list.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Acknowledgments\n\nBuilt with Flask, and inspired by the need for simple, local developer tools that respect privacy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusamn%2Fhelpful-tools-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsusamn%2Fhelpful-tools-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusamn%2Fhelpful-tools-v2/lists"}