My implementation of the final Capstone project from the Udacity Android Developer Nanodegree Program, which I was able to participate in thanks to a scholarship by Udacity and Google 🤗.
QuizNerd is a multiplayer coding quiz game developed for programmers and IT enthusiasts. You can challenge your friends, compete in matches and test your skills in various programming languages.
QuizNerd comprises over 800 different questions in 9 categories, including Android, C++, C#, HTML, Java, JavaScript, PHP, Python and Swift.
The Udacity course gave some requirements and restrictions on the technology to use. Projects had to be implemented in native Android with Java and had to make use of at least two Google services / libraries. Therefore, the tech stack for this project is:
- Language: Java, Android SDK
- Database: Firebase Firestore
- Authentication: Firebase Auth
- Backend Logic: Firebase CloudFunctions
- Major Librariess: Lombok, Butterknife, OkHttp, Gson
- Enable annotation pre-processing in Android Studio.
- Open Preferences (from the main screen - see screenshot below)
- Navigate to Build, Execution, Deployment --> Compiler --> Annotation Processors
- Check Enable annotation processing
- Install Project Lombok plugin in Android Studio (via Preferences --> Plugins)
- Clone this project and open it in Android Studio
- Add keystore file
quiznerd_keystore.jks
to project root - Insert keystore passwords in
app/build.gradle
- Run it or do
./.gradlew installRelease
- Firebase project information and
google-services.json
- Credentials
- Create SHA1 fingerprint for Google login (see below) and add to Firebase project settings
# Debug
keytool -exportcert -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore
# Release
keytool -exportcert -list -v \
-alias key0 -keystore quiznerd_keystore.jks
- Additionally, Google Play Store creates also a fingerprint here
Apache 2.0