This is a Flask web application that provides various developer tools including a Diff Viewer, JSON Validator, Regex Checker, and Regex Generator.
- Validator: Validate JSON format and against schema
- Schema Generator: Generate schema from JSON input
- Sample Data Generator: Create sample data from schema
- JSON-String Converter: Convert between JSON object and string
- Parser: Beautify and format JSON
- Checker: Validate strings against regular expressions
- Generator: Generate regex patterns for common formats
- Character/Word Counter: Count chars/words/lines, supports custom delimiters
- Column Extractor: Extract specific columns from delimited text
- Text Cleaner: Clean and format text
- Text Statistics: Generate text metrics
- Diff Viewer: Compare text and visualize differences
- Random Generators: Generate random numbers and strings
- Shuffle Letters: Randomize text characters
- Fake Data Generator: Generate sample datasets (up to 1000 records)
- Categories: Personal, Professional, Vehicle, Technical
- Export to JSON/CSV
- Customizable fields and data types
- Markdown/PDF Converter: Convert between Markdown and PDF formats
- Preserves formatting and structure
- Supports headings, lists, code blocks
- Both MD to PDF and PDF to MD conversion
- Time Converter: Convert between various time formats (ISO/EPOCH)
- CRON Scheduler: Create CRON expressions visually
- Base64 Encoder/Decoder: Convert to/from base64
- JWT Viewer: Decode and view JWT tokens
-
Clone this repository:
git clone https://github.com/vib795/everyday-developer-tools.git
-
Navigate to the project directory:
cd developer-tools
-
Install dependencies using pip:
pip install -r requirements.txt
-
Run the Flask application using the branch flask-app:
flask run
-
Open a web browser and navigate to http://localhost:5000.
-
Choose a tool from the navigation menu on the left.
For deploying the application in a containerized environment with Docker, ensuring scalability and ease of deployment:
- Build and Deploy with Docker Compose:
Dev buildORdocker-compose -f docker-compose-dev.yml up --build
Deployable builddocker-compose -f docker-compose.yml up --build
This command builds the Docker images and starts the containers as defined in the docker-compose.yml
file.
- Running a Pre-Built Container:
docker run -p 5000:5000 utkarshsingh/developer-tools-dev:latest
To secure the application with HTTPS, follow these steps:
- Generate SSL/TLS Certificates:
For local testing, generate a self-signed SSL certificate:
mkdir -p certs && cd certs openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx-selfsigned.key -out nginx-selfsigned.crt
For production, obtain certificates from Let's Encrypt or another CA.
- Configure Nginx for HTTPS:
Update
nginx/nginx.conf
to include the SSL certificate and key, and configure Nginx to listen on HTTPS:server { listen 443 ssl; server_name localhost; # Update to your domain for production ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/certs/nginx-selfsigned.key; # SSL configuration... location / { proxy_pass http://web:5000; # Proxy settings... } }
Update docker-compose.yml to mount the certificates directory into the Nginx container.
- To pull from Docker hub (dev build):
docker pull utkarshsingh/developer-tools-dev:latest
- 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.
- Gunicorn: A WSGI HTTP Server for serving Flask applications in production, offering a robust option to handle concurrent requests.
- We are using redis to rate limit the site to avoid DDoS or ReDoS attacks.
- 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.
-
This installs redis on an ubuntu server and checks for its status.
sudo apt-get update && sudo apt-get install redis-server -y && sudo systemctl status redis
-
Check status of redis server:
redis-cli ping
You should receive
PONG
back. -
Install Redis python library
pip install redis
-
This 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.
Contributions are welcome! If you would like to contribute to this project, please follow these steps:
-
Fork the repository.
-
Create a new branch for your feature or bug fix:
git checkout -b feature-name
-
Make your changes and commit them:
git commit -m "Add feature-name"
-
Push to your branch:
git push origin feature-name
-
Submit a pull request.
A live demo of the application can be viewed here
This project is licensed under the MIT License - see the LICENSE file for details.