Back

Back

Work Collection

Work Collection

Work Collection

CleverCards

CleverCards

Class Project
Android Development

Class Project
Android Development

Class Project
Android Development

Overview

Overview

Overview

CleverCards is a simple flashcard application. It is designed to help users learn and memorize information more effectively. The application allows users to create, edit, and delete flashcards, as well as quiz themselves on the flashcards they have created.

Technologies Used

  • Jetpack Compose

    • Material 3

  • Firebase

    • Authentication

    • Firestore

    • Cloud Storage

  • OpenAI API

    • DALL·E 3

  • Coil

    • Image loading

Features

  • Login with Google or email/password (using Firebase Authentication)

  • Create flashcard decks

    • Decks can have a title, description, and be set to public or private

    • Decks can have a cover image that can be generated by OpenAI's DALL·E 3 or uploaded from the user's device

    • Flashcards can have question text, answer text, and images for both the question and answer

  • Practice flashcard decks

    • Practice mode allows users to flip through flashcards

    • Users can see their recently practiced decks

  • Home Page

    • Shows a grid of user's decks and all public decks

Learning Outcomes

Building CleverCards provided a meaningful exploration of native Android development. I gained a deeper appreciation for working with native frameworks like Jetpack Compose, especially compared to cross-platform solutions like Flutter. The experience taught me:

  • The power of native development: I found that building with Jetpack Compose offered greater control over UI elements and tighter integration with Android’s ecosystem, leading to a smoother, more seamless user experience.

  • Balancing functionality with simplicity: Developing an app with features like image generation via OpenAI’s DALL·E 3 while maintaining a clean, intuitive user interface challenged me to prioritize usability without overcomplicating the design.

  • Problem-solving in real-world scenarios: Integrating Firebase for authentication and database management made me think about data consistency, security, and user privacy on a deeper level.