Skip to content

mehmet-can-yilmaz/recall

Repository files navigation

πŸ“š Recall - Elite iOS Flashcard App

A powerful, privacy-first flashcard application for iOS built with SwiftUI and SwiftData. Features AI-powered card generation, advanced spaced repetition algorithms, and comprehensive analytics.

✨ Features

🎯 Core Functionality

  • Rich Text Card Editor - Visual formatting with markdown support
  • Multiple Card Types - Basic, Cloze deletion, and Image occlusion
  • Deck Management - Organize cards into color-coded decks
  • Advanced Search - Find cards across all decks instantly

🧠 Spaced Repetition

  • SM-2 Algorithm - Classic, proven spaced repetition
  • FSRS Algorithm - Modern, ML-optimized scheduling
  • Smart Scheduling - Cards appear at optimal intervals
  • Progress Tracking - Monitor your learning journey

πŸ€– AI Card Generation

  • OpenRouter Integration - Generate cards with AI
  • Multiple Models - GPT-4o, Claude 3.5, Gemini 1.5, and more
  • Bulk Generation - Create multiple cards from text
  • Smart Formatting - AI-generated cards ready to study

πŸ“Š Advanced Analytics

  • 4-Tab Analytics - Overview, Performance, Progress, Insights
  • Retention Metrics - Track learning effectiveness
  • Study Time - Monitor daily and weekly patterns
  • Accuracy Trends - See your improvement over time
  • Forecast Predictions - Plan your study sessions

☁️ Sync & Backup

  • Privacy-First Design - Data stays in your iCloud
  • Local Backup - Export to JSON format
  • Restore Functionality - Import from backup files
  • CloudKit Ready - Sync infrastructure implemented

🎨 Beautiful Design

  • Global Design System - Consistent, polished UI
  • Emotional Feedback - Haptic feedback and animations
  • Coach Messages - Encouraging study companion
  • Dark Mode Support - Easy on the eyes

πŸš€ Getting Started

Prerequisites

  • Xcode 15.0+
  • iOS 17.0+
  • macOS 14.0+ (for development)

Installation

  1. Clone the repository

    git clone https://github.com/mehmet-can-yilmaz/recall.git
    cd recall
  2. Open in Xcode

    open Recall.xcodeproj
  3. Select your target device

    • Choose a simulator or connected device
    • Ensure you have a valid development team selected
  4. Build and Run

    • Press ⌘ + R or click the Play button
    • App will launch on your selected device

Optional: Enable iCloud Sync

  1. Open project in Xcode
  2. Select Recall target β†’ Signing & Capabilities
  3. Click + Capability β†’ Add iCloud
  4. Enable CloudKit service
  5. Container will be iCloud.$(CFBundleIdentifier)

πŸ“– Usage

Creating Cards

  1. Navigate to Library tab
  2. Create a deck or select existing
  3. Tap "Add New Card"
  4. Use the rich text editor:
    • Bold: ⌘ + B
    • Italic: ⌘ + I
    • Underline: ⌘ + U
    • Cloze deletion: Tap "Cloze" button

AI Card Generation

  1. Tap "Generate with AI" in Study tab
  2. Select model (GPT-4o recommended)
  3. Enter your OpenRouter API key
  4. Paste text to generate cards from
  5. Generate - AI creates cards automatically

Studying

  1. Go to Study tab
  2. Select a deck (or study all)
  3. Tap "Start Study"
  4. Rate each card:
    • Again (forgot)
    • Hard (difficult to recall)
    • Good (correct)
    • Easy (too easy)

Analytics

  • Overview - Daily stats and progress
  • Performance - Retention and accuracy metrics
  • Progress - Study time and card completion
  • Insights - Deck performance and forecasts

πŸ—οΈ Architecture

Tech Stack

  • SwiftUI - Modern, declarative UI framework
  • SwiftData - Persistent data storage
  • CloudKit - Optional iCloud synchronization
  • Combine - Reactive programming

Key Components

Recall/
β”œβ”€β”€ Models/           # SwiftData models (Card, Deck, SRS, etc.)
β”œβ”€β”€ Views/            # SwiftUI views and screens
β”œβ”€β”€ Services/         # AI API, Sync Manager
β”œβ”€β”€ SRS/              # Spaced repetition algorithms
β”œβ”€β”€ Components/       # Reusable UI components
└── Extensions/       # Design tokens and utilities

Data Models

  • Card - Flashcard content with markdown
  • Deck - Collection of cards
  • CardSRS - Spaced repetition metadata
  • ReviewEvent - Study session history

πŸ”’ Privacy

  • Local-First - All data stored on device
  • No Tracking - Zero analytics or telemetry
  • iCloud Optional - Sync only when you enable it
  • Open Source - Transparent codebase

πŸ“„ Documentation

πŸ› οΈ Development

Building from Source

  1. Clone the repository
  2. Open in Xcode
  3. Select development team
  4. Build and run

Adding Features

See IMPLEMENTATION_STATUS.md for planned features and roadmap.

πŸ› Known Issues

  • CloudKit requires manual capability addition in Xcode
  • First launch on simulator may be slow
  • Image occlusion UI exists but not fully implemented

πŸ“ License

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

πŸ™ Acknowledgments

  • FSRS Algorithm - Open-source spaced repetition research
  • OpenRouter - AI model aggregation service
  • Anki - Inspiration for flashcard workflows

πŸ“§ Contact

For questions or feedback:


Made with ❀️ and SwiftUI

About

recall app repo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors