CanIEatThis was an Android app created as a final year project at university. It allows the user to scan a barcode, fetch the ingredients and tells the user whether the product is suitable for Vegetarians (will be expanded to encompass Vegans, gluten-free etc).
It is now an Android, iOS and web project containing the features above as well as collecting restaurant data about dietary suitability.
![Build Status](http://217.67.52.70:8080/buildStatus/icon?job=CanIEatThis - Android)
Branches "android" and "ios" are "master" branches for respective platforms. Develop by branching off these branches for features/bugs/etc.
"android" and "ios" should always be 100% buildable and deployable to a real device.
e.g. android -> feature x ios -> bug y
Pushing to "android" and "ios" will kick off the relevant Jenkins release builds. To release, merge dev branches into "android" or "ios" and then push. For Android, Jenkins does a build and sign of the project and outputs an .apk. This job, when successful, kicks off a beta upload job which uploads the .apk to the beta channel on the Play Store. Prod releases are done manually.
You need two things in order to fully setup the project. The first being the keys.xml which contains all the private auth keys for various services. This needs to be placed at the path: ./android/app/src/main/res/values/keys.xml
Secondly, you need to add the following four properties to the gradle.properties file that sits at ~./.gradle/gradle.properties:
- RELEASE_STORE_FILE
- RELEASE_STORE_PASSWORD
- RELEASE_KEY_ALIAS
- RELEASE_KEY_PASSWORD