/Manji

Manji is an mobile application built to help people learning Japanese learn about Kanji.

Primary LanguageDartMIT LicenseMIT

Manji 50

iOS App Store App Store Play Store Visits Badge GitHub style: effective dart

Screen Shot 2020-03-03 at 1 22 57 PM Screen Shot 2020-08-20 at 6 16 26 PM Screen Shot 2020-08-20 at 6 16 43 PM Screen Shot 2020-03-03 at 1 25 18 PM Screen Shot 2020-08-20 at 6 21 33 PM Screen Shot 2020-08-20 at 6 21 48 PM Screen Shot 2020-08-20 at 6 16 50 PM Screen Shot 2020-04-19 at 5 59 00 PM Screen Shot 2020-04-19 at 6 04 58 PM Screen Shot 2020-04-20 at 8 01 24 PM

On the surface, Manji is just a Japanese dictionary, but it can actually do more than that:

  • Handwritten kanji recognition
  • Image kanji extraction
  • Kanji card
  • Kanji quiz generated dynamically based on selected groups of kanji

Therotically, Manji is cross-platform since it is powered by Flutter, but since I want to maximize the elegance of its user experience and also because I am an Apple fanboy to some degree, I chose to focus on the iOS side. I have already forgotten when the last time was that I debugged and tested on Android but feel free if you want to make it work and optimize for Android.

Getting Started

  1. Because the dictionary file exceeds the size limit of Github, git-lfs is used for storing the dictionary file. So make sure you have installed git-lfs.
  2. Clone this project and run git-lfs fetch --all in the project root folder.
  3. Create a service account.
  4. Fill up the credential as shown below and save it as google_api_credentials.dart and move to Manji/lib/resource/.
import 'package:googleapis_auth/auth_io.dart';

final credentials = ServiceAccountCredentials.fromJson(r'''
{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----\n",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}
''');
  1. Setup Firebase for your project.
  2. (iOS) Download your GoogleService-Info.plist and move it to Manji/ios/Runner/.
  3. (Android) Download your google-services.json and move it to Manji/android/app/.
  4. Run the project using flutter run.