Master any language, naturally. A premium language learning mobile application built with Expo and React Native, featuring adaptive spaced repetition algorithms and comprehensive progress tracking.
- 8 Supported Languages: Spanish, French, German, Japanese, Korean, Italian, Portuguese, Chinese
- Progressive Curriculum: 10 levels per language with 200 curated words each
- Cultural Relevance: Contextually appropriate vocabulary selection
- Spaced Repetition (SRS): Brain-optimized timing for maximum vocabulary retention
- Difficulty Rating: User-rated word difficulty personalizes learning paths
- Smart Review Algorithm: Optimal word presentation based on performance
- Interactive Flashcards: Visual learning with pronunciation guides
- Speech Recognition: Real-time feedback on spoken responses
- Audio Pronunciation: Native speaker audio for accurate pronunciation
- Visual Mnemonics: Contextual images and memory aids
- Gamified Experience: XP levels and achievement system
- Streak Tracking: Daily activity maintenance with visual heatmaps
- Mastery Metrics: Real-time familiarity tracking and retention analytics
- Weekly Reports: Comprehensive learning insights and patterns
- Premium UI Design: Glassmorphism effects with smooth animations
- Offline Capability: Core features work without internet connection
- Haptic Feedback: Tactile responses for interactive elements
- Dark/Light Themes: Adaptive theming based on device preferences
- Expo SDK 54 / React Native 0.81
- TypeScript with strict type checking
- Expo Router for file-based navigation
- Zustand for global state management
- Supabase (PostgreSQL) with Row Level Security
- Supabase Auth for secure user authentication
- Real-time Sync for cross-device progress synchronization
- Expo Speech Recognition API for pronunciation feedback
- Expo Speech API for text-to-speech pronunciation guides
- Custom SRS Algorithm implementation
- React Native Reanimated for smooth animations
- ESLint & Prettier for code quality
- pnpm for efficient package management
- Expo Application Services (EAS) for builds and deployment
- Node.js 18+
- pnpm
- Expo CLI
- iOS Simulator / Android Emulator (optional)
-
Clone the repository:
git clone https://github.com/umairhex/fluentry.git cd fluentry -
Install dependencies:
pnpm install
-
Environment Setup: Create a
.envfile with your Supabase credentials:EXPO_PUBLIC_SUPABASE_URL=your-supabase-project-url EXPO_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
-
Start the development server:
pnpm start
- Create a new Supabase project at database.new
- Run the SQL migrations in
database/001_initial.sql - Enable Row Level Security policies for data protection
fluentry/
├── app/ # Main application screens and routing
│ ├── _layout.tsx # Root layout component
│ ├── index.tsx # Home/dashboard screen
│ ├── (auth)/ # Authentication screens
│ ├── (onboarding)/ # Onboarding flow
│ └── (tabs)/ # Main tab navigation
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components
│ ├── auth/ # Authentication components
│ ├── dashboard/ # Dashboard widgets
│ ├── learn/ # Learning interface components
│ ├── quiz/ # Quiz and assessment components
│ ├── settings/ # Settings and preferences
│ └── stats/ # Statistics and analytics
├── constants/ # Design system and configuration
│ ├── Colors.ts # Color palette
│ └── Layout.ts # Layout constants
├── data/ # Static data and mocks
│ ├── quiz.mocks.ts # Quiz data for development
│ └── languages/ # Language-specific data
├── database/ # Database schema and migrations
│ └── 001_initial.sql # Initial database setup
├── hooks/ # Custom React hooks
│ ├── useActivityQueries.ts
│ ├── useDashboardData.ts
│ ├── useStatsData.ts
│ └── useProgressSync.ts
├── lib/ # Utility libraries and services
│ ├── supabase.ts # Supabase client configuration
│ ├── supabaseApi.ts # API service functions
│ ├── queryClient.ts # React Query configuration
│ └── speechRecognition.ts # Speech recognition utilities
├── store/ # Global state management
│ ├── authStore.ts # Authentication state
│ ├── preferencesStore.ts # User preferences
│ └── progressStore.ts # Learning progress
└── types/ # TypeScript type definitions
└── database.types.ts # Generated database types
# Create development build
eas build --platform ios --profile development
eas build --platform android --profile development# Build for app stores
eas build --platform ios --profile production
eas build --platform android --profile production
# Submit to app stores
eas submit --platform ios
eas submit --platform android# Publish updates
eas update --branch production- Email/password registration and login
- Automatic profile creation with default preferences
- Secure session management with Supabase Auth
- Language and level selection
- SRS algorithm determines review queue
- Interactive flashcard sessions with progress tracking
- Real-time synchronization across devices
- Local-first approach with offline capability
- Background sync when online
- Conflict resolution for concurrent modifications
- Real-time updates via Supabase subscriptions
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary and part of a personal development portfolio.
Umair Khan
- LinkedIn: linkedin.com/in/umairhex
- Portfolio: umairhex.dev
- GitHub: github.com/umairhex
Built with ❤️ for natural language acquisition