Skip to content
/ eta-vue Public

ETA (estimated time of arrival) and MultiTimer, written in Vue.js

License

Notifications You must be signed in to change notification settings

entorb/eta-vue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ETA (Estimated Time of Arrival) and Multi-Timer

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.

ETA Use Cases

  • 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

Multi-Timer Use Cases

  • Boiling eggs and cooking tea in parallel
  • Idle-Games

Documentation

Build and Run this Project Locally

Install npm packages_ npm install

Run live-updated dev-instance: npm run dev

Build and run: npm run run

Check code after changes

Format and unit tests

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

Cypress E2E tests

npm run build
npm run preview
npm run cy:open

Now in Cypress navigate to "E2E Testing" -> "Firefox" -> "Start E2E Testing in Firefox"

Update

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

Support tools used for this project

see doc/tools.md

known issues

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.

Credits

  • notification sound 481151__matrixxx__cow-bells-01.mp3 is from freesound.org
  • favicon is timer-outline from MDI and converted via favicon.io