Skip to content

mehmoh-dev/CodeAlpha_language_learning_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinguaLearn - Interactive Language Learning App

Built with Flutter License: MIT Dart

LinguaLearn is an interactive mobile application designed to help users master new languages through daily lessons, flashcards, and quizzes. Built with Flutter using Clean Architecture and BLoC pattern.


Features

Core Learning Features

  • Multi-Language Support - Learn Spanish, French, German, or Japanese
  • Daily Lessons - Structured lessons with vocabulary, phrases, and sentences
  • Flashcards - Interactive swipeable cards with translations and pronunciations
  • Quizzes - Multiple choice assessments to test your knowledge
  • Categories - Organized learning content (Vocabulary, Grammar, Phrases, Numbers, etc.)
  • Progress Tracking - Track completed lessons and quiz scores

User Experience

  • Clean Intuitive UI - Material Design 3 with modern aesthetics
  • Offline Learning - All data stored locally in SQLite
  • Quick Actions - Fast access to flashcards and quizzes from home screen
  • Daily Lesson - New lesson available each day on the home screen

Screenshots

Home Screen Flashcards Quiz


Architecture

lib/
├── core/
│   ├── constants/           # App constants
│   └── theme/              # Theme configuration
├── data/
│   ├── database/           # SQLite database helper
│   ├── models/            # Data models
│   └── repositories/     # Repository implementations
├── domain/
│   └── entities/          # Business entities
└── presentation/
    ├── bloc/              # BLoC state management
    ├── screens/           # UI screens
    └── widgets/           # Reusable widgets

Technology Stack

Category Technology
Framework Flutter 3.10+
Language Dart 3.10+
State Management flutter_bloc
Local Storage sqflite
Architecture Clean Architecture

Getting Started

Prerequisites

  • Flutter SDK 3.10 or higher
  • Android SDK / iOS SDK / Xcode

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/language_learning_app.git
    cd language_learning_app
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

Building

Debug APK:

flutter build apk --debug

Release APK:

flutter build apk --release

iOS:

flutter build ios

Project Structure

Screens

  1. Home Screen (home_screen.dart) - Dashboard with daily lesson, quick actions, and progress
  2. Lessons Screen (lessons_screen.dart) - Browse all available lessons by category
  3. Lesson Detail Screen (lesson_detail_screen.dart) - View words in a lesson
  4. Flashcards Screen (flashcards_screen.dart) - Swipeable flashcards practice
  5. Quiz Screen (quiz_screen.dart) - Take quizzes to test knowledge
  6. Categories Screen (categories_screen.dart) - Browse words by category
  7. Main Navigation (main_navigation.dart) - Bottom navigation and app shell

State Management (BLoC)

  • LanguageBloc - Language selection
  • LessonBloc - Lessons loading and completion
  • FlashcardBloc - Flashcard navigation and flip
  • QuizBloc - Quiz questions and scoring

Sample Data

The app comes pre-loaded with sample content:

  • Languages: Spanish, French, German, Japanese
  • Spanish Vocabulary: 20+ words including greetings, numbers, common phrases
  • Lessons: Basic Greetings, Numbers 1-5, Essential Words
  • Quiz Questions: Basic Greetings Quiz, Numbers Quiz

Contributing

Contributions are welcome! Please read our contributing guidelines first.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

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


Acknowledgments


Contact


Made with ❤️ for language learners

About

LinguaLearn is a Flutter-based mobile application that helps users learn new languages through interactive lessons, swipeable flashcards, and quizzes. Features include progress tracking, multiple language support (Spanish, French, German, Japanese), and offline learning with local SQLite storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors