The Application! Bicycle Touring Companion! Uses React and Cordova to build a native android application.
Have npm installed on your development machine (available when installing node).
Run npm install
- Install android studio (required for having the resources to deploy to a phone)
- Make sure your device shows up on
adb devices
npm run start:android
- You can inspect the android view by going to
chrome://inspect
!
npm run dev
- open
localhost:8000/browser/www/
- The chrome extension LiveReload your browser session will reload when you update a file. (not required, but nice)
Look at the package.json
for other commands!
- The script
npm run format
ensures well formated code. Runnpm run format:replace
will make these changes- The current formatter suggest unix line endings
- The script
npm run lint
will reveal js src/js/
contains most of the code that is being send to the client- Using Redux, reducers are in the
/reducers
folder, and actions are in the reducer files (they are one line actions, so the need for seperate files was low) - containers are pages that get rendered in the app. They are in the
/containers
folder and are composed of components in the/components
folder- components are used in multiple pages, so when modifying them make sure to check their references elsewhere in the document
usbr20.json
is a track that is, for all intents and purposes, hardcoded- This should be replaced with dynamic tracks asap.- Modifying the
config.xml
changes the cordova/android settings- There is an svg for the alpha and normal logo in
/src/img
folder. Using a command line tool like imagemagick or a vector graphics editing tool like Inkscape should allow you to modify or export it into multiple sizes.
- There is an svg for the alpha and normal logo in
- Using Redux, reducers are in the
- Testing
- For javascript unit testing, we are using the Mocha stack, with Chai and Sinon. We run client-side tests using the Karma test runner, which runs the tests inside a browser instance.
- Skin-deep is a testing framework to mock the react components used in the client, and test the state, props, and rendered component. We forked the official glenjamin/skin-deep repository in an attempt to resolve project specific issues. We would recommend to future teams to attempt to use the newest version of skin-deep, or more mature testing frameworks, such as Airbnb’s React testing framework, Enzyme.