This repository contains the main app of the Incyclist indoor cycling app.
Incyclist depends on a couple of external services. Although the app will work without any of those services, some parts of the application might be impacted if those services are not correctly configured.
Therefore, the credentials to access those services have to be configured:
Create a file secrets.json in the ./src folder. This file needs to contain the following information
Incyclist uses a Message Queue to manage group rides. You either need to request credentials via our Slack workspace, or you need to setup your own MQTT Message Broker
MQ_BROKER URL of the Message Queue Broker (required for group ride support)
MQ_USER , MQ_PASSWORD Credentials to to be used to authenticate against the Message Queue Broker
The JAWG Elevation API is used to update elevation profiles, when generating routes. In order to request credentials, got to their web site
JAWG_API_KEY API key for the JAWG Elevation API
The Google Maps Api Keys are used to present Street View or Sattelite View during ride. In order to request credentials, visit the Google Maps web site
GOOGLE_API_KEY API Key for Google Maps API
The Strava API is used to connect with the Strava service and upload activities after finishing a ride. In order to request credentials, visit the Strava developer web site
STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET Credentials for the Strava API
The Incyclist API is used to fro various operations ( e.g. automatic update, getting routes and videos, getting group rides,....). In order to request credentials, contact us via the Incyclist Slack workspace
INCYCLIST_API_KEY Incyclist API Key
> npm start
Once the app is started, you can press CTRL+SHIFT+ALT+I to open the Electron Developer Tools.
> npm run make
Before running the build, you need to setup the information so that the script can properly sign:
- store your certificate (pfx file) in ./certs/installer.pfx
- set the environment variable CERTIFICATE_PASSWORD to the password of the certificate
> npm run make-win-dist
In both cases, the result of the build can be found in ./out/make/squirrel.windows/x64/
There are three different build targets for Mac:
- An unsigned build you can use for local development and testing/debugging
- A signed and notarized build that can be used to ditribute the app outside of the Mac App Store
- A signed build that can be uploaded to the Mac App Store
The process of signing and requirements for local and App Store distributions is explained here and here, including how to setup the certificates in provisioning profiles that are required for these build targets
In all cases, the result of the build can be found in ./out/make
> npm run make
Before running the build, you need to setup the information so that the script can properly sign. This requires the following steps to be completed:
-
Create an application in the Apple developer portal.
-
If not done, create an "App Specific password" as described here
-
Create, download and install a "Developer ID Application" certificate
-
Create a provisionig profile with your "Developer ID Application" Certificate and the application you have created in Step 1. Dwnload and install the provisioning profile
-
copy the provisioning profile to ./profiles/Distribution.provisionprofile
-
Define the following environment variables:
-
APPLE_ID: appleId: usually the email address you used to create your Apple account.
-
APPLE_PASSWORD: the password you have created in step 2
-
APPLE_TEAM_ID: that set of characters inside the brackets at the end of your identity name.
-
APPLE_DEVELOPER: The name ( " ") of the developer registered in the certificate
Once these steps are done, you can trigger the build using:
> npm run make-mac-dist
This is currently work in progress. I need to implement and verify the process myself and once that is done, I will describe how you could publish your own flavour of Incyclist in the Mac AppStore
> npm run make-mac-appstore
> npm run make
> npm run make-linux
In both cases, the result of the build can be found in ./out/make