Skip to content

codingstark-dev/PolyglotMac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolyglotMac

A native macOS menu bar application designed to help speakers of Hindi, Marathi, and English learn Spanish through interactive flashcards, speech drills, and spaced repetition.

macOS Swift Platform

Features

Learning Tools

  • Flashcard Review System - Interactive flashcards with tap-to-reveal, organized by due dates using the SM-2 spaced repetition algorithm
  • Architecture Diff Cards - Compare Spanish grammar/structure to Hindi & English (word order, gender, articles, verb conjugation)
  • Phoneme Cards - Spanish sounds mapped to Hindi and English equivalents (rolled 'r', 'j' sound, 'ñ')
  • Speech Drills - Three practice modes:
    • Shadowing - Listen and repeat
    • Minimal Pairs - Distinguish similar sounds
    • Pattern Substitution - Practice grammatical patterns
  • Phrase Cards - Common Spanish phrases with text-to-speech pronunciation

App Features

  • Menu Bar Companion - Quick access popover for review sessions from the menu bar
  • Global Shortcut - Cmd+Shift+L to add cards from clipboard (works from any app)
  • Progress Tracking - Daily streak counter, cards reviewed today
  • Notification Reminders - Configurable review reminders
  • Onboarding Flow - Four-page introduction for new users

Tech Stack

Component Technology
Language Swift 5.9+
UI Framework SwiftUI
Persistence Core Data (programmatic model)
Audio AVFoundation (AVSpeechSynthesizer)
Architecture @Observable pattern (Observation framework)
Notifications UserNotifications framework
Deployment Target macOS 26.4+

Project Structure

PolyglotMac/
├── PolyglotMac/
│   ├── App/
│   │   ├── PolyglotMacApp.swift    # @main entry point
│   │   └── AppState.swift          # Global state
│   ├── Models/
│   │   ├── Language.swift          # Language, Phoneme, Pattern
│   │   ├── Card.swift              # Card, CardType, ReviewResult
│   │   └── SRSState.swift          # Spaced repetition state
│   ├── Data/
│   │   ├── PersistenceController.swift
│   │   ├── CardEntity.swift
│   │   ├── SeedData.swift          # 71 pre-loaded Spanish cards
│   │   └── SRSScheduler.swift      # SM-2 algorithm
│   ├── Features/
│   │   ├── Flashcards/
│   │   ├── SpeechDrills/
│   │   ├── LanguageArchitecture/
│   │   └── MenuBar/
│   └── Utilities/
│       ├── AudioPlayer.swift
│       ├── GlobalShortcutManager.swift
│       └── NotificationManager.swift
├── PolyglotMacTests/
└── PolyglotMacUITests/

Getting Started

Prerequisites

  • macOS 26.4 or later
  • Xcode 16.0 or later

Build & Run

# Clone the repository
git clone https://github.com/codingstark-dev/PolyglotMac.git

# Open in Xcode
open PolyglotMac.xcodeproj

# Build and run (Cmd+R)

Installation

The app runs as a menu bar application. After launching, look for the PolyglotMac icon in your menu bar.

Usage

  1. Start a Review Session - Click the menu bar icon and select "Start Review"
  2. Add New Cards - Press Cmd+Shift+L from any application to add a card from your clipboard
  3. Track Progress - View your daily streak and review statistics in the Settings panel
  4. Configure Reminders - Set up notification reminders for review sessions

Data Model

The app uses Core Data with programmatic model definition. Pre-loaded seed data includes 71 Spanish cards covering:

  • Architecture comparison cards (Hindi/Marathi/English → Spanish)
  • Phoneme inventory cards
  • Common phrase cards
  • Pattern cards

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages