Skip to content

w0lzard/codealpha_Quizlet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿƒ Quizlet Android App

Android Kotlin Jetpack Compose Material 3

๐ŸŽ“ A beautiful, modern flashcard study app built with Jetpack Compose

Experience the future of mobile learning with smooth animations and intuitive design


โœจ Features

๐ŸŽด Deck-Style Card Animation

  • Physical Card Feel: Realistic deck stacking with up to 3 visible cards
  • Smooth Swiping: Native HorizontalPager integration for fluid navigation
  • Dynamic Scaling: Cards scale and fade as you swipe through the deck
  • Rotation Effects: Subtle card rotation during swipe gestures

๐Ÿ”„ 3D Card Flip Animation

  • Show Answer: Tap to flip cards with smooth 3D rotation (600ms duration)
  • Flip Back: Return to question side with the same elegant animation
  • Per-Card State: Each card remembers its flip state independently

๐ŸŽ‰ Celebration Effects

  • Confetti Animation: Colorful particles burst from the Check button when correct
  • 50 Particles: Multi-colored confetti with physics-based movement
  • 3-Second Duration: Satisfying celebration that doesn't overstay

๐Ÿ“ฑ Modern UI/UX

  • Material 3 Design: Latest Material Design principles and theming
  • Large Cards: 98% screen width, 700dp height for optimal readability
  • Gradient Backgrounds: Subtle visual depth with card gradients
  • Edge-to-Edge: Full screen utilization with proper padding

๐Ÿง  Smart Study Features

  • Per-Card Tracking: Individual state management for each flashcard
  • Answer Validation: Check correctness without revealing answers
  • Input Persistence: Your typed answers are saved per card
  • Progress Indicators: Visual dots showing current position in deck

๐Ÿ—๏ธ Architecture

Tech Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose
  • Architecture: MVVM with ViewModel
  • State Management: Compose State with observable collections
  • Animations: Compose Animation APIs

Key Components

๐Ÿ“ app/src/main/java/com/ryuken/quizlet/
โ”œโ”€โ”€ ๐Ÿ“ data/model/
โ”‚   โ””โ”€โ”€ Flashcard.kt                 # Data model
โ”œโ”€โ”€ ๐Ÿ“ ui/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ composables/
โ”‚   โ”‚   โ”œโ”€โ”€ FlashcardView.kt         # Main card component
โ”‚   โ”‚   โ””โ”€โ”€ AddEditFlashcardDialog.kt # Card creation dialog
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ screen/
โ”‚   โ”‚   โ””โ”€โ”€ FlashcardManagementScreen.kt # Main screen
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ viewmodel/
โ”‚   โ”‚   โ””โ”€โ”€ FlashcardViewModel.kt    # State management
โ”‚   โ””โ”€โ”€ ๐Ÿ“ theme/
โ”‚       โ””โ”€โ”€ Theme.kt                 # Material 3 theming
โ””โ”€โ”€ MainActivity.kt                  # App entry point

๐Ÿš€ Getting Started

Prerequisites

  • Android Studio Hedgehog | 2023.1.1 or newer
  • Android SDK 34
  • Kotlin 1.9.0+
  • Gradle 8.0+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/quizlet-android.git
    cd quizlet-android
  2. Open in Android Studio

    • Launch Android Studio
    • Select "Open an Existing Project"
    • Navigate to the cloned directory
  3. Build and Run

    ./gradlew build
    ./gradlew installDebug

๐ŸŽฎ How to Use

Study Mode

  1. ๐Ÿ“– Read the Question: Each card displays a question at the top
  2. โœ๏ธ Type Your Answer: Use the text input field to enter your response
  3. โœ… Check Answer: Tap "Check" to validate (triggers confetti if correct!)
  4. ๐Ÿ‘๏ธ Show Answer: Tap to flip the card and reveal the correct answer
  5. โžก๏ธ Navigate: Swipe left/right or use navigation buttons

Card Management

  • โž• Add Cards: Tap the floating action button to create new flashcards
  • ๐Ÿ”€ Shuffle: Randomize the deck order for varied practice
  • ๐Ÿ“Š Progress: Track your position with the indicator dots

๐ŸŽจ Design Highlights

Animation System

  • HorizontalPager: Native Android paging with smooth gestures
  • Card Stacking: Visual depth with progressive scaling and alpha
  • 3D Flip: Realistic card rotation using rotationY and cameraDistance
  • Confetti Physics: Particle system with gravity and rotation

State Management

  • Observable Maps: mutableStateMapOf for reactive per-card data
  • Compose Integration: Seamless UI updates with state changes
  • Memory Efficiency: Smart rendering of visible cards only

Visual Polish

  • Rounded Corners: 24dp radius for modern card appearance
  • Elevation Effects: Dynamic shadows based on card position
  • Color Theming: Consistent Material 3 color palette
  • Typography: Optimized text sizing and spacing

๐Ÿ”ง Technical Details

Dependencies

// Core Compose
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material3:material3:$material3_version"

// Paging
implementation "androidx.compose.foundation:foundation:$compose_version"

// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"

Performance Optimizations

  • Lazy Rendering: Only visible cards are fully rendered
  • State Preservation: Efficient per-card state tracking
  • Animation Optimization: Hardware-accelerated transformations
  • Memory Management: Proper cleanup of animation resources

๐Ÿค Contributing

We welcome contributions! Please feel free to submit a Pull Request.

Development Setup

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

๐Ÿ“„ License

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


๐Ÿ™ Acknowledgments

  • Material Design Team for the beautiful design system
  • Jetpack Compose Team for the modern UI toolkit
  • Android Community for continuous inspiration and support

Made with โค๏ธ and lots of โ˜•

Happy Learning! ๐ŸŽ“

About

This repository contains all the projects that I did when I was working as an App Development Intern at CodeAlpha

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages