{"id":23682477,"url":"https://github.com/azabicki/onthescales","last_synced_at":"2026-04-17T05:02:39.673Z","repository":{"id":269167556,"uuid":"904421037","full_name":"azabicki/OnTheScales","owner":"azabicki","description":"\"OnTheScales\" is a simple application for tracking body measurements and composition over time. Built with Streamlit, it allows users to record weight and body metrics, visualize progress, and analyze trends toward target weights. The application runs locally, ensuring complete data privacy.","archived":false,"fork":false,"pushed_at":"2025-06-19T14:20:35.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-24T13:27:26.390Z","etag":null,"topics":["dashboard","python","raspberry-pi","raspberry-pi-3","streamlit","weight-prediction","weight-tracking"],"latest_commit_sha":null,"homepage":"https://onthescales.streamlit.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azabicki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-16T21:21:45.000Z","updated_at":"2025-06-19T14:19:17.000Z","dependencies_parsed_at":"2024-12-21T13:27:34.310Z","dependency_job_id":"da188168-46b0-4a28-8f62-9d3bee6274b2","html_url":"https://github.com/azabicki/OnTheScales","commit_stats":null,"previous_names":["azabicki/gravitylog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/azabicki/OnTheScales","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azabicki%2FOnTheScales","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azabicki%2FOnTheScales/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azabicki%2FOnTheScales/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azabicki%2FOnTheScales/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azabicki","download_url":"https://codeload.github.com/azabicki/OnTheScales/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azabicki%2FOnTheScales/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273657030,"owners_count":25145003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","python","raspberry-pi","raspberry-pi-3","streamlit","weight-prediction","weight-tracking"],"created_at":"2024-12-29T19:50:42.887Z","updated_at":"2026-04-17T05:02:39.661Z","avatar_url":"https://github.com/azabicki.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OnTheScales\n\nThis Streamlit application serves as a tool for tracking and managing body measurements over time. It enables users to record, visualize, and analyze weight and body composition metrics: weight along with body fat, water content, and muscle mass. _OnTheScales_ is designed for individuals who want to monitor their body composition changes, whether for fitness goals, health monitoring, or weight management. While being comprehensive in its tracking capabilities, it maintains a straightforward and practical approach to data management and visualization.\n\n--\u003e check out [**OnTheScales @ streamlit.app**](https://onthescales.streamlit.app/) to see it in action!\n\n## Features\n\n**Data Visualization:**\n- Chronological progress tracking\n- Trend analysis with customizable time ranges\n- Prediction when target weight will be reached based on current trend\n- Body composition analysis (percentage or kg)\n\n**Measurement Management:**\n- Record and edit body measurements (weight in kg, body composition in %)\n- Auto-fill feature based on previous measurements\n- Date-based entries with update and delete capabilities\n- Tabular overview of all recorded measurements\n\n**User Management:**\n- Multi-user support with individual profiles\n- User profile customization (height and target weight)\n- Basic user administration (add, edit, delete)\n- Data persistence through CSV files\n\n**Withings Integration:**\n- Connect to Withings smart scales for automatic data sync\n- OAuth2 authentication with automatic token refresh\n- Selective import of measurements with date tracking\n- Support for weight, body fat, water, and muscle mass data\n\nThe interface aims to be straightforward and functional, focusing on providing useful information without unnecessary complexity. As the application runs entirely on your local machine, all data remains under your control and is stored locally in simple CSV files. This ensures complete data privacy while maintaining easy access to your data for backup or external analysis if desired.\n\n## Installation\n\nClone this repository\n\n```bash\ngit clone https://github.com/azabicki/OnTheScales\n```\n\n### virtual environment\n\n_OnTheScales_ is written in `Python 3.11.2`.\n\n#### venv\nInstall a virtual environment according to your OS:\n\n##### MacOS \u0026 Linux\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install --upgrade pip\npip install -r requirements.txt\n```\n\n##### Windows\n\n```bash\npy -m venv venv\nvenv\\Scripts\\activate\npip install --upgrade pip\npip install -r requirements.txt\n```\n\n#### Conda\n\nIf you are using _*conda_, an environment.yml file is provided, which also installs the required python version `3.11.2`:\n\n```bash\nconda env create -f conda_environment.yml\nconda activate OnTheScales\n```\n\n## Usage\n\nTo start the app, run the following command:\n\n```bash\nstreamlit run OnTheScales.py\n```\n\nThe app will be available at http://localhost:8501.\n\nUsing _OnTheScales_ is straightforward. Simply select a user profile from the dropdown menu, and start tracking your body composition. You can also create multiple user profiles to track different persons.\n\n### Withings Integration Setup\n\nTo connect your Withings smart scale:\n\n1. **Create a Withings App**: Visit the [Withings Developer Portal](https://developer.withings.com/) and create a new app\n2. **Configure Credentials**: Set up your API credentials in `.streamlit/secrets.toml` (see `WITHINGS_SETUP.md` for detailed instructions)\n3. **Connect Users**: Go to \"Manage Users\" page and connect each user to their Withings account\n4. **Sync Data**: Use the \"Measurements\" page to fetch and selectively import Withings data\n\nFor detailed setup instructions, see [WITHINGS_SETUP.md](WITHINGS_SETUP.md).\n\n## Raspberry Pi\n\n_OnTheScales_ can also be run on a Raspberry Pi, I did it on an older Raspberry Pi 3B+. The following steps are required to install and run _OnTheScales_ on a Raspberry Pi:\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install --upgrade pip\npip install -r requirements.txt\n```\n\n### autostart\n\nThere is also script to start _OnTheScales_ in the `misc/RaspPi` folder. It will start the app in the background and automatically start when the Raspberry Pi boots.\n\nIn the following commands, first edit the `path` to the _OnTheScales_ folder, and then run these in your bash console:\n\n```bash\nEDIT_THIS_PATH=\"/path/to/OnTheScales\"\n\nchmod +x $EDIT_THIS_PATH/misc/RaspPi/autorun_OnTheScales.sh\n\necho \"# ----- autostart OnTheScales after boot -----\" \u003e\u003e ~/.bashrc\necho \"if [ \\$(tty) == /dev/tty1 ]; then\" \u003e\u003e ~/.bashrc\necho \"    $EDIT_THIS_PATH/misc/RaspPi/autorun_OnTheScales.sh\" \u003e\u003e ~/.bashrc\necho \"fi\" \u003e\u003e ~/.bashrc\n```\n\n## Data Privacy\n\nThis application runs entirely locally on your machine. All user data is stored in CSV files in the `data/` directory, ensuring complete control over your personal information.\n\n## Contributing\n\nFeel free to open issues or submit pull requests if you have suggestions for improvements.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazabicki%2Fonthescales","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazabicki%2Fonthescales","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazabicki%2Fonthescales/lists"}