Skip to content

drola/weight-logger-pwa

Repository files navigation

Tests Results Badge Trivy Scan Badge

Weight Logger

Simple and private body weight tracking.

Weight Logger PWA Screenshot
Body Weight Logger. Simple and private.

Tracking your body weight is an essential tool for anyone who wants to maintain, lose or gain a few kilos. Observe, decide, act. By logging numbers from the scale you'll be able to distinguish minor fluctuations from trends. This will give you ample opportunity to course-correct or keep going.

Weight Logger will be always with you in your pocket.

Features

  • Simple, attractive and mobile-optimized design
  • You own the data. Everything stays on your device by default.
  • Export data as a CSV file
  • Import data from a CSV file
  • Coming soon backup to OwnCloud, Dropbox or Office 365.
  • Works without an internet connection

Development Setup

This project was bootstrapped with Create React App.

Prerequisites

  • Install Node.js which includes npm

Clone the repository and install dependencies

git clone https://github.com/drola/weight-logger-pwa.git
cd weight-logger-pwa
npm install

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

Roadmap

  • Add vertical scale to the chart
  • Enable offline mode
  • Test for clearData and importData actions in the Redux reducer
  • Display chart for last 30 days / all time
  • Deploy (CI, CD) to AWS Amplify
  • Add "Coming Soon" badge to the Dropbox Settings screen
  • Persist weight values to the Local Storage
  • Add "Clear data" button to the settings
  • Add "Save as CSV" button
  • Cache with service worker - make it work offline
  • Connection to Dropbox:
    • Trigger and complete Dropbox OAuth flow
    • Store received tokens
    • If connected, indicate that in Settings
    • Add syncing
  • Generate favicon https://favicon.io/favicon-generator/</de;>
  • Pack as desktop app https://github.com/tauri-apps/tauri
  • New color scheme https://material.io/resources/color/#!/?view.left=0&view.right=0&primary.color=0277BD&primary.text.color=ffffff&secondary.color=FB8C00&secondary.text.color=FAFAFA
  • Icons, favicon
  • editing, deleting: load actual record based on the URL
  • Refactor: Do sorting on all displays/exports but not internally in reducers. This is to be able to refer records simply by their index - not needed anymore
  • complete CRUD screens and integrate w redux state
  • test reducers
  • install redux
  • Outline structure of the app state
  • research local storage options -> use IndexedDB
  • tests for chart utility functions
  • Simple home screen chart
  • CSV parser, writer

About

Body Weight Logger with minimaistic UI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages