ETA: Calculate remaining (waiting) time / estimated time of arrival.
Multi-Timer: Set and manage multiple countdown timers.
Hosted at entorb.net/eta/. Feedback is highly appreciated.
This project is a complete rewrite of github.com/entorb/eta using state of the art tech-stack. It is my first project in Vue.js and several tools have been explored, see below.
- Standing in a queue / waiting room / ...
- Estimate the time for a process/work to finish
- Homework sessions
- Lawn mowing / tractor driving / ...
- Book reading finish time
- Idle-Games
Weighted linear regression is applied to calculate the speed with an emphasis on the latest data points
- Boiling eggs and cooking tea in parallel
- Idle-Games
- doc/ideas.md shows open and completed feature ideas
- doc/tools.md details how to set up the tools
- doc/vue-how-to.md outlines the Vue.js tech-stack and provides links to documentation and how-tos
- doc/issus.md lists problems and obstacles, faced during development
Install npm packages_ npm install
Run live-updated dev-instance: npm run dev
Build and run: npm run run
npm run check
# this runs: format lint spell test-once
# unit test only
npm run test-once
# or run this to permanently retest upon file changes
npm run test
npm run build
npm run preview
npm run cy:open
Now in Cypress navigate to "E2E Testing" -> "Firefox" -> "Start E2E Testing in Firefox"
To update a single package
npm update vite
To update all packages and dependencies to their latest version:
npm i -g npm-check-updates
ncu -u
npm install
To force-cleanup of package cache:
rm -r node_modules package-lock.json
npm cache clean --force
npm install
- Prettier code formatter
- ESLint code linter
- CSpell code spell checker
- Vitest unit tests
- Cypress E2E tests
- Matomo visitor stats (locally hosted instance)
- SonarQube
see doc/tools.md
eslint throws
[MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of eslint.config.js is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to /Users/torben/GitHub/eta-vue/package.json.
(Use `node --trace-warnings ...` to show where the warning was created)
but setting "type": "module"
in package.json
prevents Cypress to start.
- notification sound
481151__matrixxx__cow-bells-01.mp3
is from freesound.org - favicon is
timer-outline
from MDI and converted via favicon.io