An Android quiz application with AI-powered question generation from notes, PDFs, and images.
Features
- Student and Faculty role-based login
- Student dashboard for learning and quiz practice
- Faculty dashboard for content upload and performance monitoring
- Faculty lecture PDF upload
- Student access to uploaded oral pathology notes
- AI chatbot for oral pathology questions
- AI-based MCQ generation from uploaded PDF/image content
- Preloaded oral pathology quizzes
- Quiz result screen
- Faculty-uploaded quiz solution support
- Student-wise performance report
- Quiz attempt history
- Interactive AR/3D learning module using GLB models
- Firebase Authentication and Firestore integration
- Room Database for local quiz storage
- Android Studio Hedgehog or newer
- Android SDK (minimum API 24)
- Java 11+
- Copy
Constants.java.templatetoapp/src/main/java/com/nmims/madproj/utils/Constants.java - Get your Gemini API key from Google AI Studio
- Replace
YOUR_GEMINI_API_KEY_HEREwith your actual API key
public static String GEMINI_API_KEY = "your-actual-api-key-here";The app works without Firebase, but for full functionality:
- Create a Firebase project at Firebase Console
- Enable Firestore Database and Authentication
- Download
google-services.jsonand place it inapp/directory - Update Firestore security rules (see Firebase documentation)
./gradlew build
./gradlew installDebugapp/
├── src/
│ ├── main/
│ │ ├── java/com/nmims/madproj/
│ │ │ ├── activities/ # UI Activities
│ │ │ ├── database/ # Room database (DAO, entities)
│ │ │ ├── models/ # Data models
│ │ │ ├── repository/ # Data repositories
│ │ │ ├── viewmodel/ # ViewModels (MVVM pattern)
│ │ │ ├── utils/ # Utilities (Constants, TextExtractor, etc.)
│ │ │ └── services/ # Background services
│ │ ├── res/ # Resources (layouts, drawables, values)
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts # App-level dependencies
├── build.gradle.kts # Project-level config
└── settings.gradle.kts
- MainActivity: Entry point with navigation
- QuizSelectionActivity: Category selection
- QuizActivity: Quiz taking interface
- UploadNoteActivity: Upload images/PDFs for quiz generation
- ChatbotActivity: AI chatbot interface
- ResultActivity: Quiz results display
- StatsActivity: Performance statistics
- LoginActivity/RegisterActivity: User authentication
- Room Database: Local storage for questions and quiz results
- Firebase Integration: Optional cloud sync
- ML Kit OCR: Text extraction from images
- PDFBox: PDF text extraction
- Gemini API: AI quiz generation and chatbot
- AndroidX (AppCompat, Material Design)
- Room Database
- Firebase (Auth, Firestore)
- ML Kit Text Recognition
- Retrofit & OkHttp
- PDFBox Android
- The app works in guest mode if Firebase is not configured
- Questions are stored locally in Room database
- Generated quizzes are temporary and cleared on new generation
- Preloaded questions are automatically seeded on first launch
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is for educational purposes.