ScienceQuest is a mobile quiz application built with Kotlin and Firebase, designed to deliver a smooth end-to-end quiz experience—from authentication and question flow to scoring and leaderboard ranking. This project demonstrates practical Android development skills including UI implementation, data modelling, Firebase integration, and clean project structuring.
- Kotlin-based Android app using Activities/Fragments and modular UI screens
- Firebase-backed user authentication and cloud data storage
- End-to-end quiz flow: attempt → scoring → feedback → ranking
- Structured codebase with adapters/models for maintainability
- Authentication: Login & Sign Up (Firebase Auth)
- Quiz Flow: Question navigation, answer selection, scoring logic (timer if enabled)
- Result Feedback: Correct/Wrong indication and score summary
- Leaderboard: Ranking display based on user performance (Firestore)
- Profile: Basic user/profile UI and data display
- UI Assets: Custom drawables and layouts for a consistent interface
Small thumbnails below (click to view full size).
Home
|
Quiz
|
Leaderboard
|
- Language: Kotlin
- Platform: Android
- Backend: Firebase Authentication, Firebase Firestore
- UI: AndroidX, XML layouts
- Image Loading: Glide
app/src/main/java/— Kotlin source code (Activities/Fragments, adapters, models)app/src/main/res/— layouts, drawables, values (UI resources)
- Open the project in Android Studio
- Wait for Gradle Sync to complete
- Add Firebase configuration (required for auth/leaderboard):
- Create a Firebase project and register an Android app
- Download
google-services.json - Place it at:
app/google-services.json
- Run the app on an emulator or physical device
This repo intentionally does not include google-services.json to avoid exposing project-specific Firebase configuration.
To enable Firebase features:
- Add your own
app/google-services.json
- Android app development with Kotlin (UI + navigation + state handling)
- Firebase Auth integration (user login/signup)
- Cloud database usage (Firestore CRUD for leaderboard/users)
- Clean project organization (models/adapters/screens separation)