A web-based tool for visualizing CURL commands and handling JWT tokens with an intuitive interface.
1. CURL Visualization
- Parses and visualizes CURL commands in a user-friendly format.
- Displays HTTP method, URL, headers, and request body.
- Allows sending requests directly from the interface.
- Shows response status code, response time, and response body.
2. JWT Tools
- JWT Token Generation (Encoding):
- Input payload in JSON format.
- Set a secret key.
- Choose an algorithm (HS256, HS384, HS512).
- Option to automatically set expiration time.
- JWT Token Verification (Decoding):
- Decode tokens to view the payload.
- Verify the signature using the secret key.
- Display verification status.
3. Request Management
- Save frequently used requests.
- View a list of saved requests.
- Edit and delete requests.
- Load saved requests for reuse.
Frontend:
- HTML, CSS, and JavaScript.
- Pure JavaScript SPA implementation.
Backend:
- Python 3.9+ with Flask framework.
- PyJWT for token handling.
- SQLite for request storage.
-
Requirements:
- Docker and Docker Compose
- Alternatively, Python 3.9+ and Poetry
-
Run with Docker:
Build and run the container using:
docker-compose up --build -
Run Locally with Poetry:
- Install Poetry:
curl -sSL https://install.python-poetry.org | python3 - - Install dependencies:
poetry install - Run the application:
poetry run python app.py
- Install Poetry:
-
Access the Application:
Open your browser and navigate to http://localhost:8282
-
Code Formatting:
poetry run black . -
Linting:
poetry run flake8 -
Testing:
poetry run pytest
- Request data is stored in an SQLite database.
- The database file is located at /data/requests.db.
- Data persistence is managed through Docker volumes.
.
├── app.py (Main Flask application file)
├── static/
│ ├── script.js (Frontend JavaScript)
│ └── styles.css (CSS styles for UI)
├── templates/
│ └── index.html (Main HTML template)
├── docker-compose.yml (Docker Compose configuration)
├── Dockerfile (Docker build instructions)
└── pyproject.toml (Poetry project configuration)
This project is licensed under the MIT License.