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