Giter Site home page Giter Site logo

helkaloic / vocaday_app Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 6.0 14.08 MB

An English vocabulary learning app with Flutter, Firebase, BLoC and Clean Architecture.

Home Page: https://bit.ly/vocaday

Kotlin 0.12% Swift 0.12% Objective-C 0.01% Dart 99.65% Java 0.10%
flutter-app english-dictionary english-learning vocabulary-learning

vocaday_app's Introduction

Vocaday: English vocabulary app

📚 Welcome to Vocaday, your go-to English vocabulary learning app! 🌟

Vocaday is designed to make your English vocabulary learning experience effective and enjoyable. Whether you're a beginner or looking to enhance your language skills, Vocaday has got you covered.

To quickly view the user interface: link

banner

GitHub stars GitHub forks GitHub watchers

⬇️ Download

Google Play

📂 Folder Structure

Here's a simple folder structure of this project.

Note: it may has more folders and files in there

Click to expand
vocaday_app/
|-- assets/    # includes all asset or resource files
|-- lib/
|   |-- app/    # main 'things' in the app, will be changed dynamically
|   |-- core/    # core interface or other base things
|   |-- config/    # configs for the whole app
|   |-- features/    # the main features in the app, it should be independent on each other
|   |   |-- feature-1/
|   |   |   |-- data/
|   |   |   |   |-- data_sources/    # local or remote data call
|   |   |   |   |-- models/          # model for mapping json data
|   |   |   |   |-- repositories/    # implement interface of repositories in 'domain'
|   |   |   |-- domain/
|   |   |   |   |-- repositories/    # main function to handle result from 'data_source' and catch Exception then throw Failure
|   |   |   |   |-- entities/        # entity that be used in the app
|   |   |   |   |-- usecases/        # the usecase for each requirements
|   |   |   |-- presentation/
|   |   |   |   |-- blocs/           # state management
|   |   |   |   |-- pages/           # includes concrete screen of this feature
|   |   |   |   |-- widgets/         # includes local widget of this feature
|   |   |-- feature-2/
|   |   |-- ...
|   |-- app.dart    # whole app endpoint, for setup
|   |   ...
|   |-- main.dart
|-- test/    # to test (currently unit test)
|-- pubspec.yaml

🔗 Resource

Here's some sources for assets folder.

⚙️ Setup

Get started with Vocaday by following these simple steps:

  1. Install FlutterFire CLI & Firebase:

  2. Clean and Get Dependencies:

    flutter clean
    flutter pub get
  3. Run the App:

    flutter run
  4. (Optional) to build .apk file:

    flutter build apk

🪲 Debug/Release

Generate debug.keystore:

keytool -genkey -v -keystore "android\app\debug.keystore" -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -alias androiddebugkey -dname "CN=Android Debug,O=Android,C=US"

Get SHA-1 or SHA-256 fingerprint:

keytool -list -v -keystore "android\app\debug.keystore" -alias androiddebugkey -storepass android -keypass android

If Google Sign In did not work, try to run these commands:

cd android
./gradlew signingReport

Then use the SHA-1/SHA-256 with tag 'Config: debug' to update fingerprints on your Firebase project.

💻 Code Generation

  • Easy_localization:

    If you make any changes from any translation files. To update the new changes, run those commands below in order:

  1. Generate Loader class:

    dart run easy_localization:generate -S "assets/translations" -O "lib/app/translations"
  2. Generate Keys class:

    dart run easy_localization:generate -S "assets/translations" -O "lib/app/translations" -o "locale_keys.g.dart" -f keys -u true

    For detailed information, refer to the easy_localization documentation.

    Arguments Short Default Description
    --help -h Help info
    --source-dir -S resources/langs Folder containing localization files
    --source-file -s First file File to use for localization
    --output-dir -O lib/generated Output folder stores for the generated file
    --output-file -o codegen_loader.g.dart Output file name
    --format -f json Support json or keys formats
    --[no-]skip-unnecessary-keys -u false Ignores keys defining nested object except for plural(), gender() keywords
  • Flutter Gen:

    If you add any files to the assets folder, then you would need to add its path to the generated class (to avoid hard-code), run those commands below in order:

    Activate flutter_gen (only once):

    dart pub global activate flutter_gen
  1. Run build_runner:

    dart run build_runner build --delete-conflicting-outputs
  2. Generate Assets:

    fluttergen -c pubspec.yaml

⛄️ FAQs

  1. Q: How to fix "Gradle sync failed: Could not create task..." error when opening project with Android Studio?

    A: Delete .gradle & .build folders inside android folder, then run those command below in order:

    flutter clean
    flutter pub get

    Right-click on the android folder and select Open in Android Studio.

    flutter clean
    flutter pub cache repair

    After that, select File -> Invalidate Caches... -> ✓ Check all -> Invalidate and Restart.

👀 User Interface

Vocaday currently offers a clean and intuitive user interface with these main pages:

  1. Main Page (Home, Activity, Search):

home

  1. Learning Page (Quiz, Puzzle, Flashcard):

learning

  1. Word Page (Detail, Wordbag, Setting):

word

Visitors

Visitor Count

vocaday_app's People

Contributors

hizurk1 avatar

Stargazers

Mesut Demirci avatar Kevin Sun avatar chun avatar Nguyen Linh avatar Trần Vũ Hiếu avatar Le Viet Hung (Jack Ryan) avatar Phạm Minh Triết avatar Gleb Buyankin avatar Munkhsoyol Ganbat avatar Ravindu Dhananjaya avatar Le Dinh Hieu avatar Ihor Kozar avatar  avatar

Watchers

 avatar

vocaday_app's Issues

Phát triển dự án cá nhân

Chào bạn, mình có dạo qua project này và thấy project này khá thú vị. Mình đang phát triển 1 dự án nhỏ về học tiếng anh để phục vụ cho đồ án thực tập. Dự án này gồm 3 mảng: web (admin), backend, mobile.

Mình dự tính sẽ phát triển thêm 2 tính năng gồm

  • quiz (gần giống với tính năng đã có trong app của bạn)
  • chat với AI

Thời lượng dự án khoảng 2 tuần, tính năng chủ yếu là call API tới server có sẵn.

Về phần backend và web mình lo được, tuy nhiên mobile thì mình không có thời gian làm nên muốn tìm một người làm cùng mình. API mình sẽ lo, mình chỉ cần implement phần UI & logic cho mobile app là được. Bạn chỉ cần phát triển thêm tính năng dựa trên prj này.

Không biết bạn có hứng thú không, nếu muốn thì bạn có thể liên hệ với mình qua linkedIn để bàn thêm về chi tiết cũng như chi phí nhé. mình đã gửi connect tới bạn, hoặc bạn có thể liên lạc thông qua các kênh liên lạc mình đã để trên github cá nhân.

Mong sớm được hồi đáp,
Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.