{"id":29017704,"url":"https://github.com/juanpablodiaz/fit","last_synced_at":"2026-05-09T09:08:45.667Z","repository":{"id":296457578,"uuid":"426442506","full_name":"JuanPabloDiaz/fit","owner":"JuanPabloDiaz","description":"Matrix look and feel UI for your fitness data. 🚀 Backup demo: https://ftness.netlify.app","archived":false,"fork":false,"pushed_at":"2026-01-18T06:00:50.000Z","size":13968,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-18T16:17:38.656Z","etag":null,"topics":["api","astro","hevy-api","strava-api","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://fit.jpdiaz.dev","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuanPabloDiaz.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-10T01:24:20.000Z","updated_at":"2026-01-18T06:00:55.000Z","dependencies_parsed_at":"2025-07-13T08:14:11.056Z","dependency_job_id":"b95f656b-c6bd-402f-8d14-19e373ea317b","html_url":"https://github.com/JuanPabloDiaz/fit","commit_stats":null,"previous_names":["juanpablodiaz/strava","juanpablodiaz/fit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JuanPabloDiaz/fit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanPabloDiaz%2Ffit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanPabloDiaz%2Ffit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanPabloDiaz%2Ffit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanPabloDiaz%2Ffit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuanPabloDiaz","download_url":"https://codeload.github.com/JuanPabloDiaz/fit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanPabloDiaz%2Ffit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28604957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","astro","hevy-api","strava-api","tailwindcss","typescript"],"created_at":"2025-06-25T23:06:19.375Z","updated_at":"2026-05-09T09:08:45.641Z","avatar_url":"https://github.com/JuanPabloDiaz.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Fitness Matrix 🏃‍♂️💪\n\n\u003e Transform your fitness data into a Matrix-inspired visual experience.\n\nThe Fitness Matrix is a cutting-edge web application that revolutionizes how you visualize and analyze your fitness data. By seamlessly integrating Strava and Hevy APIs, it delivers an immersive, Matrix-themed interface that makes tracking your physical performance both engaging and insightful.\n\n\u003cdiv align=\"center\"\u003e\n\n**Because I am a fitness enthusiasts and data lover**\n\n_Transform your fitness journey into a visual masterpiece_\n\n[![Live Demo](https://img.shields.io/badge/Live-Demo-brightgreen)](https://fit.jpdiaz.dev)\n[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/JuanPabloDiaz/fit)\n[![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)\n\n\u003c/div\u003e\n\n## 🔍 About\n\nThe Fitness Matrix transforms your fitness journey into a visual masterpiece. This innovative platform combines the power of Strava's activity tracking with Hevy's strength training data, presenting everything through a captivating Matrix-inspired interface that makes data analysis both intuitive and visually stunning.\n\n**Key Features:**\n\n- **Real-time Activity Monitoring**: Track running, cycling, swimming, and walking activities with intelligent status indicators (EXCELLENT, WARNING, CRITICAL)\n- **365-Day Neural Mapping**: Interactive heatmap visualization showing your annual activity patterns and consistency\n- **Strength Training Integration**: Comprehensive workout tracking through Hevy API integration\n- **Matrix Aesthetic**: Immersive terminal-style interface with authentic Matrix visual elements\n- **Performance Analytics**: Advanced metrics and trend analysis for informed fitness decisions\n\n## 🎯 Features\n\n### 1. **Activity Status Matrix**\n\n- **Smart Status Indicators**: Visual feedback system showing days since last activity\n- **Activity Tracking**: Comprehensive monitoring of cardio activities (running, cycling, swimming, walking)\n- **Motivational Alerts**: Encouraging messages when it's time to get back to training\n- **Last Activity Data**: Detailed information about your most recent workout sessions\n\n### 2. **365-Day Neural Mapping**\n\n- **Interactive Heatmap**: Year-long visualization of daily activities with intensity levels\n- **Pattern Recognition**: Identify training consistency and seasonal trends\n- **Data Range Visualization**: Min/Max activity tracking with detailed daily breakdowns\n- **Temporal Analysis**: Weekly and monthly activity distribution patterns\n\n### 3. **Hevy Workout Matrix**\n\n- **Strength Training Analytics**: Complete integration with Hevy's weightlifting database\n- **Workout Counter**: Total workout tracking with binary matrix visualization\n- **Real-time Sync**: Live API connection ensuring up-to-date workout data\n- **Progress Visualization**: Track your strength training journey over time\n\n### 4. **Matrix-Inspired Interface**\n\n- **Terminal Aesthetics**: Authentic command-line interface styling\n- **Green Matrix Theme**: Classic Matrix color scheme with modern UX principles\n- **Responsive Design**: Optimized for desktop and mobile viewing\n- **Immersive Experience**: Full-screen dashboard for distraction-free analysis\n\n## 🚀 Technologies\n\nThis project leverages modern web technologies for optimal performance and user experience:\n\n- **[Astro](https://astro.build/)** - Modern static site generator for fast, optimized builds\n- **[Bun](https://bun.sh/)** - Ultra-fast JavaScript runtime and package manager\n- **[TypeScript](https://www.typescriptlang.org/)** - Type-safe JavaScript for better code quality\n- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework for rapid styling\n- **[Strava API](https://developers.strava.com/)** - Access to running, cycling, and swimming data\n- **[Hevy API](https://github.com/jovanhuang/hevy-api)** - Strength training and workout data integration\n- **[Google Fit API](https://developers.google.com/fit)** - Health and activity data synchronization\n- **[Vitest](https://vitest.dev/)** - Fast unit testing framework\n\n## 📊 Data Integration\n\n### Strava Integration\n\n- **Activities Supported**: Running, Cycling, Swimming, Walking\n- **Data Points**: Distance, Duration, Pace, Heart Rate, Elevation\n- **Real-time Sync**: Automatic updates from your Strava account\n- **Historical Data**: Access to your complete activity history\n\n### Hevy Integration\n\n- **Workout Tracking**: Complete strength training sessions\n- **Exercise Database**: Comprehensive exercise library\n- **Progress Metrics**: Weight, reps, sets, and volume tracking\n- **Training Analytics**: Workout frequency and intensity analysis\n\n### Google Fit Integration\n\n- **Health Metrics**: Steps, distance, calories, sleep, heart rate, and move minutes\n- **Zepp/Amazfit Sync**: Uses Google Fit as the source of synced wearable data\n- **Historical Data**: Daily health timelines for charts and comparisons\n- **Test Mode Support**: Can be replaced entirely with local dummy data for development\n\n## ⚙️ Installation \u0026 Setup\n\n### Prerequisites\n\n- **Node.js** 18.17.1 or higher\n- **Bun** runtime installed\n- **Strava Developer Account** with API access\n- **Hevy API Key** for workout data\n- **google-fit-api** (optional for additional health data)\n\n### Quick Start\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/JuanPabloDiaz/fit.git\n   cd fit\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   bun install\n   ```\n\n3. **Configure environment variables**\n\n   ```bash\n   cp .env.sample .env\n   ```\n\n   Fill in your API credentials:\n\n   ```env\n   STRAVA_CLIENT_ID=your_strava_client_id\n   STRAVA_CLIENT_SECRET=your_strava_client_secret\n   STRAVA_REFRESH_TOKEN=your_strava_refresh_token\n   HEVY_API_KEY=your_hevy_api_key\n   ```\n\n   Test mode (use local dummy data for all dashboard sources):\n\n   ```env\n   USE_DUMMY_HEALTH_DATA=true\n   HEALTH_DATA_FILE=health-data-dummy.json\n   ```\n\n4. **Start development server**\n\n   ```bash\n   bun dev\n   ```\n\n5. **Open your browser**\n   Navigate to `http://localhost:4321` to see your fitness matrix!\n\n## 🧪 Test Mode (Dummy Data)\n\nUse this mode when you want the whole dashboard to run with local test data and avoid real API calls.\n\n1. **Generate fresh dummy data** (optional):\n\n   ```bash\n   bun generate-dummy-data\n   ```\n\n   This generates:\n   - `public/strava-activities-dummy.json` - 500 Strava activities\n   - `public/hevy-workouts-dummy.json` - 200 Hevy workouts\n   - `public/health-data-dummy.json` - 365 days of health data\n\n2. Set these variables in your `.env`:\n\n   ```env\n   USE_DUMMY_HEALTH_DATA=true\n   HEALTH_DATA_FILE=health-data-dummy.json\n   ```\n\n3. Start normally:\n\n   ```bash\n   bun dev\n   ```\n\n4. Open the dashboard and change dates with `?date=YYYY-MM-DD` or the arrows.\n\nWhat this does:\n\n- Forces services to read data from `public/health-data-dummy.json` (or the file in `HEALTH_DATA_FILE`)\n- Disables live calls to Google Fit, Strava, and Hevy in the main dashboard flow\n- Keeps date navigation working against dummy dates\n\nTo return to live data:\n\n```env\nUSE_DUMMY_HEALTH_DATA=false\n```\n\n## 📦 Available Scripts\n\n| Command                   | Description                                      |\n| ------------------------- | ------------------------------------------------ |\n| `bun dev`                 | Start development server                         |\n| `bun build`               | Build production version                         |\n| `bun preview`             | Preview production build locally                 |\n| `bun format`              | Format code with Prettier                        |\n| `bun clean`               | Remove build artifacts and dependencies          |\n| `bun lint`                | Lint code with ESLint                            |\n| `bun test`                | Run tests with Vitest                            |\n| `bun strava-script`       | Execute Strava-specific scripts                  |\n| `bun generate-dummy-data` | Generate massive dummy test data for development |\n\n## 📚 Documentation\n\n### API Configuration\n\n- **[Strava API Setup Guide](DOCS-STRAVA.md)** - Complete guide to obtaining Strava API tokens and configuring proper scopes\n- **Hevy API Configuration** - Instructions for connecting your Hevy account\n\n### Development\n\n- **Local Development** - Hot reload and development tools\n- **Testing** - Unit tests and integration testing setup\n- **Deployment** - Production build and deployment instructions\n\n## 🌐 Live Demo \u0026 Links\n\n- **🌍 Live Application**: [fit.jpdiaz.dev](https://fit.jpdiaz.dev)\n- **💻 Source Code**: [github.com/JuanPabloDiaz/fit](https://github.com/JuanPabloDiaz/fit)\n- **📖 Strava API**: [developers.strava.com](https://developers.strava.com/)\n- **🏋️ Hevy API**: [Hevy GitHub](https://github.com/jovanhuang/hevy-api)\n- **⚡ Astro Docs**: [docs.astro.build](https://docs.astro.build)\n\n## 🤝 Contributing\n\nWe welcome contributions to make Fit even better! Here's how you can help:\n\n1. **Fork the repository**\n2. **Create a feature branch** (`git checkout -b feature/amazing-feature`)\n3. **Commit your changes** (`git commit -m 'Add amazing feature'`)\n4. **Push to the branch** (`git push origin feature/amazing-feature`)\n5. **Open a Pull Request**\n\nPlease read our [Contributing Guidelines](CONTRIBUTING.md) before submitting any changes.\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\nSpecial thanks to:\n\n- **Strava API** team for comprehensive fitness data access\n- **Hevy Community** for strength training data integration\n- **Matrix Movie** for the iconic visual inspiration\n- **Open Source Community** for the amazing tools and frameworks\n\n## 📞 Contact\n\n**Juan Pablo Diaz**\n\n- **Website**: [jpdiaz.dev](https://jpdiaz.dev)\n- **GitHub**: [@JuanPabloDiaz](https://github.com/JuanPabloDiaz)\n- **Project**: [fit.jpdiaz.dev](https://fit.jpdiaz.dev) | [ftness.netlify.app](https://ftness.netlify.app)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanpablodiaz%2Ffit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuanpablodiaz%2Ffit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanpablodiaz%2Ffit/lists"}