A sophisticated Android application that provides personalized learning experiences through AI-powered document analysis and roadmap generation.
- PDF Upload & Analysis: Upload PDF documents for instant AI-powered semantic analysis
- Roadmap Generation: Create personalized learning roadmaps from text input
- Quiz Generation: Automatically generate quizzes based on analyzed content
- Performance Tracking: Detailed performance reports and progress tracking
- Dark Mode Interface: Sophisticated black and navy blue base with gold and deep red accents
- Material Design 3: Modern UI components with fluid animations
- Single-Screen Experience: Intuitive workflow in a unified interface
- Responsive Design: Optimized for various screen sizes
- Native Android: Java-based development
- Firebase Integration: Cloud Storage and Firestore for data persistence
- Gemini AI: Advanced semantic analysis and content generation
- Material Design Components: Modern UI framework
- PDF Processing: iText7 for PDF text extraction
- Android Studio Arctic Fox or later
- Android SDK 24+ (Android 7.0)
- Firebase project with Storage and Firestore enabled
- Google Gemini API key
🚨 Firebase is currently disabled to allow building without configuration.
For immediate testing: The app will work with mock Firebase services.
For full functionality: See FIREBASE_SETUP.md for complete Firebase configuration:
- Create Firebase project and download
google-services.json - Enable Firestore and Storage
- Uncomment Firebase dependencies in
build.gradle
- Get your Gemini API key from Google AI Studio
- Replace
YOUR_GEMINI_API_KEYinGeminiService.javawith your actual API key - Enable the Generative Language API in Google Cloud Console
# Clone the repository
git clone <repository-url>
cd gvm-virtual-mentor
# Open in Android Studio
# Build and run the projectapp/
├── src/main/java/com/gvm/virtualmentor/
│ ├── MainActivity.java # Main activity with tab navigation
│ ├── adapters/
│ │ └── QuizAdapter.java # RecyclerView adapter for quiz questions
│ ├── fragments/
│ │ ├── PdfUploadFragment.java # PDF upload and analysis
│ │ └── RoadmapTextFragment.java # Text input for roadmap generation
│ ├── models/
│ │ └── QuizQuestion.java # Quiz question data model
│ ├── services/
│ │ ├── FirebaseService.java # Firebase operations
│ │ └── GeminiService.java # Gemini AI integration
│ └── utils/
│ └── PdfUtils.java # PDF processing utilities
├── src/main/res/
│ ├── layout/ # XML layouts
│ ├── values/ # Colors, themes, strings
│ └── drawable/ # Vector icons and backgrounds
└── build.gradle # App-level dependencies
- Manages the main UI with TabLayout and ViewPager2
- Coordinates between fragments and services
- Handles quiz submission and performance reporting
- Handles file uploads to Firebase Storage
- Manages data persistence in Cloud Firestore
- Provides callbacks for async operations
- Integrates with Google's Gemini AI API
- Performs semantic analysis of PDF content
- Generates personalized learning roadmaps
- Creates quiz questions from analyzed content
- Extracts text from uploaded PDF files
- Limits processing to first 10 pages for performance
- Handles various PDF formats and encodings
- Primary: Black (#000000) and Navy Blue (#1A237E)
- Accents: Gold (#FFD700) and Deep Red (#B71C1C)
- Surfaces: Dark grays for cards and components
- Text: White primary with gray secondary text
- Smooth card appearance animations
- Button state transitions
- Loading overlays with progress indicators
- Tab switching animations
- Adaptive layouts for different screen sizes
- Material Design elevation and shadows
- Consistent spacing and typography
- Secure API key management (replace placeholder with actual key)
- Input validation and sanitization
- Error handling with user-friendly messages
- Offline capability considerations
- Performance optimization for large files
- Offline mode support
- User authentication and profiles
- Advanced analytics and insights
- Social sharing features
- Multi-language support
- Voice input for roadmap creation
- Advanced quiz types (drag-drop, matching)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions, please open an issue in the repository or contact the development team.