Skip to content

DangHuuLong/Language-Learning-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

162 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± Language App

Expo React Native TypeScript React Navigation

A full-featured mobile language learning platform built with Expo, React Native, and TypeScript β€” powered by AI tools for smarter, faster learning.


🌟 Overview

Language App is a cross-platform mobile application designed to help learners build language skills through structured lessons, interactive practice, and AI-assisted tools. The app covers four core skill areas β€” Reading, Listening, Speaking, and Writing β€” alongside a smart Dictionary, spaced-repetition Flashcards, and a community-driven content ecosystem.

Whether you're a beginner or an advanced learner, Language App provides a personalized, engaging environment to explore and master new languages.


✨ Key Features

  • 🏠 Home Dashboard β€” Personalized greeting, search bar, featured offers, language categories, and popular courses
  • πŸ“– Study Hub β€” Explore community lessons, manage your own content, take online exams, and practice with flashcards or mini quizzes
  • πŸ” AI-Powered Dictionary β€” Smart Insight for deep word context and Visual Vocabulary for image-based word extraction
  • 🧠 Flashcard System β€” Deck management, bulk creation, AI-generated cards, and spaced repetition review
  • ✍️ Writing Practice β€” AI pre-writing toolkit: brainstorm, outline, thesis generator, phrase bank, vocabulary pack, and more
  • 🎧 Listening Practice β€” Audio playback, transcript access, attempt tracking, and progress review
  • πŸ—£οΈ Speaking Practice β€” Prompt-based speaking attempts with result history and review flow
  • πŸ“ Reading Practice β€” Annotated passages, notes, highlights, bookmarks, saved words, and assessment quizzes
  • 🌐 Multi-Language Dictionary β€” Curated dictionary browsing across a supported set of languages
  • πŸ” Authentication β€” Email/password login and registration with JWT stored securely via Expo Secure Store

πŸ“Έ Screenshots


Splash Screen

Login

Home

Study

Dictionary

Profile

πŸ“ Project Structure

language-learning-app/
β”œβ”€β”€ app/                    # Screens and route structure (Expo Router)
β”‚   β”œβ”€β”€ (onboarding)/
β”‚   β”œβ”€β”€ (login)/
β”‚   β”œβ”€β”€ (signup)/
β”‚   β”œβ”€β”€ (account_setup)/
β”‚   └── (tabs)/
β”œβ”€β”€ components/             # Reusable UI components
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ config/             # App configuration
β”‚   β”œβ”€β”€ constants/          # Supported languages and other constants
β”‚   β”œβ”€β”€ services/           # Modular API service layer
β”‚   └── storage/            # Token storage and user helpers

πŸ—ΊοΈ App Navigation / User Flow

Splash Screen
    └── Onboarding
         β”œβ”€β”€ Login  ──────────────────────────┐
         └── Signup β†’ Account Setup           β”‚
                                              β–Ό
                                    (tabs) Main App
                                    β”œβ”€β”€ 🏠 Home
                                    β”œβ”€β”€ πŸ“– Study
                                    β”œβ”€β”€ πŸ” Dictionary
                                    └── πŸ‘€ Profile

After successful login, the app redirects to the main tab interface at /(tabs)/home.


🧩 Core Modules

🏠 Home

The Home tab serves as a personal dashboard featuring a greeting header, content search bar, promotional banners, browsable language categories, and popular course listings.

πŸ“– Study

The Study tab is the central learning hub, organized into:

  • Content β€” Explore public/community lessons or manage your own drafts and published items
  • Core Tools β€” Online Exam (full timed tests), Flashcards (spaced repetition), Mini Quiz (5–10 min warm-up)
  • Skills Practice β€” Direct access to Reading, Listening, Speaking, and Writing practice modules

πŸ” Dictionary

The Dictionary tab offers:

  • Smart Insight β€” AI-powered deep explanations with real-world context and usage examples
  • Visual Vocabulary β€” Take or upload a photo and instantly extract related vocabulary
  • Language Dictionaries β€” Browse a curated set of supported languages (Arabic, Chinese, Danish, Dutch, and more)

🧠 Flashcards

  • Create and manage flashcard decks
  • Bulk-create or AI-generate cards from a text or topic
  • Explore public decks from the community
  • Review with spaced repetition and track global progress stats

πŸ“ Reading Practice

  • Read annotated passages
  • Add inline notes, highlights, and bookmarks
  • Save vocabulary words
  • Complete assessments and review attempt history

🎧 Listening Practice

  • Full listening content detail view
  • Integrated audio playback and transcript access
  • Attempt flow with results and review
  • Progress tracking and related content suggestions

πŸ—£οΈ Speaking Practice

  • Prompt-based speaking attempts
  • Resume unfinished attempts
  • View latest results and full attempt history

✍️ Writing Practice

Full AI-assisted pre-writing toolkit including:

  • Brainstorm, Outline, Vocabulary Pack, Checklist
  • Analyze Prompt, Translate Prompt, Simplify Prompt
  • Thesis Generator, Topic Sentences, Examples, Phrase Bank

πŸ” Content Management

Users can publish, unpublish, archive, duplicate, report, and upload audio for content items.

πŸ‘€ Profile

  • View and edit user information
  • Manage account settings: personal info, language options, theme, account deletion
  • Access support center and FAQ
  • Logout

🌐 Backend Integration

The app connects to an external REST API:

Base URL: https://language-learning-app-backend-fuln.onrender.com/api

The service layer is modular and covers the following domains:

auth Β· users Β· AI Β· words Β· content categories Β· content items Β· flashcards Β· flashcard decks Β· flashcard progress Β· reading Β· listening Β· speaking Β· writing


πŸš€ Getting Started

Prerequisites

Installation

# Clone the repository
git clone https://github.com/DangHuuLong/Language-Learning-App.git
cd Language-Learning-App

# Install dependencies
npm install

Running the App

# Start Expo development server
npx expo start

# Run on Android
npx expo run:android

# Run on iOS
npx expo run:ios

# Run on Web
npx expo start --web

πŸ“œ Available Scripts

Script Description
npx expo start Start the Expo development server
npx expo run:android Build and run on Android
npx expo run:ios Build and run on iOS
npx expo start --web Run in web browser
npm run lint Run linter

πŸ“¦ Build & Deployment

This project uses EAS Build with three configured profiles:

Profile Purpose
development Local development builds
preview Internal testing and QA
production App Store / Play Store release

To trigger a build:

eas build --profile production --platform android

πŸ“² Install Preview Build (Android)

You can install the latest Android preview build directly via the link below:

➑️ Download & Install APK

Scan the QR code on the build page or tap the link on your Android device to install.


πŸ“Œ Notes / Current Scope

  • The app targets a curated set of supported languages to ensure stability and quality across AI-powered features.
  • The login screen includes UI elements for "Forgot Password" and social login buttons (Facebook, Google); full backend support for these flows has not been confirmed.
  • The backend is hosted externally; no local backend setup is required to run the mobile app in development mode.
  • All JWT tokens are stored securely using Expo Secure Store and never exposed to local storage.

Built with ❀️ by DangHuuLong using Expo & React Native

About

An interactive language learning app that helps users improve listening, speaking, reading, and writing through structured lessons, practice exercises, and progress tracking.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors