An Intelligent Flashcard App for Anatomy & Biology Mastery
StudyBlank is an Android application that uses machine learning-powered spaced repetition to help students master anatomy and biology. Built with the scientifically-proven SM-2 algorithm, it optimizes your study schedule based on your performance, ensuring maximum retention with minimum effort.
- Spaced Repetition Algorithm (SM-2): Intelligent scheduling adapts to YOUR learning pace
- Adaptive Difficulty: Cards automatically adjust based on your performance
- Priority Queue: Focus on cards that need review most urgently
- Performance Analytics: Track accuracy and progress for every flashcard
- Pre-loaded Gray's Anatomy Decks: 35+ flashcards across 3 systems
- Skeletal System (15 cards)
- Muscular System (10 cards)
- Nervous System (10 cards)
- Ready-to-study content from day one
- Optimized Review Timing: Reviews scheduled just before you forget
- Instant Feedback: Rate your performance (Easy, Good, Hard, Again)
- Progress Tracking: See due cards, total cards, and accuracy metrics
- Session Management: Study only what's due, when it's due
- Firebase Authentication: Secure user accounts with email/password
- Local Data Storage: Room database for fast, offline access
- Per-user Progress: Your learning journey is uniquely yours
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Login Screen β β Dashboard β β Study Session β
β β β β β β
β [ Email ] β β π Due: 12 β β βββββββββββββββ β
β [ Password ] β β π Total: 35 β β β Question? β β
β β β β β βββββββββββββββ β
β [ LOGIN ] βββ π§ ML Learning βββ [ Show Answer] β
β [CREATE ACCT] β β π Gray's Anat β β β
β β β π Progress β β [Easy][Good] β
β β β β β [Hard][Again] β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Android Studio Arctic Fox or later
- JDK 8+
- Android device/emulator (API 15+)
- Firebase account
-
Clone the repository
git clone https://github.com/yeungjosh/studyblank.git cd studyblank -
Set up Firebase
- Go to Firebase Console
- Create a project and add Android app
- Package name:
com.example.bao48.studyblank - Download
google-services.jsonand place in/app/directory - Enable Email/Password authentication
-
Build and Run
./gradlew assembleDebug ./gradlew installDebug
Or open in Android Studio and click βΆ Run
-
Start Learning!
- Create an account
- Login to see dashboard
- Start studying with pre-loaded content
StudyBlank uses the SuperMemo 2 algorithm, a proven method for optimizing memory retention:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LEARNING WORKFLOW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
You study a flashcard
β
βΌ
Rate your answer (0-5)
β
βββββββββββββββ¬ββββββββββββββ
βΌ βΌ βΌ
Wrong (0-2) Okay (3-4) Perfect (5)
β β β
βΌ βΌ βΌ
Review in Review in Review in
10 minutes 1-2 days 5+ days
β β β
βββββββββββββββ΄ββββββββββββββ
β
βΌ
Algorithm adjusts:
β’ Ease Factor (difficulty)
β’ Review Interval
β’ Next Review Date
| Rating | Button | Meaning | Next Review |
|---|---|---|---|
| 5 | Easy | Perfect recall | 5+ days |
| 4 | Good | Correct after thought | 2-3 days |
| 3 | Good | Correct with difficulty | 1-2 days |
| 2 | Hard | Incorrect but familiar | 10 minutes |
| 1 | Hard | Barely remembered | 10 minutes |
| 0 | Again | Complete blackout | 1 minute |
- Forgetting Curve: Reviews are scheduled just before you're likely to forget
- Personalized: Each card adapts to YOUR performance
- Efficient: More time on hard cards, less on easy ones
- Scientific: Based on decades of memory research
- Language: Java
- Database: Room (SQLite)
- Auth: Firebase Authentication
- UI: Material Design, CardView, RecyclerView
- Algorithm: SM-2 Spaced Repetition
- Min SDK: Android 4.1 (API 16)
- Target SDK: Android 9.0 (API 28)
studyblank/app/src/main/java/com/example/bao48/studyblank/
βββ algorithm/ β ML Core
β βββ SpacedRepetitionAlgorithm.java
βββ database/ β Data Layer
β βββ AppDatabase.java
β βββ DatabaseInitializer.java
β βββ DeckDao.java
β βββ FlashcardDao.java
β βββ StudyProgressDao.java
βββ models/ β Entities
β βββ Deck.java
β βββ Flashcard.java
β βββ StudyProgress.java β ML State
βββ Activities (root package) β UI Layer
β βββ home.java (Login)
β βββ createAccount.java (Register)
β βββ MainActivity.java (Dashboard)
β βββ StudyActivity.java (Study)
β βββ DeckListActivity.java (Browse)
βββ app/src/main/res/ β Resources
βββ layout/
β βββ activity_study.xml
β βββ activity_deck_list.xml
β βββ content_main.xml
βββ values/
βββ strings.xml
βββ colors.xml
ββββββββββββ 1:N βββββββββββββββ 1:N ββββββββββββββββββ
β Decks βββββββββββββ Flashcards βββββββββββββ StudyProgress β
ββββββββββββ βββββββββββββββ ββββββββββββββββββ
β β β
β β β
ββ name ββ question ββ easeFactor βββ
ββ description ββ answer ββ repetitions β
ββ category ββ imageUrl ββ interval β ML
ββ cardCount ββ deckId ββ nextReview β State
ββ accuracy βββ
ββ userId
For detailed technical documentation, see DOCUMENTATION.md:
- Complete architecture diagrams
- ML algorithm deep dive with formulas
- Database schema with ERD
- User flow diagrams
- Code structure guide
- API reference
- Testing guide
-
Create Account
- Open app β "Create Account"
- Enter email and password
- Verify email (check spam folder)
- Login with credentials
-
Explore Dashboard
- View statistics (cards due, total cards)
- Check out features
- Open navigation drawer (β°)
-
Start Studying
- Click "Study" from menu
- View flashcard question
- Click "Show Answer"
- Rate your knowledge (Easy/Good/Hard/Again)
- Algorithm schedules next review
-
Browse Decks
- Click "My Decks" from menu
- View all available decks
- See card counts
- Tap deck to study
β DO:
- Study daily for consistency
- Be honest with ratings
- Review all due cards
- Take breaks between sessions
β DON'T:
- Cram all cards at once
- Always click "Easy" (defeats the algorithm)
- Skip days (breaks the schedule)
- Study when tired
Spaced repetition is based on the forgetting curve, discovered by psychologist Hermann Ebbinghaus:
Memory Retention Over Time
100% βββ
β βββ β With spaced repetition
β βββ (reviews at optimal times)
50% β ββββββββββββββββββββ
β βββ
β βββ β Without review
0% βββββββββββββββββββββββββββββββββββββββ
0 1 3 7 14 30 days
- Ebbinghaus (1885): Forgetting curve research
- Wozniak (1990): SuperMemo algorithm development
- Cepeda et al. (2006): Meta-analysis on spacing effects
- Dunlosky et al. (2013): Rated spaced repetition as highly effective
# Clone
git clone https://github.com/yeungjosh/studyblank.git
cd studyblank
# Build
./gradlew clean
./gradlew assembleDebug
# Install
./gradlew installDebug
# Run tests
./gradlew test// Room Database
implementation 'android.arch.persistence.room:runtime:1.0.0'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'
// Firebase
implementation 'com.google.firebase:firebase-auth:11.0.4'
// UI
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
// JSON
implementation 'com.google.code.gson:gson:2.8.2'- Statistics dashboard with charts
- Custom deck creation
- Import/export decks (JSON, CSV)
- Dark mode
- Card flip animations
- Image support for diagrams
- Cloud sync across devices
- Collaborative decks
- Voice input
- Multiple algorithm options
- Gamification (achievements, XP)
- Social features (leaderboards, sharing)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is for educational purposes. Gray's Anatomy content is used for demonstration.
- SuperMemo: For the SM-2 algorithm
- Gray's Anatomy: For anatomical content
- Firebase: For authentication services
- Android Team: For excellent development tools
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Total Code: ~3,000 lines
- Activities: 5
- Database Tables: 3
- Pre-loaded Cards: 35
- Supported Languages: English
- Min Android Version: 4.1 (Jelly Bean)
- Target Android Version: 9.0 (Pie)
Made with β€οΈ for students struggling with anatomy
"The best time to plant a tree was 20 years ago. The second best time is now. The same applies to learning."