Skip to content

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

Notifications You must be signed in to change notification settings

w0lzard/codealpha_Quotopia

Repository files navigation

🌸 Quotopia - Anime Quote Generator

Quotopia Logo

Discover inspiring anime quotes with beautiful character imagery

Android Kotlin Jetpack Compose

✨ Features

🎌 Random Anime Quotes - Get inspiring quotes from your favorite anime characters 🖼️ Beautiful Character Images - Each quote comes with stunning anime character artwork 🎨 Modern Material Design 3 - Clean, elegant UI with smooth animations 📱 Responsive Design - Optimized for all Android screen sizes 🔄 Swipe to Refresh - Intuitive gesture controls for new quotes ⚡ Fast & Reliable - Robust error handling and network resilience 🌙 Dark Theme - Eye-friendly dark interface with gradient backgrounds

🚀 Quick Start

Prerequisites

  • Android Studio Arctic Fox or later
  • Android SDK 24+ (Android 7.0)
  • Kotlin 1.8+

Installation

  1. Clone the repository

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

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

    ./gradlew installDebug

🎮 How to Use

  1. Launch the app - Quotopia will automatically load a random anime quote
  2. Get new quotes - Tap the "New Quote" button or swipe left/right
  3. Enjoy the experience - Each quote includes character name and anime series
  4. Retry on errors - If network issues occur, tap "Try Again"

🏗️ Architecture

Quotopia follows modern Android development best practices:

🧱 Tech Stack

  • UI Framework: Jetpack Compose with Material Design 3
  • Architecture: MVVM (Model-View-ViewModel)
  • Networking: Retrofit + OkHttp with Gson
  • Concurrency: Kotlin Coroutines + StateFlow
  • Image Loading: Coil for async image loading
  • Dependency Injection: Manual DI with Repository pattern

📁 Project Structure

app/
├── src/main/java/com/ryuken/quotopia/
│   ├── data/
│   │   ├── Quote.kt                 # Data models
│   │   └── QuotesRepository.kt      # Data layer
│   ├── network/
│   │   ├── QuotesApiService.kt      # API interface
│   │   ├── WaifuApiService.kt       # Image API interface
│   │   └── RetrofitClient.kt        # Network configuration
│   ├── viewmodel/
│   │   └── QuoteViewModel.kt        # Business logic
│   └── MainActivity.kt              # UI components
└── ...

🌐 APIs Used

🎨 UI Components

🔮 Quote Card

  • Elegant card design with rounded corners
  • Animated quotation marks with glow effects
  • Typography hierarchy for quote text and attribution
  • Character and anime series information

⚡ Loading States

  • Smooth loading animations with progress indicators
  • Engaging loading messages and emoji
  • Seamless state transitions

🚨 Error Handling

  • User-friendly error messages
  • Retry functionality with animated buttons
  • Network-specific error descriptions

🔧 Configuration

Network Settings

  • Connection timeout: 15 seconds
  • Read timeout: 20 seconds
  • Automatic retry with exponential backoff
  • Comprehensive error handling for various network conditions

Performance Optimizations

  • Efficient image caching with Coil
  • Coroutine-based async operations
  • Memory-conscious logging levels
  • Optimized recomposition in Compose

🛡️ Error Handling

Quotopia includes robust error handling for:

  • ❌ Network connectivity issues
  • ⏱️ API timeout scenarios
  • 🔄 Rate limiting (429 errors)
  • 🖥️ Server unavailability
  • 📱 Malformed API responses
  • 🔒 Null safety throughout the app

🤝 Contributing

We welcome contributions! Please follow these steps:

  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

📝 Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Ensure proper error handling

📄 License

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

🙏 Acknowledgments

  • Animechan API for providing the anime quotes database
  • Waifu.pics for beautiful anime character images
  • Android Jetpack Compose team for the amazing UI toolkit
  • Material Design team for the design system

📞 Support

If you encounter any issues or have questions:


Made with ❤️ and ☕ by [Your Name]

"The only way to do great work is to love what you do." - Steve Jobs

# codealpha_Quotopia

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages