Skip to content

ihjohny/JetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

75 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฑ JetCode - Interactive Kotlin & Android Learning Platform

License: MIT API

An Interactive Learning Mobile Application for mastering Kotlin and Android Development through curated flashcard-style content, comprehensive quizzes, and progress tracking. Built with modern Android development practices using Clean Architecture, MVI pattern, and Jetpack Compose.

๐Ÿ“ฑ Screenshots

Onboarding Skills Dashboard Skill Detail Topic Learning
Onboarding Skills Skill Detail Topic
Topic Completed Practice Quiz Result Statistics Profile & Settings
Practice Results Stats Profile

โœจ Core Features

๐ŸŽฏ Interactive Learning System

  • Diverse Material Types:
    • ๐Ÿ“ TEXT: Summarized knowledge in flashcard format
    • ๐Ÿ“„ MARKDOWN: Formatted technical documentation
    • ๐Ÿ’ป CODE: Interactive Kotlin/Android code examples
    • ๐Ÿ–ผ๏ธ IMAGE: Visual diagrams and illustrations
    • ๐ŸŽฅ VIDEO: Tutorial and demonstration content
  • Curated Content: Focus on Kotlin and Android application development

๐Ÿง  Comprehensive Practice System

  • ๐Ÿ“Š MCQ: Multiple Choice Questions
  • โœ๏ธ FILL_BLANK: Code completion challenges
  • Difficulty-Based Practice: Adaptive difficulty levels
  • Timed Quizzes: Built-in timer for skill assessment
  • Detailed Results: Complete answers with explanations
  • Standalone Practice Bundles: Independent quiz collections

๐Ÿ“Š Progress Tracking & Analytics

  • Skill Progress: Visual progress indicators for each skill
  • Topic Completion: Track materials completed per topic
  • Learning Statistics: Comprehensive learning analytics
  • Quiz Performance: Detailed quiz activity and results history
  • Achievement System: Progress milestones and achievements

๐ŸŽจ Modern User Experience

  • Material Design 3: Latest design system implementation
  • Dynamic Theming: Multiple color schemes with system preference
  • Dark/Light Mode: Seamless theme switching
  • Responsive Design: Optimized for various screen sizes
  • Smooth Navigation: Intuitive app flow and transitions

๐Ÿ—๏ธ Content Architecture

๐Ÿ“š Learning Hierarchy

๐ŸŽฏ Skills (Kotlin & Android Development)
โ”œโ”€โ”€ ๐Ÿ“– Topics (Specific areas like "Coroutines", "Compose UI")
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ Materials (Text, Code, Video, Images)
โ”‚   โ””โ”€โ”€ ๐Ÿงฉ Practice Bundle (Topic-specific quizzes)
โ””โ”€โ”€ ๐Ÿ“Š Progress Tracking (Completion percentage)

๐Ÿงฉ Quiz System

๐ŸŽฎ Practice Bundles
โ”œโ”€โ”€ ๐Ÿ“ MCQ Questions
โ”œโ”€โ”€ ๐Ÿ’ป Code Challenges  
โ”œโ”€โ”€ ๐Ÿ”ฎ Output Prediction
โ”œโ”€โ”€ โœ๏ธ Fill in the Blanks
โ”œโ”€โ”€ โฑ๏ธ Timer System
โ””โ”€โ”€ ๐Ÿ“Š Results & Explanations

๐Ÿ› ๏ธ Technical Implementation

๐Ÿ—๏ธ Architecture Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Presentation Layer                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   ๐Ÿ“ฑ Compose UI  โ”‚ โ”‚  ๐ŸŽฏ ViewModels  โ”‚ โ”‚ ๐Ÿงญ Navigation  โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      Domain Layer                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   ๐Ÿ”„ Use Cases  โ”‚ โ”‚   ๐Ÿ›๏ธ Repository โ”‚ โ”‚   ๐Ÿ“‹ Models    โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Data Layer                           โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  ๐ŸŒ Remote API  โ”‚ โ”‚  ๐Ÿ’พ Local DB    โ”‚ โ”‚ ๐Ÿ”ง Data Sourcesโ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงฉ Modular Structure

๐Ÿ“ฆ JetCode/
โ”œโ”€โ”€ ๐Ÿ“ฑ app/                          # Main application module
โ”œโ”€โ”€ ๐ŸŽฏ features/                     # Feature modules
โ”‚   โ”œโ”€โ”€ learning/                    # Skills, Topics, Materials
โ”‚   โ”œโ”€โ”€ onboarding/                  # User onboarding flow
โ”‚   โ”œโ”€โ”€ practice/                    # Quiz and practice system
โ”‚   โ””โ”€โ”€ profile/                     # User profile & statistics
โ”œโ”€โ”€ ๐Ÿ—๏ธ core/                        # Core shared modules
โ”‚   โ”œโ”€โ”€ analytics/                   # Learning analytics
โ”‚   โ”œโ”€โ”€ common/                      # Shared utilities
โ”‚   โ”œโ”€โ”€ designsystem/                # Material Design 3 theming
โ”‚   โ”œโ”€โ”€ network/                     # API communication
โ”‚   โ””โ”€โ”€ ui/                          # Shared UI components
โ”œโ”€โ”€ ๐Ÿ’พ data/                         # Data layer modules
โ”‚   โ”œโ”€โ”€ database/                    # Local caching (Room)
โ”‚   โ””โ”€โ”€ repository/                  # Data management
โ””โ”€โ”€ ๐Ÿ›๏ธ domain/                       # Business logic & models

๐Ÿ“‹ Domain Models

// Core content hierarchy
Skill โ†’ Topic โ†’ Material
     โ†’ PracticeSet โ†’ Quiz

// Material types: TEXT, MARKDOWN, CODE, IMAGE, VIDEO
// Quiz types: MCQ, CODE_CHALLENGE, OUTPUT_PREDICTION, FILL_BLANK
// Difficulty levels: Beginner, Intermediate, Advanced

๐Ÿ”ง Technologies & Libraries

๐Ÿ—๏ธ Architecture & Pattern

  • ๐Ÿ›๏ธ Clean Architecture: Clear separation of concerns
  • ๐Ÿ”„ MVI Pattern: Unidirectional data flow
  • ๐Ÿงฉ Multi-module: Scalable architecture
  • ๐Ÿ’‰ Koin: Dependency injection

๐ŸŽจ UI & Design

  • ๐ŸŽจ Jetpack Compose: Modern declarative UI
  • ๐Ÿงญ Navigation Compose: Type-safe navigation
  • ๐ŸŽจ Material Design 3: Latest design system
  • ๐ŸŒ™ Dynamic Theming: Color schemes & dark/light mode
  • ๐Ÿ–ผ๏ธ Coil: Efficient image loading

๐Ÿ’พ Data & Storage

  • ๐Ÿ  Room Database: Local data persistence
  • ๐Ÿ’พ DataStore: User preferences management
  • ๐ŸŒ Ktor Client: HTTP client for content loading
  • ๐Ÿ“„ Kotlinx Serialization: Type-safe JSON handling

โšก Async & Background

  • ๐Ÿ”„ Kotlin Coroutines: Asynchronous programming
  • ๐Ÿ”„ Kotlin Flow: Reactive data streams
  • โš™๏ธ WorkManager: Background content sync

๐Ÿงช Testing & Quality

  • ๐Ÿงช JUnit 4: Unit testing framework
  • ๐ŸŽญ MockK: Kotlin mocking library
  • ๐Ÿงช Compose Testing: UI testing
  • ๐Ÿ” Detekt: Static code analysis
  • ๐ŸŽจ Ktlint: Code formatting

๐Ÿš€ Getting Started

Prerequisites

  • Android Studio: Flamingo or newer
  • JDK: 11 or higher
  • Android SDK: API 24+ (Android 7.0)
  • Gradle: 8.11.0

๐Ÿ› ๏ธ Installation

  1. Clone the repository

    git clone https://github.com/yourusername/jetcode.git
    cd jetcode
  2. Open in Android Studio

    • Launch Android Studio
    • Select "Open an existing project"
    • Navigate to the cloned directory
  3. Sync and build

    ./gradlew build
  4. Run the application

    • Select your device/emulator
    • Click "Run" or use Ctrl+R (Windows/Linux) / Cmd+R (Mac)

๐Ÿ”ง Build Commands

# Debug build
./gradlew assembleDebug

# Release build
./gradlew assembleRelease

# Run tests
./gradlew test

# Code quality checks
./gradlew detekt ktlintCheck

๐ŸŽฏ App Flow & Navigation

๐Ÿ“ฑ User Journey

  1. Onboarding: Introduction to the learning platform
  2. Skills Dashboard: Browse available Kotlin/Android skills
  3. Skill Details: View topics within selected skill
  4. Topic Learning: Study materials (text, code, videos)
  5. Practice Quiz: Test knowledge with various quiz types
  6. Results & Progress: Review performance and track progress
  7. Profile: View statistics and customize settings

๐Ÿงญ Navigation Structure

Onboarding โ†’ Skills List โ†’ Skill Detail โ†’ Topic Detail โ†’ Practice
                โ†“              โ†“             โ†“           โ†“
            Profile โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Results

๐Ÿ“Š Key Dependencies

Category Library Version Purpose
Kotlin Kotlin 2.0.21 Programming language
Build AGP 8.11.0 Android Gradle Plugin
UI Compose BOM 2024.09.00 UI toolkit
Navigation Navigation Compose 2.8.0 App navigation
DI Koin 3.5.6 Dependency injection
Network Ktor 2.3.12 HTTP client
Database Room 2.6.1 Local storage
Testing MockK 1.13.12 Testing framework

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

๐Ÿ“‹ Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿงช Code Quality

  • Run ./gradlew detekt for static analysis
  • Run ./gradlew ktlintCheck for code formatting
  • Ensure all tests pass with ./gradlew test
  • Follow Kotlin coding conventions

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ž Support


โญ Star this repository if it helped you!

Built with โค๏ธ for the Android community

About

A modern Android codebase for boilerplate usage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages