Skip to content
frappePublic

About

Frappe Toolbox — everyday calculators, converters, and India business lookups (Frappe 17 + Vue 3 PWA)

Resources

Stars

6 stars

Watchers

1 watching

Forks

Repository files navigation

Toolbox

Free online calculators, converters and lookups. No account, and nothing stored about you.

frappe.tools  ·  License: AGPL v3

Toolbox is a Frappe Framework web application of small, focused utilities. It owns the whole site, so each tool sits at the site root: /calculator, not /toolbox/calculator.

The site needs no account. There is no signup, no login, and no user record. Every visitor is a Guest, and the page renders the same for all of them.

Results are deterministic, and Toolbox uses no AI. Most calculations run in the browser. Toolbox also states the limits of its data. A fetch time is never shown as a source update time, and reference data is never labeled "live".

A browser can install Toolbox as a PWA. Then 26 of the 33 tools work with no connection. The four dataset lookups still need one, and the currency converter falls back to the rates it stored last.

Tools

Toolbox has 33 tools in seven categories. Each tool has its own URL.

Category Tools
Calculate (7) Calculator · EMI Calculator · Compound Interest Calculator · SIP Calculator · CAGR Calculator · Future Value Calculator · Break-Even Calculator
Convert (11) Length Converter · Area Converter · Volume Converter · Weight Converter · Temperature Converter · Speed Converter · Time Unit Converter · Data Storage Converter · Fuel Consumption Converter · Currency Converter · Time Zone Converter
Health (4) BMI Calculator · BMR Calculator · TDEE Calculator · Pace Calculator
India (4) GST Calculator · HSN & SAC Lookup · PIN Code Search · IFSC Code Search
Time (3) Timer · Stopwatch · Countdown Timer
Information (2) Dictionary · Script Conversion
Media (2) Audio Recorder · Audio Editor

What Toolbox stores

Nothing on the server, and almost nothing in the browser.

Preferences use sessionStorage, so they end with the browser tab. No tool keeps a record of what was worked out in it.

Two values use localStorage, and only two:

  • The theme. It stops a returning dark-mode visitor from seeing a white page first.
  • The European Central Bank rate table. It lets the currency converter work on the first offline visit of a session.

Both hold public data, and neither one names anybody.

Data sources

Each dataset-backed tool ships its data through a versioned, checksum-verified manifest, and shows the "last updated" date of the source itself. The live site lists the same information at frappe.tools/data-sources.

Data Source License
PIN codes Department of Posts, via data.gov.in Government Open Data License – India
Bank IFSC codes Razorpay IFSC, derived from RBI and NPCI publications Public domain
HSN & SAC codes CBIC GST classification, compiled by India Compliance GNU General Public License v3
Dictionary Princeton WordNet 3.1 WordNet License
Currency rates European Central Bank Reference rates, for information only
India map outline geoBoundaries ADM1 CC BY 2.5 IN

The HSN and SAC lookup reads the release that Toolbox imports itself, so it needs no ERPNext or India Compliance install. The India Compliance project compiles the dataset. It is not a runtime dependency.

Installation

cd $PATH_TO_YOUR_BENCH
bench get-app $URL_OF_THIS_REPO --branch develop
bench install-app toolbox

Development

Run these commands from apps/toolbox.

yarn install
yarn dev            # Vite dev server
yarn build          # production assets
yarn test           # frontend unit tests (Vitest)
yarn test:e2e       # browser tests (Playwright)
yarn verify         # Vitest, build, Python tests, then Playwright

Run the Python tests from the bench root.

bench --site <site> run-tests --app toolbox

Let the dataset sync finish before you run the Python tests. migrate queues the sync, and an import holds row locks that the integration tests wait for.

Run the full Playwright matrix on its own. Two matrices at once, or one beside a build, starve the single web server, and every test then fails on a navigation timeout that reads like a real regression.

The application icons are generated, not drawn by hand. Run python scripts/generate_icons.py after any change to the geometry, then python scripts/build_og_card.py to rebuild the social card from the new 512px icon.

Contributing

This app uses pre-commit for formatting and linting. Install pre-commit and enable it:

cd apps/toolbox
pre-commit install

Ruff formats and lints the Python. ESLint checks the JavaScript and Vue files.

Do not run pre-commit run --all-files. It includes the Prettier hook, and the installed version reformats the whole frontend against its own conventions. Run one hook at a time instead:

pre-commit run ruff --all-files
pre-commit run ruff-format --all-files
pre-commit run eslint --all-files

Write JavaScript and Vue with single quotes, no semicolons, and two-space indentation.

License

GNU Affero General Public License v3.0

About

Frappe Toolbox — everyday calculators, converters, and India business lookups (Frappe 17 + Vue 3 PWA)

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages