- ✨ Overview
- 🚀 Features
- 🏛️ Architecture
- 📱 Screens
- 🎨 Brand System
- 🧩 Reusable Components
- 🛠️ Tech Stack
- 📁 Project Structure
- ⚡ Quick Start
- 🗺️ Navigation Flow
- 📊 Day 1 Progress
- 🔥 Day 2 Progress
- 🤖 Day 3 Progress
- 🔮 Roadmap
- 📄 License
AIIC (AI Interview Coach) is a premium Android application that leverages artificial intelligence to help students and professionals prepare for placements, internships, and job interviews.
Think of it as having a world-class career coach in your pocket — available 24/7, personalized to your goals, and powered by cutting-edge AI.
The app is designed to feel like:
| Inspiration | Quality |
|---|---|
| 🍎 Apple | Polish & Attention to Detail |
| ⚡ Linear | Clarity & Minimalism |
| 💳 Stripe | Premium Branding |
| 🔍 Raycast | Modern Product Feel |
|
|
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────┐
│ PRESENTATION │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Splash │ │Onboarding│ │ Auth │ │ Home │ │
│ │ Screen │ │ Screen │ │ Screens │ │Dashboard │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ ┌────┴──────────────┴─────────────┴──────────────┴─────┐ │
│ │ ViewModels │ │
│ │ (StateFlow + Channel Events) │ │
│ └────────────────────────┬──────────────────────────────┘ │
├───────────────────────────┼──────────────────────────────────────┤
│ DOMAIN LAYER │
│ ┌────────────┐ ┌────────┴───────┐ ┌──────────────┐ │
│ │ Models │ │ Use Cases │ │ Repository │ │
│ │ (User, etc) │ │ (Login, etc) │ │ Interfaces │ │
│ └────────────┘ └────────────────┘ └──────┬───────┘ │
├─────────────────────────────────────────────┼────────────────────┤
│ DATA LAYER │ │
│ ┌────────────┐ ┌────────────────┐ ┌──────┴───────┐ │
│ │ DTOs │ │ DataStore │ │ Repository │ │
│ │ (Mappers) │ │ (Preferences) │ │ Impls │ │
│ └────────────┘ └────────────────┘ └──────────────┘ │
├──────────────────────────────────────────────────────────────────┤
│ DI (Hilt Modules) │
└──────────────────────────────────────────────────────────────────┘
| Screen | Description | Key Features |
|---|---|---|
| 🎬 Splash | Animated brand reveal | Scale + fade animation, gradient BG |
| 📖 Onboarding | 3-page feature tour | AnimatedContent, progress dots, emoji icons |
| 🔑 Login | Email + Google sign-in | Validation, loading states, forgot password link |
| 📝 Register | Full registration form | 4 fields, confirm password, legal copy |
| 🔒 Forgot Password | Reset flow | Success animation with checkmark |
| 🏠 Home | Dashboard shell | Hero, stats row, actions, activity, analytics |
| 👤 Profile | User profile | Avatar, upgrade CTA, settings menu |
| ⚙️ Settings | App settings | Toggle switches, navigation items |
┌─────────────────────────────────────────────────────────────────┐
│ AIIC COLOR PALETTE │
├──────────────┬──────────────┬──────────────┬────────────────────┤
│ PRIMARY │ SECONDARY │ ACCENT │ BACKGROUND │
│ #7C5CFC │ #00D4AA │ #FF6B9D │ #0A0A0F │
│ Electric │ Mint │ Rose │ Deep Dark │
│ Violet │ Green │ Pink │ │
├──────────────┴──────────────┴──────────────┴────────────────────┤
│ │
│ TYPOGRAPHY │
│ ├── Display: Space Grotesk (Bold, -1.5sp tracking) │
│ ├── Headlines: Space Grotesk (SemiBold) │
│ ├── Body: Inter (Regular, 16sp) │
│ ├── Labels: Inter (SemiBold, 12sp) │
│ └── Buttons: Inter (SemiBold, 15sp) │
│ │
│ SHAPES │
│ ├── Cards: 20dp rounded │
│ ├── Buttons: 14dp rounded │
│ ├── Inputs: 12dp rounded │
│ └── Pills: 50% rounded │
│ │
│ EFFECTS │
│ ├── Glassmorphism (10% white overlay) │
│ ├── Gradient buttons (Violet → Rose) │
│ ├── Soft glow accents │
│ └── Shimmer loading animations │
│ │
└──────────────────────────────────────────────────────────────────┘
| Component | Description |
|---|---|
PremiumButton |
Gradient button with loading spinner |
GlassCard |
Translucent glassmorphism card |
ScoreCard |
Metric display with accent color |
FeatureCard |
Icon + title + description row |
AIICTextField |
Custom input with password toggle & validation |
SectionHeader |
Title + subtitle + action link |
LoadingShimmer |
Animated placeholder skeleton |
EmptyStateView |
Empty content placeholder |
ErrorStateView |
Error display with retry button |
AppLogo |
Gradient circle with "AI" text |
GradientText |
Text with gradient brush fill |
| Layer | Technology | Purpose |
|---|---|---|
| Language | Kotlin | Primary development language |
| UI Framework | Jetpack Compose | Declarative UI |
| Design System | Material Design 3 | Component library |
| Architecture | MVVM + Clean | Separation of concerns |
| DI | Hilt (Dagger) | Dependency injection |
| Navigation | Navigation Compose | Screen routing |
| Async | Coroutines + StateFlow | Reactive state management |
| Persistence | DataStore Preferences | Local key-value storage |
| Fonts | Google Fonts API | Inter + Space Grotesk |
| Animations | Compose Animation | Micro-interactions |
| System UI | Accompanist | Status/nav bar theming |
| Images | Coil | Image loading (ready) |
| Animations | Lottie | Complex animations (ready) |
| Auth | Firebase Auth | Email/Password + Google OAuth |
| Database | Cloud Firestore | User profiles + real-time sync |
| Storage | Firebase Storage | Profile photos (ready) |
| Analytics | Firebase Analytics | Event tracking (ready) |
| Credentials | CredentialManager | Google Sign-In infrastructure |
📂 AIIC/
│
├── 📄 build.gradle.kts # Root build config
├── 📄 settings.gradle.kts # Project settings
├── 📄 gradle.properties # Gradle properties
├── 📄 .gitignore # Git ignore rules
├── 📄 README.md # ← You are here
│
├── 📂 gradle/
│ ├── 📄 libs.versions.toml # Version catalog (all deps)
│ └── 📂 wrapper/
│ └── 📄 gradle-wrapper.properties
│
└── 📂 app/
├── 📄 build.gradle.kts # App module config
├── 📄 proguard-rules.pro # ProGuard rules
│
└── 📂 src/main/
├── 📄 AndroidManifest.xml
│
├── 📂 res/
│ ├── 📂 values/
│ │ ├── 📄 strings.xml
│ │ ├── 📄 themes.xml
│ │ └── 📄 font_certs.xml
│ └── 📂 drawable/
│ └── 📄 splash_background.xml
│
└── 📂 java/com/aiic/app/
│
├── 📄 AIICApplication.kt # @HiltAndroidApp
├── 📄 MainActivity.kt # Single Activity
│
├── 📂 core/
│ ├── 📂 base/
│ │ ├── 📄 BaseViewModel.kt # Generic ViewModel
│ │ └── 📄 UiState.kt # Sealed state/events
│ └── 📂 theme/
│ ├── 📄 Color.kt # 60+ color tokens
│ ├── 📄 Type.kt # Typography scale
│ ├── 📄 Shape.kt # Shape presets
│ ├── 📄 Spacing.kt # Spacing tokens
│ └── 📄 Theme.kt # Theme composable
│
├── 📂 common/
│ ├── 📂 animations/
│ │ └── 📄 Animations.kt # Fade/slide helpers
│ ├── 📂 components/
│ │ ├── 📄 Components.kt # All reusable widgets
│ │ └── 📄 AIICTextField.kt # Custom text field
│ ├── 📂 constants/
│ │ └── 📄 AppConstants.kt
│ └── 📂 extensions/
│ └── 📄 Extensions.kt # Utility extensions
│
├── 📂 data/
│ ├── 📂 local/
│ │ └── 📄 PreferencesManager.kt
│ ├── 📂 model/
│ │ └── 📄 UserDto.kt # DTO + mappers
│ └── 📂 repository/
│ ├── 📄 AuthRepositoryImpl.kt
│ └── 📄 UserPreferencesRepositoryImpl.kt
│
├── 📂 domain/
│ ├── 📂 model/
│ │ ├── 📄 User.kt
│ │ └── 📄 InterviewSession.kt
│ ├── 📂 repository/
│ │ ├── 📄 AuthRepository.kt
│ │ └── 📄 UserPreferencesRepository.kt
│ └── 📂 usecase/
│ └── 📄 AuthUseCases.kt
│
├── 📂 presentation/
│ ├── 📂 feature_splash/
│ │ ├── 📄 SplashScreen.kt
│ │ └── 📄 SplashViewModel.kt
│ ├── 📂 feature_onboarding/
│ │ ├── 📄 OnboardingScreen.kt
│ │ └── 📄 OnboardingViewModel.kt
│ ├── 📂 feature_auth/
│ │ ├── 📂 login/
│ │ │ ├── 📄 LoginScreen.kt
│ │ │ └── 📄 LoginViewModel.kt
│ │ ├── 📂 register/
│ │ │ ├── 📄 RegisterScreen.kt
│ │ │ └── 📄 RegisterViewModel.kt
│ │ └── 📂 forgot_password/
│ │ ├── 📄 ForgotPasswordScreen.kt
│ │ └── 📄 ForgotPasswordViewModel.kt
│ ├── 📂 feature_home/
│ │ ├── 📄 HomeScreen.kt
│ │ └── 📄 HomeViewModel.kt
│ ├── 📂 feature_profile/
│ │ └── 📄 ProfileScreen.kt
│ └── 📂 feature_settings/
│ └── 📄 SettingsScreen.kt
│
├── 📂 navigation/
│ ├── 📄 AppRoutes.kt # Sealed route defs
│ └── 📄 AIICNavHost.kt # NavHost + transitions
│
└── 📂 di/
└── 📄 AppModule.kt # Hilt bindings
💡 45+ Kotlin files comprising a complete production-grade Android foundation with Firebase backend.
# 1. Clone the repository
git clone https://github.com/Pravesh0005/AIIC.git
# 2. Open in Android Studio (Ladybug+)
# 3. Sync Gradle dependencies
# 4. Run on emulator or device (API 26+)| Requirement | Version |
|---|---|
| Android Studio | Ladybug (2024.2.1) or later |
| JDK | 17 |
| Min SDK | 26 (Android 8.0) |
| Target SDK | 35 (Android 15) |
| Gradle | 8.9 |
| AGP | 8.7.3 |
┌──────────┐ ┌──────────────┐ ┌──────────┐ ┌──────────┐
│ Splash │────▶│ Onboarding │────▶│ Login │────▶│ Home │
│ Screen │ │ (3 pages) │ │ Screen │ │Dashboard │
└──┬───────┘ └──────────────┘ └────┬─────┘ └──────────┘
│ (returning user skips to login/home) │
│ ┌──────┴──────┐
│ ▼ ▼
│ ┌──────────┐ ┌──────────┐
│ │ Register │ │ Forgot │
│ │ Screen │ │ Password │
│ └────┬─────┘ └──────────┘
│ │
│ ▼
│ ┌───────────┐
│ │ Account │
│ │ Setup │──────▶ Home
│ └───────────┘
│
└──▶ (logged in) ──────────────────────▶ Home
+ ✅ Project Setup & Gradle Configuration
+ ✅ Version Catalog (libs.versions.toml)
+ ✅ Premium Dark Color Palette (60+ tokens)
+ ✅ Typography System (Inter + Space Grotesk)
+ ✅ Shape & Spacing Design Tokens
+ ✅ Material 3 Theme Integration
+ ✅ Hilt Dependency Injection
+ ✅ Navigation Graph with Transitions
+ ✅ BaseViewModel + UiState + UiEvent
+ ✅ Repository Pattern (Domain + Data)
+ ✅ DataStore Preferences
+ ✅ Splash Screen with Animations
+ ✅ 3-Page Onboarding Flow
+ ✅ Login Screen (Email + Google)
+ ✅ Register Screen (Full Form)
+ ✅ Forgot Password Screen
+ ✅ Home Dashboard Shell
+ ✅ Profile Screen
+ ✅ Settings Screen
+ ✅ 10+ Reusable Components
+ ✅ Animation Helpers
+ ✅ Use Cases Layer
+ ✅ DTO Mappers+ ✅ Firebase BOM + Auth + Firestore + Storage + Analytics
+ ✅ Google Sign-In + CredentialManager dependencies
+ ✅ NetworkResult sealed class for type-safe API responses
+ ✅ DispatcherProvider for testable coroutines
+ ✅ NetworkMonitor with ConnectivityManager callbacks
+ ✅ AnalyticsTracker abstraction (vendor-agnostic)
+ ✅ Validator engine (email, password strength, confirm, name)
+ ✅ FirebaseErrorMapper — user-friendly error messages
+ ✅ FirebaseAuthRepository (login, register, Google, reset, observe)
+ ✅ FirestoreUserRepository (CRUD, real-time listener, merge writes)
+ ✅ SessionRepositoryImpl (DataStore-backed persistence)
+ ✅ UserProfile domain model (career goals, skills, preferences)
+ ✅ AuthSession + AuthCredentials domain models
+ ✅ 8 Use Cases (Login, Register, Reset, Logout, Google, etc.)
+ ✅ LoginViewModel with validation + Firebase auth
+ ✅ RegisterViewModel with 4-field validation + Firestore profile
+ ✅ ForgotPasswordViewModel with reset sent state
+ ✅ SplashViewModel with 3-way routing (onboarding/login/home)
+ ✅ AccountSetupViewModel with Firestore profile update
+ ✅ Rebuilt LoginScreen — password toggle, loading, Google button
+ ✅ Rebuilt RegisterScreen — terms checkbox, confirm password
+ ✅ Rebuilt ForgotPasswordScreen — success state with confirmation
+ ✅ New AccountSetupScreen — career goals, skills, skip option
+ ✅ AIICTextField upgraded — ImageVector icons, trailing slots
+ ✅ PremiumButton upgraded — custom content slot
+ ✅ SplashScreen 3-way routing (onboarding → login → home)
+ ✅ NavHost with AccountSetup route + proper popUpTo logic
+ ✅ Complete Hilt DI module with Firebase singletons
+ ✅ Thread-safe BaseViewModel with atomic state updates
+ ✅ PreferencesManager hardened as session singleton+ ✅ Phase 3A: Resume Platform Core
+ ✅ File Picker Integration (PDF Uploads)
+ ✅ Firestore Resume Document Storage (Version History)
+ ✅ Cloud Storage Resume File Uploading
+ ✅ ResumeDetailScreen (Stats, Metadata, Actions)
+ ✅ ResumeHistoryScreen (Track uploaded iterations)
+ ✅ ResumeDashboardScreen (Upload & Manage)
+ ✅ Phase 3B: AI Resume Intelligence Engine
+ ✅ Generative AI SDK Integration (Live Gemini 1.5 Flash)
+ ✅ Prompt Engineering Pipeline (Structured JSON constraints)
+ ✅ Real-Time ATS Score Engine (Visual Progress Indicators)
+ ✅ Strength & Weakness Extraction Engine
+ ✅ Skill Categorization & Keyword Gap Analysis
+ ✅ Actionable AI Recommendation Cards
+ ✅ Animated State Management (Analyzing, Success, Failed)
+ ✅ ResumeInsightsScreen (Historical AI feedback viewer)
+ ✅ Glassmorphic Premium Components (SkillChips, ATS Cards)+ ✅ Phase 4: AI Mock Interview Engine
+ ✅ Interview Setup Screen (Role, Difficulty, Configuration)
+ ✅ Interview Session Engine (State Machine for Interviews)
+ ✅ Generative AI Real-Time Answer Evaluation
+ ✅ Groq API (Llama 3) Fallback Integration for high availability
+ ✅ Dynamic Follow-Up Question Generation
+ ✅ Distraction-Free Interview UI with Live Timer
+ ✅ Interview Summary Dashboard
+ ✅ Firestore Session, Question, and Answer Tracking
+ ✅ Hilt Repositories Injection for Data Layer+ ✅ Phase 5: AI Feedback Engine
+ ✅ Real-Time AI Answer Evaluation & Scoring
+ ✅ AnswerFeedbackScreen (Strengths, Weaknesses, Improvements)
+ ✅ Actionable Session Summaries & Score Rings
+ ✅ Target Role Context Injection
+ ✅ Deterministic AI JSON Parsing Engine
+ ✅ Optimized AI Latency with Strict 10s Timeouts
+ ✅ Feedback Domain Use Cases & RepositoriesDay 1 ██████████████████████████████ 100% — Foundation ✅
Day 2 ██████████████████████████████ 100% — Firebase Auth + Firestore + Session ✅
Day 3A ██████████████████████████████ 100% — Resume Platform Foundation ✅
Day 3B ██████████████████████████████ 100% — AI Resume Intelligence Engine ✅
Day 4 ██████████████████████████████ 100% — AI Mock Interview Engine ✅
Day 5 ██████████████████████████████ 100% — AI Feedback Engine ✅
Day 6 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0% — Voice Features
Day 7 ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0% — Polish & Play Store
This project is proprietary and protected under a custom license.
See the LICENSE file for details.
© 2026 Pravesh Jakhar — All Rights Reserved.
