Coder Social home page Coder Social logo

andorsk / web5-tabata-timer Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 15.44 MB

no ads. open source. personal use. super private. no tracking. free. no paywall. own your workout data with a web5 based tabata timer.

Home Page: https://tabata.andor.us

License: MIT License

JavaScript 3.09% CSS 2.46% TypeScript 93.83% Dockerfile 0.63%
decentralized-web-node dwn tabata tabata-timer web5 dapp decentralized-identity did pds

web5-tabata-timer's Introduction

Web5 Tabata Timer

No ads. Open source. Personal use. No tracking. Free. No paywall. Own and share your workout data with a web5 based tabata timer.

Tabata timers are used for HIT excrcises. They give you short increments of exercies and rest. I use it quite a bit, but the one I use has a paywall after 2 routines and has a ton of ads. I don't want any of that.

This is a web5 based tabata timer.

What does web5 mean? Well, you'll own your data. Entirely. This means that you don't need to worry about us looking at it ever. This was mostly a fun project for myself, but I'll try to release it out the play store in the near future.

Status

In Progress. Early Version Works

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Screenshots

Encrypt your data with your own DWN

Encrypt your data

Create a Routine

Create a Routine

Choose your routine

Choose your routine

Play Screen. See your cycles.

Play Screen

Toolbar to see your workout on the home page

Toolbar

See your work history

Work History

Demo

See demo in Web5 Tabata Timer Demo v0.0.2

Work in Progress

  • Features
  • Play View
  • Workout Selection View
  • Configure Routine View
  • Sound
  • PWA
  • Run in background
  • Header for current workout
  • Edit Routines
  • Delete Routines
  • Settings
  • Save Sessions
  • Done Screen
  • Vibrate on 3 seconds
  • Activity Screen
    • Delete Session
    • Edit Session
    • Search
    • Overview / Heatmap
  • Launch on Google Play store <- Internal Testing
  • Service Workers
    • Wake Lock
    • Background Workout
    • Notifications
  • Lock Screen Preview
  • Sync
  • Share sessions
  • Add friends
  • Better password management
  • Bug Fixes
  • Fix Build
  • Fix Pause/Play
  • Fix Inputs For Form
  • Fix component size for steps on Play View
  • Maskable Logo
  • Multiple sessions for a single workout
  • Timer stops on sleep
  • Code
  • Change state mangaement to redux
  • First Major Refactor.
  • Too many ts-ignores. Cleanup
  • Remove old files
  • Second Major Refactor
  • Integrations
  • Google Fit
  • Strava

Disclosures

This was also a project for me to get to learn more about how front end works. The way react manages state, redux, etc, required me to come up the learning curve.

I'm sure that those more comfortable with front end might gouge out their eyes at some of the patterns. I will try to fix them.

Limitations

If you check out existing solutions, some of them have some toolbar that sits on the lockscreen. Unfortunately, due to the limits of a pwa, that's not possible for this app. We might be using the MediaSession API or I can toss notifications/push events, but that's where it falls short. I could make this react-native, but maybe another time.

Alternatives

  • Tabata Timer: Interval Timer -- The main app on the app store. 5M+ downloads. This is hidden behind a paywall, has ads, is not open source. We can do better. It's farther along, and has been worked on longer, but I hope that in time this app is going to clearly be better than that app.

web5-tabata-timer's People

Contributors

andorsk avatar

Stargazers

 avatar

Watchers

 avatar

web5-tabata-timer's Issues

Add Scheduler

Wouldn't it be nice to have a scheduler in your app. To notify you when you have a workout that you need to do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.