{"id":26218127,"url":"https://github.com/vib795/everyday-developer-tools","last_synced_at":"2026-04-13T04:45:29.210Z","repository":{"id":224088468,"uuid":"762079640","full_name":"vib795/everyday-developer-tools","owner":"vib795","description":"Everyday developer tools","archived":false,"fork":false,"pushed_at":"2025-05-15T11:59:19.000Z","size":906,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T12:41:24.375Z","etag":null,"topics":["contributions","contributions-welcome","developer","developer-productivity","developer-tools","docker","docker-compose","docker-image","dockerfile","flask","gunicorn","nginx","opensource","productivity","productivity-booster","productivity-tools","python","tools"],"latest_commit_sha":null,"homepage":"https://utkarshsingh0609.pythonanywhere.com/","language":"HTML","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/vib795.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}},"created_at":"2024-02-23T03:27:16.000Z","updated_at":"2025-05-15T11:59:17.000Z","dependencies_parsed_at":"2024-02-28T17:54:24.673Z","dependency_job_id":"91d56d3f-c48c-4762-b10a-09ddaf482a39","html_url":"https://github.com/vib795/everyday-developer-tools","commit_stats":null,"previous_names":["vib795/everyday-developer-tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vib795/everyday-developer-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vib795%2Feveryday-developer-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vib795%2Feveryday-developer-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vib795%2Feveryday-developer-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vib795%2Feveryday-developer-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vib795","download_url":"https://codeload.github.com/vib795/everyday-developer-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vib795%2Feveryday-developer-tools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269819032,"owners_count":24480087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["contributions","contributions-welcome","developer","developer-productivity","developer-tools","docker","docker-compose","docker-image","dockerfile","flask","gunicorn","nginx","opensource","productivity","productivity-booster","productivity-tools","python","tools"],"created_at":"2025-03-12T13:15:37.987Z","updated_at":"2026-04-13T04:45:29.191Z","avatar_url":"https://github.com/vib795.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Developer Tools Web Application\n\nThis is a Flask web application that provides various developer tools including a Diff Viewer, JSON Validator, Regex Checker, and Regex Generator.\n\n## Features\n\n### JSON Tools\n- **Validator:** Validate JSON format and against schema\n- **Schema Generator:** Generate schema from JSON input\n- **Sample Data Generator:** Create sample data from schema\n- **JSON-String Converter:** Convert between JSON object and string\n- **Parser:** Beautify and format JSON\n\n### RegEx Tools\n- **Checker:** Validate strings against regular expressions\n- **Generator:** Generate regex patterns for common formats\n\n### String Tools\n- **Character/Word Counter:** Count chars/words/lines, supports custom delimiters\n- **Column Extractor:** Extract specific columns from delimited text\n- **Text Cleaner:** Clean and format text\n- **Text Statistics:** Generate text metrics\n- **Diff Viewer:** Compare text and visualize differences\n- **Random Generators:** Generate random numbers and strings\n- **Shuffle Letters:** Randomize text characters\n\n### Data Generation\n- **Fake Data Generator:** Generate sample datasets (up to 1000 records)\n  - Categories: Personal, Professional, Vehicle, Technical\n  - Export to JSON/CSV\n  - Customizable fields and data types\n\n### Document Tools\n- **Markdown/PDF Converter:** Convert between Markdown and PDF formats\n  - Preserves formatting and structure\n  - Supports headings, lists, code blocks\n  - Both MD to PDF and PDF to MD conversion\n\n### Time \u0026 Scheduling\n- **Time Converter:** Convert between various time formats (ISO/EPOCH)\n- **CRON Scheduler:** Create CRON expressions visually\n\n### Encoding Tools\n- **Base64 Encoder/Decoder:** Convert to/from base64\n- **JWT Viewer:** Decode and view JWT tokens\n\n## Installation\n\n1. Clone this repository:\n\n    ```bash\n    git clone https://github.com/vib795/everyday-developer-tools.git\n    ```\n\n2. Navigate to the project directory:\n\n    ```bash\n    cd developer-tools\n    ```\n\n3. Install dependencies using uv (recommended):\n\n    ```bash\n    # create a virtualenv in .venv and install dependencies\n    uv venv\n    uv pip install -r requirements.txt\n\n    # or, if you've migrated to pyproject.toml + uv.lock:\n    # uv sync\n    ```\n\n## Usage\n\n1. Run the Flask application:\n\n    uv run flask run --host 0.0.0.0 --port 5000\n\n2. Open a web browser and navigate to [http://localhost:5000](http://localhost:5000).\n\n3. Choose a tool from the navigation menu on the left.\n\n## Production Deployment with Docker, Gunicorn, and Nginx\n### Dockerized Approach\nFor deploying the application in a containerized environment with Docker, ensuring scalability and ease of deployment:\n\n1. **Build and Deploy with Docker Compose:** \n    \u003cbr/\u003e_Dev build_\n    ```bash\n    docker-compose -f docker-compose-dev.yml up --build\n    ```\n    OR\n    \u003cbr/\u003e _Deployable build_\n    ```bash\n    docker-compose -f docker-compose.yml up --build\n    ``` \n    \nThis command builds the Docker images and starts the containers as defined in the `docker-compose.yml` file.\n\n2. **Running a Pre-Built Container:**\n    ```bash\n    docker run -p 5000:5000 utkarshsingh/developer-tools-dev:latest\n    ```\n\n### Making the Application HTTPS Compliant\nTo secure the application with HTTPS, follow these steps:\n\n1. **Generate SSL/TLS Certificates:**\nFor local testing, generate a self-signed SSL certificate:\n    ```bash\n    mkdir -p certs \u0026\u0026 cd certs\n    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx-selfsigned.key -out nginx-selfsigned.crt\n    ```\n\nFor production, obtain certificates from Let's Encrypt or another CA.\n\n2. **Configure Nginx for HTTPS:**\nUpdate `nginx/nginx.conf` to include the SSL certificate and key, and configure Nginx to listen on HTTPS:\n    ```nginx\n    server {\n        listen 443 ssl;\n        server_name localhost; # Update to your domain for production\n\n        ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;\n        ssl_certificate_key /etc/ssl/certs/nginx-selfsigned.key;\n\n        # SSL configuration...\n\n        location / {\n            proxy_pass http://web:5000;\n            # Proxy settings...\n        }\n    }\n    ```\nUpdate docker-compose.yml to mount the certificates directory into the Nginx container.\n\n3. **To pull from Docker hub (dev build):**\n    ```bash\n    docker pull utkarshsingh/developer-tools-dev:latest\n    ```\n\n### Why and How of Nginx and Gunicorn\n- **Nginx:** Acts as a reverse proxy, handling client requests efficiently before passing them to Gunicorn. It's also responsible for SSL/TLS termination, providing HTTPS support.\n- **Gunicorn:** A WSGI HTTP Server for serving Flask applications in production, offering a robust option to handle concurrent requests.\n\n### Redis for rate limiting\n- We are using redis to rate limit the site to avoid DDoS or ReDoS attacks.\n- This is installed as part of the docker image but you can do it manually as well, if you are running the flask app manually.\n    - This installs redis on an ubuntu server and checks for its status.   \n        ```bash \n        sudo apt-get update \u0026\u0026 sudo apt-get install redis-server -y \u0026\u0026 sudo systemctl status redis\n        ```\n    \n    - Check status of redis server:\n        ```bash\n        redis-cli ping\n        ```\n        You should receive `PONG` back.\n    - Install Redis python library\n        ```bash\n        pip install redis\n        ```\n    \nThis should set the app to be configured with redis and ready to use. Now you can run `flask app.py` and everything should work fine without docker intervention.\n\n\n## Contributing\n\nContributions are welcome! If you would like to contribute to this project, please follow these steps:\n\n1. Fork the [repository](https://github.com/vib795/everyday-developer-tools.git).\n\n2. Create a new branch for your feature or bug fix:\n\n    ```bash\n    git checkout -b feature-name\n    ```\n\n3. Make your changes and commit them:\n\n    ```bash\n    git commit -m \"Add feature-name\"\n    ```\n\n4. Push to your branch:\n\n    ```bash\n    git push origin feature-name\n    ```\n\n5. Submit a pull request.\n\n## Live demo\nA live demo of the application can be viewed \u003ca href=\"https://utkarshsingh0609.pythonanywhere.com/\" target=\"_blank\"\u003ehere\u003c/a\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvib795%2Feveryday-developer-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvib795%2Feveryday-developer-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvib795%2Feveryday-developer-tools/lists"}