QuickMem is an Android application designed to enhance learning through flashcards. It helps users efficiently memorize and review various subjects by offering a flashcard-based learning approach, similar to popular apps like Quizlet and Anki. The app is built using modern Android technologies, including Kotlin, Jetpack Compose, Dagger Hilt, and more, ensuring a smooth and engaging user experience.
Google Play Closed Testing - QuickMem
- User Authentication & Onboarding: Secure sign-up and sign-in process with user account management.
- Flashcard & Study Set Management: Create, edit, and manage flashcards and study sets for different subjects.
- Progress Tracking: Track study progress and flashcard performance over time.
- Customizable Flashcard Modes: Choose from various study modes to reinforce learning.
- Daily Reminders: Get reminders to review flashcards and stay on track with learning goals.
- Network Operations: Sync data and flashcards with the server using Ktor and Retrofit.
- Image Support: Add images to flashcards for better context and memorization using Coil.
- Logging & Debugging: Built-in logging for debugging and performance monitoring with Timber.
- Data Storage: Local data storage using DataStore to persist user data and flashcards.
- Daily Notifications: Schedule daily notifications for reminders and study sessions.
- AI-Powered Features: Create smart flashcards and study sets using AI algorithms for better learning.
- Multi-Language Support: Support for multiple languages and localization for a global audience.
- Multi-Method Study: Use different study methods like flip, multiple-choice, and fill-in-the-blank for flashcards.
- Android Studio Ladybug Feature Drop | 2024.2.2 Nightly 2024-09-16
- JDK 17
- Android SDK 29 or higher
-
Clone the repository:
git clone https://github.com/pass-with-high-score/quick_mem.git cd quick_mem
-
Open the project in Android Studio.
-
Add the following lines to your
local.properties
file:BASE_URL="https://your-server-url.com" EMAIL_VERIFICATION_URL="https://your-server-url.com/verify-email" BANNER_ADS_ID="your-banner-ads-id" INTERSTITIAL_ADS_ID="your-interstitial-ads-id" REWARD_ADS_ID="your-reward-ads-id" REWARDED_INTERSTITIAL_ADS_ID="your-rewarded-interstitial-ads-id" ONESIGNAL_APP_ID="your-onesignal-app-id"(optional) REVENUECAT_API_KEY="your-revenuecat-api-key" RELEASE_STORE_FILE="your-release-store-file" RELEASE_KEY_ALIAS="your-release-key-alias" RELEASE_STORE_PASSWORD="your-release-store-password" RELEASE_KEY_PASSWORD="your-release-key-password"
-
Build the project:
./gradlew build
-
Run the app on an emulator or a physical device.
- Launch the app on your device.
- Follow the onboarding process to set up your profile.
- Create and manage your flashcards and study sets.
- Review flashcards, track progress, and get daily reminders for efficient studying.
app/src/main/java/com/pwhs/quickmem/
: Contains the main application code and features related to flashcard management, user authentication, and study modes.app/src/main/res/
: Contains resource files like strings, images, and layouts.app/build.gradle.kts
: Build configuration for the app module..github/workflows/
: Contains GitHub Actions workflows for CI/CD.
The app utilizes a backend for syncing data, flashcards, and user information. For security reasons, sensitive information such as VPS details and Google services are not publicly disclosed. Please contact me via email for further information.
This project is part of my graduation project for the "Mobile Application Development" course at FPT Polytechnic College. At the moment, contributions are not being accepted.
- Jetpack Compose – Modern UI toolkit for Android.
- Dagger Hilt – Dependency injection library for Android.
- Ktor – Asynchronous HTTP client for Kotlin.
- Retrofit – Type-safe HTTP client for Android.
- Coil – Image loading library for Android.
- Timber – A logger for Android.