https://firecrackervocabulary.com
https://play.google.com/store/apps/details?id=com.emtiajium.firecracker.collaborative.vocab.practice
➜ Install Node 18 LTS using nvm
➜ https://github.com/emtiajium/vocabulary-flashcard-backend
➜ Add Firebase to the Android project
OAuth 2.0 Client ID: Web client (auto created by Google Service)
➜ Enable Google Sign-In in the Firebase console and add SHA1 fingerprint in the Firebase console
keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -v
➜ git clone git@github.com:emtiajium/vocabulary-flashcard-frontend.git
➜ cd vocabulary-flashcard-frontend
➜ npm install
➜ npm run create:config
➜ npm run create:capacitor.config
➜ npm run serve
Import certificate authority (
cert/CA/CA.pem
) by hitting chrome://settings/certificates to resolveYour connection to this site is not secure
➜ Read these and Enable Debugging over USB
, Plug in your device via USB
, Connect to the development server
➜ Add google-services.json
at ./android-replacer/app
➜ npm run android-pre-bundle:local
➜ Open the project (/android
) in Android Studio
➜ Sync project with gradle files
➜ Run the app
➜ Square + Round (Launcher icon): Visit here
➜ Foreground (Launcher icon): Visit here
➜ Splash screen: Visit here
Draw the stretchable patches manually using the Draw 9-patch tool. See details from here
➜ Play store screenshots/banner/Website thumbnail: Visit here
➜ Favicon: Visit here
➜ Install Firebase CLI
➜ Set configs (config.json
, capacitor.config.json
) for the production
➜ npm run deploy:firebase
➜ Watch it to have the idea of publishing the app
➜ Set configs for the production
➜ Check and double-check the configurations
➜ Ensure the existence of google-services.json
at ./android-replacer/app
➜ Set application version information (versionCode
, versionName
) at ./android-replacer/app/build.gradle
➜ npm run android-pre-bundle
➜ Generate the signed app bundle
Keep the generated Keystore and the passwords in a secret place. Don't lose it, never, ever!
➜ Add fingerprint in the Firebase console
keytool -list -alias <an-alias> -keystore <keystore-path/keystore-name>.keystore -v
➜ Navigate to the OAuth consent screen and publish the app
➜ Do an internal testing
App Bundles: Testing bundles with bundle tool and the Play Console
➜ Publish the app on Google Play Store!
4.0.0
: Ionic@8 + Node@18 + Capacitor@63.0.1
: A bit of UI changes related to the guessing game3.0.0
: Guessing the word game + Redesigned landing page2.1.0
: Enabled eslint rulevuejs-accessibility/click-events-have-key-events
2.0.0
: Upgraded Ionic@61.37.0
: Updated app to target Android 13 (API level 33)0.36.1
: Fixed UI issues related to the last release0.36.0
: Implemented Google Play’s app account deletion requirements0.35.0
: Fixed the bug of always showing spinner just beneath the header in the cohort page0.34.0
: Increased the spinner dimension + Fixed the bug of vanishing search keyword after setting the vocab preference0.33.0
: Prevented showing error icon when the count API failed to fetch box items' number0.32.1
: Fixed padding issue due to the last version0.32.0
: Notified users about other flashcards that are supposed to have appeared in future0.31.0
: New filtering preference to filter flashcard in the home screen0.30.0
: Removed forward, backward icon from last, first box list respectively + Fixed vocab settings, minified leitner item UI issues + Logout notification0.29.0
: Improved the vocab upsert validation related error messages0.28.0
: Changed vocab upsert's tips UI + increased profile pic's width0.27.1
: Added info on modifying a cohort using email + Changed dark mode colors0.27.0
: Added info on creating a cohort using email0.26.5
: UI: iOS style toggle0.26.4
: UI: Fixed the margin issue0.26.3
: UI: Padding/margin variables0.26.2
: More UI changes, e.g., fixed the padding/margin issues in the vocab upsert page0.26.1
: More UI changes, e.g., local caching of few material icons0.26.0
: More UI changes: Improved add vocab UI + Displayed critical error thrown by the server0.25.0
: Linker words page + Changed the UI to show the total no. of vocab0.24.6
: UI changes: Reduced the card width for bigger screen0.24.5
: UI changes: Changed the card color0.24.4
: Continuation of0.24.3
0.24.3
: More UI changes: improved add vocab UI0.24.2
: Fixed the bug of0.24.1
in which not all menus were showing when the device's height is too small0.24.1
: More UI changes: improved menu styling0.24.0
: A bit of UI changes e.g., changed the background color for the light mode0.23.0
: Material design UI for the iOS too0.22.0
: Improved the messages that appear in the leitner item components0.21.0
: Upgraded Capacitor from 3 to 4 to resolveStarting in November 2022, app updates must target API level 31 or above and adjust for behavioral changes in Android 12
0.20.3
: Backward compatibility for fetching token0.20.2
: Migrated to the new Google Identity Services library + Sent platform info as the header0.20.1
: Reverted the last changes0.20.0
: Made API request with non-expired token0.19.0
: Fixed the toggling theme issue for the Android (native) app0.18.0
: Notified users if a vocabulary already exists0.17.0
: DisplayedGet it on Google Play
button for the web users0.16.6
: Added buttons'area-label
to improve the accessibility0.16.5
: Changed the color of<ion-card-title />
and<ion-card-subtitle />
0.16.4
: Fixed more color contrast issue0.16.3
: Applied changes as much as possible, which are suggested by the Lighthouse, esp., the color contrast issue0.16.2
: Fixed the bug, which is related to filtering vocab without definition0.16.1
: Changed the icon of the "My Flashcards" menu0.16.0
: Handled deprecated methodMediaQueryList.addListener()
0.15.0
: Renamed the app0.14.0
: Fixed few minor bugs0.13.0
: Fixed the bug related to the version0.11.1
0.12.0
: CI pipeline with GitHub actions0.11.2
: Fixed typos0.11.1
: Local persistence of the searching/filtering settings0.11.0
: Advanced searching/filtering0.10.4
: More UI/UX improvement (notes' container having images)0.10.3
: More UI/UX improvement + Upgraded FontAwesome to version 6!0.10.2
: More UI/UX improvement0.10.1
: Set minSdkVersion from23
to21
asandroid:usesCleartextTraffic="true"
has been removed and introduced HTTPS for the localhost too0.10.0
: HTTPS for the localhost0.9.2
: Executednpx browserslist@latest --update-db
0.9.1
: Added maskable icons at the manifest (Basically added"purpose": "any maskable"
)0.9.0
: Smart user can now embed HTML at the notes/generic notes V1 (Without supporting Rich Text Editor)0.8.4
: UI/UX improvement: V130.8.3
: UI/UX improvement: V120.8.2
: UI/UX improvement: V11 (Special changes: Dedicated color for each Leitner box)0.8.1
: UI/UX improvement: V10 (Special changes: Removed box-shadow from the header, and the card)0.8.0
: Added tips icon within the add vocab page0.7.6
: Detected theme changes usingMutationObserver
0.7.5
: UI/UX improvement: V90.7.4
: UI/UX improvement: V8 + Changed status-bar's color + Favicon + PWA + Fixed minor bugs0.7.3
: UI/UX improvement: V7 + Introduced back icon for the add/edit vocab/definition page0.7.2
: UI/UX improvement: V60.7.1
: UI/UX improvement V5 + Used Ionic framework provideddebounce
0.7.0
: Thumbnail using<meta />
(Open Graph protocol)0.6.4
: UI/UX improvement: V40.6.3
: UI/UX improvement: V30.6.2
: UI/UX improvement: V20.6.1
: UI/UX improvement0.6.0
: Introduced back icon (backward to the previous route)0.5.1
: Fixed left-right margin issue of add/edit vocab/definition0.5.0
: Improved UI for the web app + Get it on Google Play0.4.1
: Dark mode for the guest also0.4.0
: Privacy policy + Landing page + HTTPS0.3.7
: Renamed leitner system to flashcards (header, menu option, message)0.3.6
: Changed the helping message of the generic notes0.3.5
: Fixed the bug of displaying multiple identical items while searching by applying debouncing0.3.4
: Fixed bugs + Changed the toast's color to paris green0.3.3
: Version0.3.2
prevented reloading of vocab list after adding a new one. Fixed!0.3.2
: Fixed vocab CU related bugs + improved vocab ordering preference icon's UI0.3.1
: Prevented refreshing leitner items every time an item has been moved0.3.0
: User preference for the vocab ordering0.2.6
: Disabled all types of save button before receiving the response from the server + Other minor changes0.2.5
: Fixed leitner box existence bug within the minified card after update + Minor UI change for the box item0.2.4
: Leitner Box insertion time0.2.3
: No reloading after update + Box insertion from the vocab list page0.2.2
: Fixed bug (move backward button was being disabled all time) + Fixed button alignment0.2.1
: Fixed bug related to Leitner system0.2.0
: Leitner systems0.1.14
: Functionality for toggling dark mode + A bit of UI changes0.1.13
: Newer version available alert + Used Ionic lifecycle hooks0.1.12
: Linker words view in dictionaries + Refreshing functionality in vocabulary list page0.1.11
: Edit button at the vocabulary details page + Fixed copy-paste issue0.1.10
: Identical spinner for the whole app0.1.9
: Generic placeholder for the input fields + Changed icon for the network error0.1.8
: Dark mode0.1.7
: (Android) Hardware back-button bug fixation0.1.6
: Confirmation before navigating back + Auto capitalization for the input fields0.1.5
: Instruction to publish + Last minute fixation for the release0.1.4
: Vocabulary searching functionality0.1.3
: Network error notification0.1.2
: Authentication using JWT + Functionality to populate a new app user with few vocabularies0.1.1
: Cohort + Menubar + Sign out0.1.0
: User creation with Google authentication + Basic vocabulary functionalities
104
:4.0.0
103
:3.0.1
102
:3.0.0
101
:2.1.0
100
:2.0.0
99
:1.37.0
98
:0.36.1
97
:0.36.0
96
:0.35.0
95
:0.34.0
94
:0.33.0
93
:0.32.1
92
:0.32.0
91
:0.31.0
90
:0.30.0
89
:0.29.0
88
:0.28.0
87
:0.27.1
86
:0.27.0
85
:0.26.5
84
:0.26.4
83
:0.26.3
82
:0.26.2
81
:0.26.1
80
:0.26.0
79
:0.25.0
78
:0.24.6
77
:0.24.5
76
:0.24.4
75
:0.24.3
74
:0.24.2
73
:0.24.1
72
:0.24.0
71
:0.22.0
70
:0.21.0
69
:0.20.3
68
:0.20.2
67
: from38a1d7fb95ce63ecfafba3a60d7423b6b865b895
toa6e0a82ee5bbbb0dba71f29e468d98c1f810c4cb
66
:0.20.1
65
:0.20.0
64
:0.19.0
63
:0.18.0
62
:0.16.6
61
:0.16.5
60
:0.16.4
59
:0.16.3
58
:0.16.2
57
:0.16.1
56
:0.16.0
55
:0.15.0
54
:0.14.0
53
:0.13.0
52
:0.11.2
51
:0.11.1
50
:0.11.0
49
:0.10.4
48
:0.10.3
47
:0.10.2
46
:0.10.1
45
:0.9.0
44
:0.8.4
43
:0.8.3
42
:0.8.2
(Mistakenly missed41
)40
:0.8.1
39
:0.7.6
38
:0.7.5
37
:0.7.4
36
:0.7.3
35
:0.7.2
34
:0.7.1
33
:0.6.4
32
:0.6.3
31
:0.6.2
30
:0.6.1
29
:0.6.0
28
:0.5.1
27
:0.5.0
26
:0.4.1
25
:0.4.0
24
:0.3.7
23
:0.3.6
22
:0.3.5
21
:0.3.4
20
:0.3.3
19
:0.3.2
18
:0.3.1
17
:0.3.0
16
:0.2.6
15
:0.2.5
14
:0.2.4
13
:0.2.3
12
:0.2.2
11
:0.2.1
10
:0.2.0
9
:0.1.14
8
:0.1.13
7
:0.1.12
6
:0.1.11
(Same as the previous one because I forgot to change the local server)5
:0.1.11
4
:0.1.10
3
:0.1.5
2
: Test release II1
: Test release I