Skip to content

About

AI-based study and interview preparation Android app built with Kotlin, Jetpack Compose, Firebase and Gemini.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎓 Learn2Hire — AI-Based Study & Interview Preparation Assistant

Release Android Kotlin Jetpack Compose Firebase Gemini

Learn2Hire is an AI-powered Android learning and interview preparation application designed to bring structured study, assessment, adaptive practice, AI tutoring, interview preparation, planning, and progress tracking into one unified mobile experience.

Built using Kotlin, Jetpack Compose, Firebase Authentication, Cloud Firestore, Firebase AI Logic, and Gemini, Learn2Hire combines deterministic academic assessment with AI-assisted learning. Fixed quizzes remain the authoritative measure of topic performance, while AI Practice, the AI Tutor, and Interview Coach provide personalized training and feedback.

The application currently includes structured learning content for Machine Learning, Web Application Development, and Automata Theory & Compiler Design, with persistent user progress and activity stored securely per Firebase-authenticated account.


🚀 Key Features

  • 📚 Structured Study Modules: Learn through subjects, topics, lesson content, key concepts, estimated study time, and completion tracking.
  • 📝 Fixed Quiz Assessments: Deterministic topic quizzes provide consistent and authoritative learning-performance scores.
  • 🧠 Adaptive AI Practice: Generates topic-aware practice questions with difficulty adapted to the learner's quiz performance.
  • ✨ Local Practice Fallback: Uses authored topic-specific question banks when Gemini is temporarily unavailable or rate-limited.
  • 🤖 AI Tutor: Ask contextual questions about study topics and receive Gemini-powered explanations grounded in the learning material.
  • 💬 Persistent Tutor History: AI Tutor conversations are stored in Firestore and remain available across sessions.
  • 🎤 Interview Preparation: Practice role- and type-based interview questions with deterministic key-point evaluation.
  • 💡 AI Interview Coach: Gemini provides qualitative feedback, improvement suggestions, and stronger example answers.
  • 📅 Study Planner: Create tasks, track completion, and record study sessions.
  • 📊 Progress Analytics: View study completion, quiz performance, AI Practice activity, interview performance, and topic-level learning signals.
  • 🎯 Personalized Study Insights: Home recommendations adapt to the learner's recorded study and assessment activity.
  • 🔐 Firebase Authentication: Supports secure account-based authentication, including Google Sign-In.
  • ☁️ Cloud Persistence: Study progress, quizzes, AI sessions, planner data, profile information, and chat history persist through Firestore.
  • 🌗 Theme Support: Light, Dark, and System theme modes with a custom Learn2Hire visual identity.

📚 Learning Content

Learn2Hire currently contains 3 subjects and 10 structured topics:

Subject Topics
Machine Learning Introduction to ML, Classification, Regression, Naïve Bayes
Web Application Development Client and Server, Node.js and Express, SQL and NoSQL
Automata Theory & Compiler Design Finite Automata, DFA and NFA, Regular Expressions

Each topic contains lesson material, key concepts, estimated study duration, progress tracking, fixed assessment, AI Practice access, and contextual AI Tutor access.


📝 Assessment vs AI Practice

Learn2Hire deliberately separates assessment from AI-assisted practice.

Component Purpose Source Used for Authoritative Learning Level?
Fixed Quiz Consistent topic assessment Authored question bank ✅ Yes
AI Practice Adaptive practice and improvement Gemini + local fallback ❌ No
AI Tutor Explanation and study assistance Gemini + study-material fallback ❌ No
Interview Coach Qualitative interview improvement Gemini ❌ No

This prevents generative AI variability from directly determining the learner's official topic-performance score.


🧠 Adaptive Learning Levels

Quiz performance is used to classify the learner's topic state:

Quiz Performance Learning State AI Practice Level
No assessment Not Assessed Standard
Below 60% Needs Practice Foundation
60–79% Developing Intermediate
80% and above Strong Challenge

AI Practice remains a secondary improvement signal and is displayed separately from fixed quiz assessment in Progress.


🤖 AI Workflow

                    Study Topic
                        │
          ┌─────────────┼─────────────┐
          ↓             ↓             ↓
     Fixed Quiz     AI Practice    AI Tutor
          │             │             │
          ↓             ↓             ↓
    Deterministic    Gemini AI      Gemini AI
     Assessment          │             │
          │        ┌─────┴─────┐ ┌─────┴─────┐
          │        ↓           ↓ ↓           ↓
          │     Generated   Local Study   AI Response
          │     Questions   Fallback      / Fallback
          │
          ↓
   Authoritative Score
          │
          └─────────────┐
                        ↓
               Learning Profile
                        │
                        ↓
             Adaptive Recommendations

Firebase AI Logic is used to access Gemini without embedding a raw Gemini API key directly in the Android source code.


🎤 Interview Preparation Workflow

Select Role & Interview Type
            ↓
     Interview Questions
            ↓
       User Response
            ↓
  Deterministic Key-Point Check
            ↓
      Coverage Score
            ↓
       Gemini AI Coach
            ↓
What Went Well / Improvements
      / Improved Answer
            ↓
   Firestore Interview Session

The deterministic key-point evaluation remains the measurable interview score, while Gemini provides qualitative coaching.


☁️ Firebase Data Model

Each authenticated user owns their learning data under their Firebase UID.

users/{uid}
│
├── name
├── email
├── photoUrl
├── course
├── semester
├── authProvider
├── createdAt
│
├── studyProgress/{topicId}
├── quizAttempts/{attemptId}
├── aiPracticeSessions/{sessionId}
├── tutorChats/{chatId}
├── interviewSessions/{sessionId}
├── plannerTasks/{taskId}
└── plannerSessions/{sessionId}

Firestore security rules restrict user data access to the authenticated owner of that user document.


🔄 Application Workflow

Authentication
      ↓
     Home
      │
      ├───────────────┬─────────────────┐
      ↓               ↓                 ↓
    Study          Interview          Planner
      │               Prep               │
      ↓                                  ↓
 Subject → Topic                      Tasks &
      │                            Study Sessions
      ├──────────────┐
      ↓              ↓
 Fixed Quiz      AI Features
      │          ┌────┴────┐
      ↓          ↓         ↓
 Assessment  AI Practice  AI Tutor
      │          │         │
      └──────────┼─────────┘
                 ↓
              Progress
                 │
                 ↓
          Personalized Insight

🛠 Tech Stack

Category Technology
Platform Android
Programming Language Kotlin
UI Jetpack Compose, Material 3
Architecture ViewModel + Repository + Reactive UI State
Navigation Jetpack Navigation Compose
Authentication Firebase Authentication
Google Sign-In Credential Manager + Google Identity
Database Cloud Firestore
Generative AI Firebase AI Logic + Gemini
Async Operations Kotlin Coroutines
Local Preferences SharedPreferences
Build System Gradle Kotlin DSL
Minimum Android Version API 23
Target SDK API 37

📁 Project Structure

Learn2Hire/
│
├── app/
│   ├── build.gradle.kts
│   ├── google-services.json
│   │
│   └── src/main/
│       ├── AndroidManifest.xml
│       ├── java/com/learn2hire/app/
│       │   │
│       │   ├── data/
│       │   │   ├── local/
│       │   │   │   ├── StudyContent.kt
│       │   │   │   ├── SampleQuizData.kt
│       │   │   │   └── SampleInterviewData.kt
│       │   │   │
│       │   │   ├── model/
│       │   │   └── repository/
│       │   │
│       │   ├── ui/
│       │   │   ├── auth/
│       │   │   ├── components/
│       │   │   ├── home/
│       │   │   ├── interview/
│       │   │   ├── navigation/
│       │   │   ├── planner/
│       │   │   ├── practice/
│       │   │   ├── profile/
│       │   │   ├── progress/
│       │   │   ├── quiz/
│       │   │   ├── study/
│       │   │   ├── theme/
│       │   │   └── tutor/
│       │   │
│       │   └── MainActivity.kt
│       │
│       └── res/
│
├── gradle/
├── build.gradle.kts
├── settings.gradle.kts
└── README.md

🖼️ Interface Preview

The interface gallery below uses the screenshots included in the repository's screenshots/ directory.

Authentication

Login Register
Learn2Hire Login Learn2Hire Register

Home Dashboard

Home Home — Continued
Learn2Hire Home Dashboard Learn2Hire Home Dashboard Continued

Learning Experience

Study Subject Detail
Study Screen Subject Detail Screen
Fixed Quiz AI Practice
Fixed Quiz AI Practice

AI Tutor

Learn2Hire AI Tutor

Interview Preparation

Interview Setup Interview Practice
Interview Preparation Interview Practice

Progress Analytics

Progress Overview Topic Performance
Progress Overview Topic Performance

Profile

Learn2Hire Profile


⚙️ Prerequisites

Before running the project, install:

  • Android Studio
  • JDK 11 or compatible JDK configured for the project
  • Android SDK required by the project
  • A Firebase project configured for the Android package com.learn2hire.app
  • Firebase Authentication and Cloud Firestore
  • Firebase AI Logic with the Gemini Developer API backend configured

⚙️ Installation

Clone the repository:

git clone https://github.com/abhijithshetty12/Learn2Hire.git

Navigate into the project:

cd Learn2Hire

Open the project in Android Studio and allow Gradle synchronization to complete.

Add your Firebase Android configuration file at:

app/google-services.json

Do not add release keystores, keystore passwords, or other private signing credentials to the repository.


▶️ Build the Application

On Windows PowerShell:

.\gradlew assembleDebug

The debug APK will be generated under:

app/build/outputs/apk/debug/

Run Android lint:

.\gradlew lintDebug

For a release build, configure your own Android signing key and generate a signed APK or Android App Bundle through Android Studio.


📱 Release APK

Pre-built releases can be published through the repository's Releases section:

Download Release

For security, the release signing keystore is not included in the repository.


🔐 Security

Learn2Hire follows several important security practices:

  • Firebase user data is isolated by authenticated user ID through Firestore security rules.
  • The Gemini API credential is not hard-coded directly into the Android source.
  • AI access is implemented through Firebase AI Logic.
  • Android release signing keys and passwords must remain outside version control.
  • Local machine configuration such as local.properties should not be committed.
  • Firebase Authentication is used to identify users before accessing personal learning data.

🧪 Testing & Quality Assurance

The project has been validated through:

Gradle Clean Build       ✓
Debug APK Compilation    ✓
Android Lint             ✓
Runtime Navigation       ✓
Firebase Persistence     ✓
Authentication           ✓
Study Progress           ✓
Fixed Quiz Assessment    ✓
AI Practice              ✓
AI Tutor & Chat History  ✓
Interview Preparation    ✓
Planner                  ✓
Profile & Themes         ✓
Sign-out / Sign-in Data  ✓

🎯 Project Objective

The main objective of Learn2Hire is to create a unified learning and career-preparation platform that combines structured academic study with responsible AI assistance.

Instead of allowing generative AI to determine academic performance directly, Learn2Hire maintains deterministic fixed assessments for measurable learning progress while using AI for practice generation, tutoring, explanations, and interview coaching.

The system demonstrates how traditional application logic, cloud persistence, learning analytics, and generative AI can work together in a practical Android application.


⚠️ Limitations

  • The current structured learning library contains three subjects and ten topics.
  • Fixed quiz coverage is limited to the learning content currently bundled with the application.
  • Gemini responses depend on network connectivity, service availability, and applicable API quotas.
  • AI-generated content can vary between requests and should be treated as learning assistance rather than an authoritative academic source.
  • Local fallbacks provide continuity when AI generation is unavailable, but they are limited to the authored content bundled with the application.
  • Interview evaluation uses predefined key points for deterministic scoring and does not attempt to fully measure real-world interview performance.
  • The current application is designed as an academic/project implementation rather than a production-scale learning management system.

🔮 Future Scope

  • Expand the study library with additional engineering and placement subjects.
  • Add richer personalized learning paths based on long-term performance.
  • Introduce spaced repetition and revision scheduling.
  • Add more extensive question banks and assessment modes.
  • Support coding interview practice and programming challenges.
  • Add resume analysis and role-specific preparation plans.
  • Introduce richer progress visualizations and learning streaks.
  • Add instructor/admin capabilities for managing learning content.
  • Support notifications for planner tasks and revision reminders.
  • Add offline-first caching for selected learning content.
  • Expand AI grounding and retrieval over larger course materials.
  • Publish through Google Play with production-ready monitoring and release infrastructure.

👨‍💻 Author

Abhijith Shetty
*AI & Machine Learning Student | Android & AI Developer *

"Building intelligent applications that turn learning into measurable progress and career preparation."

LinkedIn GitHub


🌟 Show Your Support

If you find Learn2Hire interesting or useful, consider giving the project a ⭐ on GitHub.

It helps support the project and encourages further development.

About

AI-based study and interview preparation Android app built with Kotlin, Jetpack Compose, Firebase and Gemini.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages