Skip to content

Repository files navigation

My Lexicon

A modern and beautiful offline-first dictionary, learning, and vocabulary organizer app!

Get it on Github

My Lexicon is an open-source Flutter app for saving and organizing things you want to learn. It is designed as a personal knowledge companion where you can store words, quotes, phrases, idioms, notes, tags, favorites, and collections in one place.

The app follows a feature-first architecture and keeps data locally on the device, making it a lightweight way to build your own learning library without relying on a remote backend.

Table of Contents

Features

  • Personal Learning Library: Save learning items categorized as words, quotes, phrases, or idioms.
  • Rich Entry Attributes: Add definitions, multiple example sentences, personal notes, tags, and custom collections.
  • Smart Duplicate Prevention: Real-time inline duplicate term detection warning during entry creation.
  • Contextual Actions: Fan-out floating action button on Dashboard and contextual type-specific add buttons in category lists.
  • Import & Export Data: Changing device? or keeping backup? You are all set with one tap export and import in settings
  • Favorites & Navigation: Mark items as favorites for quick access and configure your default app-launch tab.
  • Powerful Search: Search and filter entries dynamically by text, type, tags, collections, and favorites.
  • Offline-First & Local: Secure, lightweight local storage on your device with JSON and CSV export/import options.
  • Modern Themes: Clean UI with support for light, dark, and system default themes.

Screenshots

Dashboard Screen Word Category Screen Entry Details Screen Add/Edit Entry Form Screen Settings Screen

Tech Stack

  • Framework: Flutter
  • State Management: Riverpod
  • Routing & Navigation: GoRouter
  • Local Storage: Hive
  • Settings Persistence: Shared Preferences

Project Structure

lib/
├── core/
│   ├── constants/
│   ├── services/
│   ├── theme/
│   └── utils/
├── features/
│   ├── collections/
│   ├── dictionary/
│   ├── home/
│   ├── idioms/
│   ├── phrases/
│   ├── quotes/
│   ├── search/
│   └── settings/
├── models/
├── routes/
├── widgets/
└── main.dart

Getting Started & Building

Prerequisites

Ensure you have the following tools installed:

  • Flutter SDK (Stable channel)
  • For Android builds: Android Studio, Android SDK, and JDK
  • For iOS/macOS builds: Xcode and CocoaPods

Steps to Setup and Build

  1. Clone the repository:

    git clone https://github.com/aryany9/MyLexicon.git
    cd MyLexicon
  2. Get dependencies:

    flutter pub get
  3. Generate Hive database adapters: This project uses code generation for local database models. Run the build runner to generate the necessary files:

    flutter pub run build_runner build --delete-conflicting-outputs
  4. Run the application:

    flutter run
  5. Build production binaries:

    • Android APK:
      flutter build apk --release
    • Android App Bundle:
      flutter build appbundle --release
    • iOS IPA:
      flutter build ipa --release

Contributing

Contributions are welcome. If you want to improve the app, please open an issue or submit a pull request.

Please keep changes aligned with the existing feature-first structure and local-first design.

License

This project is licensed under the Apache License, Version 2.0. See LICENSE for details.

About

An open-source Flutter app for saving and organizing things you want to learn. It is designed as a personal knowledge companion where you can store words, quotes, phrases, idioms, notes, tags, favorites, and collections in one place.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages