Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leongweitong/runmate
RunMate is an innovative running app designed to track your runs, monitor your progress, and help you achieve your fitness goals. Whether you're a beginner or a seasoned runner, RunMate offers personalized insights and real-time tracking to enhance your running experience.
https://github.com/leongweitong/runmate
cordova leaflet reactjs tailwindcss turfjs
Last synced: about 1 month ago
JSON representation
RunMate is an innovative running app designed to track your runs, monitor your progress, and help you achieve your fitness goals. Whether you're a beginner or a seasoned runner, RunMate offers personalized insights and real-time tracking to enhance your running experience.
- Host: GitHub
- URL: https://github.com/leongweitong/runmate
- Owner: leongweitong
- License: mit
- Created: 2024-07-31T12:54:47.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-13T06:20:14.000Z (about 1 month ago)
- Last Synced: 2024-10-14T00:22:40.648Z (about 1 month ago)
- Topics: cordova, leaflet, reactjs, tailwindcss, turfjs
- Language: JavaScript
- Homepage:
- Size: 278 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RunMate
**RunMate** is a feature-rich mobile app designed to help runners track their activities, analyze performance, and stay motivated toward achieving their fitness goals. With real-time GPS tracking, detailed performance insights, and a user-friendly interface, RunMate is your personal running companion.
## Features
- **GPS Tracking:** Accurately track your running route and distance in real time.
- **Performance Analysis:** Visualize your speed, pace, and time through graphs and charts.
- **Activity Mapping:** Display your run with a smooth polyline path on a map.
- **Goal Tracking:** Set running goals and monitor progress towards achieving them.
- **Progress Visualization:** Analyze past runs to understand trends and improve over time.
- **Multilingual Support:** Switch between languages like English and Chinese.
- **AI Coaching (Coming Soon):** Personalized tips based on your running data.
## Tech Stack- **Frontend:** React, Tailwind CSS
- **Mobile Framework:** Cordova
- **Map:** Leaflet, Turf.js for geospatial calculations
- **Data Storage:** IndexedDB (via `react-indexed-db-hook`)
- **Charts:** Recharts for performance visualization## Getting Started
To get started with the RunMate project locally, follow these steps:
### Prerequisites
- Node.js
- npm or Yarn
- Cordova CLI### Installation
1. **Clone the repository:**
```bash
git clone https://github.com/leongweitong/RunMate.git
cd RunMate
```2. **Install the dependencies:**
Using npm:
```bash
npm install
```
Or using Yarn:
```bash
yarn install
```3. **Build the React app:**
```bash
npm run build
```4. **Integrate the build with Cordova:**
Ensure that the build output is copied into the Cordova `www` directory:
```bash
npm run build-cordova
```5. **Run the app on a device or emulator:**
```bash
cordova run android
```
Replace `android` with `ios` if you are developing for iOS.### Local Development
1. **Run the React development server:**
```bash
npm run dev
```2. **Cordova Development:**
After making changes to the React code, rebuild and redeploy the app using Cordova:
```bash
npm run build-cordova
cd runmate
cordova build
cordova run android
```### IndexedDB Configuration
RunMate uses `react-indexed-db-hook` to store activity data locally. Ensure that your IndexedDB schema is set up correctly in `indexedDB.js` for handling activity data such as total distance, path, and time.
## Usage
1. **Start a Run:** Begin tracking your run with GPS, and monitor your distance and time.
2. **Review Runs:** After completing a run, view detailed insights on speed, pace, and path.
3. **Set and Achieve Goals:** Set goals like a 10 km run and track your progress over time.
4. **Analyze Performance:** Use the analysis page to visualize trends and optimize your training.
5. **Languages:** Switch between English and Chinese to cater to your preferred language.## Contributing
Contributions are welcome! If you'd like to contribute to RunMate, you can contact my email for details: [email protected]
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.