MyCdA.app lets you use data collected using a power meter, speed sensor and a cycling computer and estimate your drag coefficient (CdA) and /or rolling resistance (crr). Compare data across different runs in order to determine if an equipment or position change is beneficial or not.
Click here for a working demo.
- Upload and process Garmin .FIT and .CSV files
- Analyze power, speed and elevation data using an interactive chart and activity map
- View statistics by entire activity or for individual laps
- Detect loops in activity GPS track.
- Analyze CdA and crr for by lap or manual selection from chart. Identify loops and use loop start / end markings to align Virtual Elevation profile.
- View virtual elevation chart, visually adjust CdA and crr and analyze results
- Include air speed in VE calculations (through CSV import)
- Support for drivetrain / friction loss adjustments.
- Record notes and equipment changes for specific segments
- Calculate air density by manual input or automatically based on current GPS location altitude adjusted
- Save CdA/crr analysis segments and view / edit later
- Designate segments as baseline segments
- Compare segments to baseline showing % CdA, Watts Saved and Seconds/40k
- Calculate Mean, Std. Dev and CV across all segments
- Segment splitting. This feature will allow to split loops into out and back segments and average individual splits CdA. This should allow analysis for courses where braking cannot be avoided or out and back time trial course etc.
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
# deploy to Firebase project (create and initialize a new Firebase project)
firebase deploy
For a detailed explanation on how things work, check out the guide and docs for vue-loader.
In order to use the location based weather data pull you need to configure your app instance to connect to the OpenWeatherMap API. To do so follow these simple steps:
- Sample application configuration files are provided in the config folder. Rename sample.dev.env.js to dev.env.js and sample.prod.env.js to prod.env.js.
- Sign up for a free OpenWeatherMap account at https://openweathermap.org/api
- Once your account is set up, go into API Keys and copy your API key.
- Configure MyCdA.app by editing the config/prov.env.js file and inserting the API key copied in the previous text into the placeholder.
- Sign up for a free Google Firebase account at https://firebase.google.com/
- From the Firebase console, enable Email/Password authentication from the Authentication, Sign-in method tab.
- Obtain your firebase project keys and insert them in the env.js configuration file
- Obtain a Google Maps API key and insert key into the configuration file.
module.exports = merge(prodEnv, {
NODE_ENV: `"development"`,
OW_API_KEY: `"your open weather API key here"`,
FB_API_KEY: `"Firebase API key here"`,
FB_AUTH_DOMAIN: `"Firebase auth domain"`,
FB_DATABASE_URL: `"Firebase database url"`,
FB_PROJECT_ID: `"Firebase app name"`,
FB_STORAGE_BUCKET: `"Firebase storage bucket"`,
FB_MSG_SENDER_ID: `"Firebase sender id"`,
GOOGLE_MAPS_API_KEY: `"Google Maps API key"`
});
Visit the Community page for a list of build release notes.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
MIT '