├── .gitignore ├── App.js ├── LICENSE ├── README.md ├── __tests__ └── App-test.js ├── android ├── .idea │ ├── .name │ ├── caches │ │ ├── build_file_checksums.ser │ │ └── gradle_models.ser │ ├── dictionaries │ │ └── alertis.xml │ ├── gradle.xml │ ├── libraries │ │ ├── Gradle__android_arch_core_common_1_1_1_jar.xml │ │ ├── Gradle__android_arch_core_runtime_1_1_1_aar.xml │ │ ├── Gradle__android_arch_lifecycle_common_1_1_1_jar.xml │ │ ├── Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml │ │ ├── Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml │ │ ├── Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml │ │ ├── Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml │ │ ├── Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_collections_28_0_0_jar.xml │ │ ├── Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_cursoradapter_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_customview_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_documentfile_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_drawerlayout_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_interpolator_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_loader_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_print_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_support_annotations_28_0_0_jar.xml │ │ ├── Gradle__com_android_support_support_compat_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_support_core_ui_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_support_core_utils_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_support_fragment_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml │ │ ├── Gradle__com_android_support_viewpager_28_0_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_drawee_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_fbcore_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_fresco_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_imagepipeline_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_imagepipeline_base_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0_aar.xml │ │ ├── Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml │ │ ├── Gradle__com_facebook_react_react_native_0_59_2_aar.xml │ │ ├── Gradle__com_facebook_soloader_soloader_0_6_0_aar.xml │ │ ├── Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml │ │ ├── Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml │ │ ├── Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml │ │ ├── Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_1_jar.xml │ │ ├── Gradle__com_squareup_okio_okio_1_15_0_jar.xml │ │ └── Gradle__javax_inject_javax_inject_1_jar.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── workspace.xml ├── app │ ├── BUCK │ ├── build.gradle │ ├── build_defs.bzl │ ├── proguard-rules.pro │ ├── release │ │ ├── app-release.apk │ │ ├── app-release.zip │ │ └── output.json │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── Roboto.ttf │ │ │ ├── Roboto_medium.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ ├── Zocial.ttf │ │ │ └── rubicon-icon-font.ttf │ │ └── www │ │ │ └── memorize.db │ │ ├── java │ │ └── com │ │ │ └── memorize │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-ldpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystores │ ├── BUCK │ └── debug.keystore.properties └── settings.gradle ├── app.json ├── babel.config.js ├── icon.png ├── index.js ├── ios ├── memorize-tvOS │ └── Info.plist ├── memorize-tvOSTests │ └── Info.plist ├── memorize.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── memorize-tvOS.xcscheme │ │ └── memorize.xcscheme ├── memorize │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon-1024@1x.png │ │ │ ├── icon-20@1x.png │ │ │ ├── icon-20@2x.png │ │ │ ├── icon-20@3x.png │ │ │ ├── icon-29@1x.png │ │ │ ├── icon-29@2x.png │ │ │ ├── icon-29@3x.png │ │ │ ├── icon-40@1x.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-50@1x.png │ │ │ ├── icon-50@2x.png │ │ │ ├── icon-57@1x.png │ │ │ ├── icon-57@2x.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-72@1x.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76@1x.png │ │ │ ├── icon-76@2x.png │ │ │ └── icon-83.5@2x.png │ │ └── Contents.json │ ├── Info.plist │ └── main.m └── memorizeTests │ ├── Info.plist │ └── memorizeTests.m ├── memorize.db ├── metro.config.js ├── package-lock.json ├── package.json ├── screenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png └── 5.png └── src ├── DBHelper └── data.js ├── Route.js ├── class ├── exam.js ├── pushSender.js └── word.js ├── component ├── addWordForm.js ├── buttonMenu.js ├── exam.js ├── footerMenu.js ├── header.js ├── memorizedWords.js └── words.js └── pages ├── addWords.js ├── examPage.js ├── main.js └── memorized.js /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import Routes from './src/Route'; 3 | 4 | export default class App extends Component{ 5 | constructor(props){ 6 | super(props); 7 | } 8 | render() { 9 | return ( 10 | 11 | ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Osman Yavuz Demir 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | [![Build Status][build-shield]]() 5 | [![Contributors][contributors-shield]]() 6 | [![MIT License][license-shield]][license-url] 7 | [![LinkedIn][linkedin-shield]][linkedin-url] 8 | 9 | 10 | 11 | 12 |
13 |

14 | 15 |

16 | 17 | 18 |

Memorize

19 | 20 |

21 | Celal Bayar Üniversitesi Yazılım Yapımı Projesi için React Native ile hazırlanan kelime ezberleme yazılımı. 22 |
23 | · 24 | Report Bug 25 | · 26 | Request Feature 27 |

28 |

29 | 30 | 31 | 32 | 33 | ## İçerik 34 | 35 | * [Proje Hakkında](#proje-hakkında) 36 | * [Kullanılan Paketler](#kullanılan-paketler) 37 | * [Başlangıç](#başlangıç) 38 | * [Gereksinimler](#gereksinimler) 39 | * [Kurulum](#kurulum) 40 | * [Kullanımı](#kullanımı) 41 | * [İletişim](#iletişim) 42 | 43 | 44 | 45 | 46 | ## Proje Hakkında 47 | 48 | [![Product Name Screen Shot][product-screenshot-1]](https://github.com/Alertis/memorize/tree/master/screenshots) 49 | 50 | Uygulama kullanıcılara öğrenmek istediği kelimelerin ingilizce karşılığını öğretmeyi amaçlamaktadır. Uygulama ilk çalıştırıldığı zaman daha önceden belirlenen bir miktar kelimeyi otomatik olarak hafızasına dahil eder. Kullanıcı daha sonra kelime ekleyebilir veya öğrenmek istediği kelimeyi işaretleyebilir. Öğrenmek üzere işaretlenen kelimeler belirli bir senaryoya göre günü geldiği zaman TEST menüsü altında görüntülenecektir. 51 | 52 | ### Kullanılan Paketler 53 | Uygulama geliştirme sırasında aşağıdaki paketlerden yararlanılmıştır. 54 | * [React Native](https://facebook.github.io/react-native/) 55 | * [React Native Router Flux](https://github.com/aksonov/react-native-router-flux) 56 | * [React Native Sqlite Storage](https://github.com/andpor/react-native-sqlite-storage) 57 | * [React Native Flash Message](https://github.com/lucasferreira/react-native-flash-message) 58 | * [Native Base](https://nativebase.io/) 59 | * [Moment](https://www.npmjs.com/package/moment) 60 | 61 | 62 | 63 | 64 | ## Başlangıç 65 | 66 | Projeyi kendi bilgisayarınıza kurmak için aşağıdaki adımları takip edebilirsiniz. 67 | 68 | ### Gereksinimler 69 | 70 | Projeyi çalıştırabilmek için aşağıdaki paketleri yüklemeniz gerekmekte 71 | * npm 72 | ```sh 73 | npm install npm@latest -g 74 | ``` 75 | * React Native 76 | ```sh 77 | npm install -g react-native-cli 78 | ``` 79 | 80 | ### Kurulum 81 | 82 | 1. Github reposunu klonlayın 83 | ```sh 84 | git clone https://github.com/Alertis/memorize 85 | ``` 86 | 2. NPM paketlerini kurun 87 | ```sh 88 | npm install 89 | ``` 90 | 91 | 92 | 93 | 94 | ## Kullanımı 95 | 96 | Uygulama ilk açıldığı zaman telefona bir SQLite veritabanı oluşturmaktadır. Aynı zamanda hafızasındaki belli sayıdaki kelimeyi bu veritabanına kayıt etmektedir. Kullanıcı dilerse yeni kelime ekleyebilir, eklenen kelimeleri düzenleyebilir veya eklenen kelimeleri silebilir.
97 | 98 | Kullanıcı öğrenmek istediği kelimeyi işaretleyerek aşağıdaki senaryoya göre TEST sayfasında görüntülenmesini sağlayabilir. 99 | 100 | * Kelime öğrenilmek üzere işaretlenir. 101 | * İşaretlenen kelime işaretlendiği günden bir gün sonra kullanıcıya sorulur. 102 | * Eğer kelime doğru cevaplandıysa bir sonraki aşamaya geçilir. 103 | * Yanlış cevaplandıysa ilk aşamaya geri dönülür. 104 | 105 | Aşamalar 106 | 107 | 1. Aşama kelime öğrenilmek üzere işaretlendiği günden bir gün sonra kullanıcıya sorulur. 108 | 2. Aşama kelime öğrenilmek üzere işaretlendiği günden bir hafta sonra kullanıcıya sorulur. 109 | 3. Aşama kelime öğrenilmek üzere işaretlendiği günden bir ay sonra kullanıcıya sorulur. 110 | 3. Aşama kelime öğrenilmek üzere işaretlendiği günden altı ay sonra kullanıcıya sorulur. 111 | 112 | 113 | 114 | ## Iletişim 115 | 116 | Osman Yavuz Demir - [@alertisx](https://twitter.com/Alertisx) - osmanyavuzdemir96@gmail.com 117 | 118 | Proje Linki: [https://github.com/Alertis/memorize](https://github.com/Alertis/memorize) 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | [build-shield]: https://img.shields.io/badge/build-passing-brightgreen.svg?style=flat-square 129 | [contributors-shield]: https://img.shields.io/badge/contributors-1-orange.svg?style=flat-square 130 | [license-shield]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square 131 | [license-url]: https://choosealicense.com/licenses/mit 132 | [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 133 | [linkedin-url]: https://www.linkedin.com/in/osmanyavuzdemir/ 134 | [product-screenshot-1]: https://raw.githubusercontent.com/Alertis/memorize/master/screenshots/1.png?token=AG2ZA5TXLJQRPKPWLZNTTXC43FKJU 135 | -------------------------------------------------------------------------------- /__tests__/App-test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: test renderer must be required after react-native. 10 | import renderer from 'react-test-renderer'; 11 | 12 | it('renders correctly', () => { 13 | renderer.create(); 14 | }); 15 | -------------------------------------------------------------------------------- /android/.idea/.name: -------------------------------------------------------------------------------- 1 | memorize -------------------------------------------------------------------------------- /android/.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alertis/memorize/74cfb5c331c2af81baadd0285b5e5bb74620f37c/android/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /android/.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alertis/memorize/74cfb5c331c2af81baadd0285b5e5bb74620f37c/android/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /android/.idea/dictionaries/alertis.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 22 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_react_react_native_0_59_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_6_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /android/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /android/.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | application 129 | 130 | 131 | 132 | 137 | 138 | 140 | 141 | 153 | 154 | 155 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | Android 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | this.setState({ enWord: val })} /> 33 | 34 | 35 | 36 | this.setState({ trWord: val })} /> 37 | 38 | 39 | 40 | this.setState({ structor: val })} /> 41 | 42 | 43 | 44 | this.setState({ sentence: val })} /> 45 | 46 | 47 | 48 | 51 | 52 | ) 53 | } 54 | } -------------------------------------------------------------------------------- /src/component/buttonMenu.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {Button, Icon, Text, Badge, } from 'native-base'; 3 | 4 | export default class Menu extends Component{ 5 | 6 | render(){ 7 | if(this.props.badge){ 8 | return( 9 | 14 | ) 15 | }else{ 16 | return( 17 | 21 | ) 22 | } 23 | 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/component/exam.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {Text, Alert} from 'react-native'; 3 | import { Content, Card, CardItem, Body, Icon,Right, Left} from 'native-base'; 4 | 5 | 6 | export default class Exam extends Component { 7 | constructor(props){ 8 | super(props); 9 | } 10 | render(){ 11 | var count=-1; 12 | counter=()=>{ 13 | count=count+1; 14 | } 15 | return( 16 | 17 | { 18 | this.props.data && this.props.data.map( item => ( 19 | 20 | {counter()} 21 | 22 | 23 | 24 | {item.enMean} kelimesinin türkçe karşılığı nedir ? 25 | 26 | 27 | 28 | 29 | {console.log(count)} 30 | { 31 | this.props.answers && this.props.answers.slice(count*4,(count*4)+4).map(answer => ( 32 | ( this.props.chooseAnswer(item.trMean,answer,item.id, item.teachLevel, item.teachDate) )}> 33 | 34 | 35 | 36 | 37 | {answer} 38 | 39 | 40 | 41 | 42 | )) 43 | } 44 | 45 | 46 | )) 47 | } 48 | { this.props.data==null && Görüntülencek kelime yok. Lütfen daha sonra tekrar kontrol edin} 49 | 50 | ) 51 | } 52 | } -------------------------------------------------------------------------------- /src/component/footerMenu.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import { Footer, FooterTab } from 'native-base'; 3 | import { Actions } from 'react-native-router-flux'; 4 | import Menu from '../component/buttonMenu'; 5 | import moment from "moment"; 6 | import { openDatabase }from 'react-native-sqlite-storage'; 7 | 8 | const db = openDatabase({name : 'memorize.db'}); 9 | export default class FooterMenu extends Component{ 10 | state ={ 11 | count:0 12 | } 13 | componentDidMount(){ 14 | this.countTestWords(); 15 | } 16 | countTestWords = () => { 17 | db.transaction((tx) => { 18 | tx.executeSql("SELECT count(*) as countWords FROM vocabulary WHERE reminderDate=? and teach=1 and teachLevel<>4", [ moment(new Date()).format('YYYY-MM-DD')], (tx,res) => { 19 | this.setState({count : res.rows.item(0).countWords}) 20 | },(err) => console.log(err)); 21 | }); 22 | } 23 | render(){ 24 | return( 25 |
26 | 27 | ( Actions.exam())} /> 28 | ( Actions.home())} /> 29 | ( Actions.memorized())} /> 30 | 31 | 32 |
33 | ) 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /src/component/header.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {Left, Body, Title, Right, Button, Icon, Header, Text} from 'native-base'; 3 | import { Actions } from 'react-native-router-flux'; 4 | 5 | export default class HeaderComp extends Component{ 6 | 7 | constructor(props){ 8 | super(props); 9 | } 10 | render(){ 11 | return( 12 |
13 | 14 | 15 | {this.props.title} 16 | 17 | { this.props.icon && 18 | 19 | 23 | 24 | } 25 |
26 | 27 | ) 28 | } 29 | } -------------------------------------------------------------------------------- /src/component/memorizedWords.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {ScrollView} from 'react-native'; 3 | import { Content, Tabs, Tab, Text, TabHeading, DatePicker, View, Left, Right, Button, Body } from 'native-base'; 4 | import PureChart from 'react-native-pure-chart'; 5 | import { openDatabase,deleteDatabase }from 'react-native-sqlite-storage'; 6 | import moment from "moment"; 7 | 8 | const db = openDatabase({name : 'memorize.db'}); 9 | 10 | export default class Words extends Component { 11 | state = { 12 | startDate : null, 13 | finishDate : null, 14 | data: null 15 | } 16 | calculateReport = (reportType) =>{ 17 | if(this.state.startDate && this.state.finishDate){ 18 | db.transaction((tx) => { 19 | tx.executeSql("SELECT * FROM vocabulary WHERE teachDate between ? and ?", 20 | [moment(this.state.startDate).format('YYYY-MM-DD'), moment(this.state.finishDate).format('YYYY-MM-DD') ], (tx,res) => { 21 | if(res.rows.length>0){ 22 | if(reportType=="daily") 23 | this.dailyGraphic(res.rows.length, res.rows); 24 | else if (reportType=="monthly") 25 | this.monthlyGraphic(res.rows.length, res.rows); 26 | } 27 | },(err) => console.log(err)); 28 | }); 29 | 30 | } 31 | } 32 | 33 | monthlyGraphic = (length, rows) => { 34 | var jan=0, feb=0, mar=0, apr=0, may=0, jun=0, jul=0, aug=0, sep=0, oct=0, nov=0, dec=0; 35 | for (let i = 0; i < length; i++) { 36 | switch (moment(rows.item(i).teachDate).format('MMMM')){ 37 | case 'January' : 38 | jan++; 39 | break; 40 | case 'February' : 41 | feb++; 42 | break; 43 | case 'March' : 44 | mar++; 45 | break; 46 | case 'April' : 47 | apr++; 48 | break; 49 | case 'May' : 50 | may++; 51 | break; 52 | case 'June' : 53 | jun++; 54 | break; 55 | case 'July' : 56 | jul++; 57 | break; 58 | case 'August' : 59 | aug++; 60 | break; 61 | case 'September' : 62 | sep++; 63 | break; 64 | case 'October' : 65 | oct++; 66 | break; 67 | case 'Novomber' : 68 | nov++; 69 | break; 70 | case 'December' : 71 | dec++; 72 | break; 73 | default : 74 | console.log(moment(rows.item(i).teachDate).format('MMMM')) 75 | break; 76 | } 77 | } 78 | var data = [ 79 | { 80 | data:[ 81 | {x : 'Ocak', y: jan}, 82 | {x : 'Şubat', y: feb}, 83 | {x : 'Mart', y: mar}, 84 | {x : 'Nisan', y: apr}, 85 | {x : 'Mayıs', y: may}, 86 | {x : 'Haziran', y: jun}, 87 | {x : 'Temmuz', y: jul}, 88 | {x : 'Ağustos', y: aug}, 89 | {x : 'Eylül', y: sep}, 90 | {x : 'Ekim', y: oct}, 91 | {x : 'Kasım', y: nov}, 92 | {x : 'Aralık', y: dec}, 93 | 94 | ], 95 | color: '#297AB1' 96 | } 97 | ]; 98 | 99 | this.setState({data : data}) 100 | } 101 | dailyGraphic = (length, rows) => { 102 | var mon=0, tue=0, wed=0, thu=0, fri=0, sat=0, sun=0; 103 | for (let i = 0; i < length; i++) { 104 | switch (moment(rows.item(i).teachDate).format('dddd')){ 105 | case 'Monday' : 106 | mon=mon+1; 107 | break; 108 | case 'Tuesday' : 109 | tue++; 110 | break; 111 | case 'Wednesday' : 112 | wed++; 113 | break; 114 | case 'Thursday' : 115 | thu=thu+1; 116 | break; 117 | case 'Friday' : 118 | fri++; 119 | break; 120 | case 'Saturday' : 121 | sat++; 122 | break; 123 | case 'Sunday' : 124 | sun++; 125 | break; 126 | default : 127 | console.log(moment(rows.item(i).teachDate).format('dddd')) 128 | break; 129 | } 130 | var data = [ 131 | { 132 | data:[ 133 | {x : 'Pazartesi', y: mon} , 134 | {x : 'Salı', y: tue} , 135 | {x : 'Çarşamba', y: wed}, 136 | {x : 'Perşembe', y: thu}, 137 | {x : 'Cuma', y: fri}, 138 | {x : 'Cumartesi', y: sat}, 139 | {x : 'Pazar', y: sun} 140 | ], 141 | color: '#297AB1' 142 | } 143 | ]; 144 | 145 | this.setState({data : data}) 146 | } 147 | 148 | } 149 | 150 | render(){ 151 | 152 | return( 153 | 154 | 155 | 156 | 157 | Günlük}> 158 | 159 | 160 | {this.setState({startDate : date})}} 165 | /> 166 | 167 | 168 | this.setState({finishDate : date})} 173 | 174 | /> 175 | 176 | 177 | 178 | 181 | 182 | 183 | {this.state.data && 184 | 185 | 192 | 193 | } 194 | 195 | 196 | 197 | 198 | Aylık}> 199 | 200 | 201 | {this.setState({startDate : date})}} 206 | /> 207 | 208 | 209 | this.setState({finishDate : date})} 214 | 215 | /> 216 | 217 | 218 | 219 | 222 | 223 | 224 | {this.state.data && 225 | 226 | 233 | 234 | } 235 | 236 | 237 | 238 | 239 | ) 240 | } 241 | } -------------------------------------------------------------------------------- /src/component/words.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import {Text, Alert} from 'react-native'; 3 | import { Actions } from 'react-native-router-flux'; 4 | import { Content, List, ListItem, Left, Right, Icon, Item, Input, Header, Body, Button, Switch } from 'native-base'; 5 | import Word from '../class/word'; 6 | 7 | let service = new Word() 8 | 9 | 10 | export default class Words extends Component { 11 | editWord = (item) => { 12 | Actions.add({ 13 | words:{ 14 | id : item.id, 15 | enWord : item.enMean, 16 | trWord : item.trMean, 17 | structor : item.structor, 18 | sentence : item.sentence 19 | } 20 | 21 | }) 22 | } 23 | deleteWord = (item) => { 24 | Alert.alert("Dikkat!", item.trMean + " - "+ item.enMean + " kelimesini silmek istediğinize emin misiniz ?", [ 25 | {text : 'Evet, Sil', onPress : () => service.deleteWord(item.id)}, 26 | {text : 'Hayır, Vazgeç', style: 'cancel'} 27 | ]) 28 | 29 | } 30 | 31 | updateTeachWord = (item) => { 32 | service.updateTeachWord(item.id,item.teach == 1 ? 0 : 1, item.enMean); 33 | this.props.refreshWords(); 34 | } 35 | 36 | render(){ 37 | return( 38 | 39 |
40 | 41 | 42 | (this.props.search(val))}/> 43 | 44 | 45 |
46 | 47 | { 48 | this.props.data && this.props.data.map( item => ( 49 | 50 | 51 | 52 | {item.enMean} - {item.trMean} 53 | {item.structor} - {item.sentence} 54 | 55 | 58 | 61 | ( this.updateTeachWord(item) )} /> 62 | 63 | )) 64 | } 65 | { this.props.data==null && Görüntülencek kelime yok. Lütfen daha fazla kelime ekleyin. } 66 | 67 | 68 |
69 | ) 70 | } 71 | } -------------------------------------------------------------------------------- /src/pages/addWords.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import { Container, Text } from 'native-base'; 3 | import HeaderComp from '../component/header'; 4 | import FooterMenu from '../component/footerMenu'; 5 | import WordForm from '../component/addWordForm'; 6 | import Word from '../class/word'; 7 | 8 | let service = new Word() 9 | 10 | export default class addWords extends Component { 11 | constructor(props){ 12 | super(props); 13 | } 14 | 15 | save = (enMean, trMean, structor, sentence) => { 16 | service.addWord(enMean, trMean, structor, sentence); 17 | } 18 | 19 | update = (id, enMean, trMean, structor, sentence) => { 20 | service.updateWord(id, enMean, trMean, structor, sentence); 21 | } 22 | 23 | render(){ 24 | return( 25 | 26 | 27 | 28 | 29 | 30 | ); 31 | } 32 | 33 | 34 | } -------------------------------------------------------------------------------- /src/pages/examPage.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import { Container } from 'native-base'; 3 | import HeaderComp from '../component/header'; 4 | import FooterMenu from '../component/footerMenu'; 5 | import Exam from '../component/exam'; 6 | import { showMessage } from "react-native-flash-message"; 7 | import { openDatabase,deleteDatabase }from 'react-native-sqlite-storage'; 8 | import { Actions } from 'react-native-router-flux'; 9 | import ExamClass from '../class/exam'; 10 | import moment from "moment"; 11 | 12 | let service = new ExamClass() 13 | const db = openDatabase({name : 'memorize.db'}); 14 | 15 | export default class ExamPage extends Component { 16 | constructor(props){ 17 | super(props); 18 | this.state = { 19 | data: null, 20 | answers: null 21 | } 22 | } 23 | 24 | listExamWords = () => { 25 | db.transaction((tx) => { 26 | tx.executeSql("SELECT * FROM vocabulary WHERE reminderDate=? and teach=1 and teachLevel<>4", [ moment(new Date()).format('YYYY-MM-DD')], (tx,res) => { 27 | var data=[]; 28 | var answers=[] 29 | if(res.rows.length>0){ 30 | for (let i = 0; i < res.rows.length; i++) { 31 | data.push(res.rows.item(i)); 32 | this.listAnswers(data[i].id,data[i].trMean,answers) 33 | 34 | } 35 | this.setState({data : data}) 36 | } 37 | },(err) => console.log(err)); 38 | }); 39 | } 40 | 41 | listAnswers = (id,trMean,answers) => { 42 | db.transaction((tx) => { 43 | tx.executeSql("SELECT * FROM vocabulary WHERE id<>? ORDER BY random() limit 3", [ id ], (tx,res) => { 44 | if(res.rows.length>0){ 45 | for (let i = 0; i < res.rows.length; i++) { 46 | answers.push(res.rows.item(i).trMean); 47 | } 48 | answers.push(trMean); 49 | this.shuffleAnswers(answers); 50 | } 51 | },(err) => console.log(err)); 52 | }); 53 | } 54 | 55 | shuffleAnswers = (answers) => { 56 | var j, temp; 57 | for (let i = answers.length-1; i>answers.length-4; i--){ 58 | j=Math.floor(Math.random() * 3) + (answers.length-3); 59 | temp = answers[i]; 60 | answers[i] = answers[j]; 61 | answers[j] = temp; 62 | } 63 | this.setState({answers : answers}) 64 | } 65 | 66 | chooseAnswer = (trueAnswer,answer, wordId, teachLevel, teachDate) =>{ 67 | if(trueAnswer === answer){ 68 | showMessage({ 69 | message: "Tebrikler, Doğru cevap", 70 | icon: "success", 71 | type: "success", 72 | onPress: () =>{ 73 | service.updateAnsweredWord(wordId, true, teachLevel, teachDate, trueAnswer); 74 | Actions.refresh({key : Actions.exam()}); 75 | 76 | } 77 | }); 78 | }else{ 79 | showMessage({ 80 | message: "Üzgünüz. Yanlış cevap", 81 | description: "Doğru cevap : "+trueAnswer, 82 | icon: "danger", 83 | type:"danger", 84 | onPress: () =>{ 85 | service.updateAnsweredWord(wordId, false, teachLevel, teachDate, trueAnswer); 86 | Actions.refresh({key : Actions.exam()}); 87 | } 88 | }); 89 | } 90 | 91 | } 92 | 93 | componentDidMount(){ 94 | this.listExamWords(); 95 | 96 | } 97 | 98 | render(){ 99 | 100 | return( 101 | 102 | 103 | 104 | 105 | 106 | ); 107 | } 108 | 109 | 110 | } -------------------------------------------------------------------------------- /src/pages/main.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import { Container } from 'native-base'; 3 | import HeaderComp from '../component/header'; 4 | import FooterMenu from '../component/footerMenu'; 5 | import Words from '../component/words'; 6 | import { openDatabase }from 'react-native-sqlite-storage'; 7 | import Data from '../DBHelper/data'; 8 | 9 | let service = new Data() 10 | 11 | const db = openDatabase({name : 'memorize.db'}); 12 | 13 | 14 | export default class Main extends Component { 15 | constructor(props){ 16 | super(props); 17 | this.state = { 18 | data: null 19 | } 20 | service.init(); 21 | } 22 | 23 | componentDidMount(){ 24 | this.selectWords(); 25 | } 26 | 27 | selectWords = () => { 28 | db.transaction((tx) => { 29 | tx.executeSql("SELECT * FROM vocabulary", [], (tx,res) => { 30 | var data=[]; 31 | if(res.rows.length>0){ 32 | for (let i = 0; i < res.rows.length; i++) { 33 | data.push(res.rows.item(i)); 34 | } 35 | this.setState({data : data}) 36 | } 37 | },(err) => console.log(err)); 38 | }); 39 | } 40 | 41 | searchWords = (search) => { 42 | db.transaction((tx) => { 43 | tx.executeSql("SELECT * FROM vocabulary WHERE trMean like ? or enMean like ? or sentence like ? ", ['%'+search+'%','%'+search+'%','%'+search+'%'], (tx,res) => { 44 | var data=[]; 45 | if(res.rows.length>0){ 46 | for (let i = 0; i < res.rows.length; i++) { 47 | data.push(res.rows.item(i)); 48 | } 49 | } 50 | this.setState({data : data}) 51 | }) 52 | }) 53 | } 54 | render(){ 55 | return( 56 | 57 | 58 | 59 | 60 | 61 | ); 62 | } 63 | 64 | 65 | } -------------------------------------------------------------------------------- /src/pages/memorized.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import { Container,Content, ListItem, Left, Right, Text, Radio } from 'native-base'; 3 | import HeaderComp from '../component/header'; 4 | import FooterMenu from '../component/footerMenu'; 5 | import MemorizedWords from '../component/memorizedWords'; 6 | import { openDatabase }from 'react-native-sqlite-storage'; 7 | 8 | 9 | const db = openDatabase({name : 'memorize.db'}); 10 | 11 | export default class Main extends Component { 12 | constructor(props){ 13 | super(props); 14 | this.state = { 15 | data: null 16 | } 17 | } 18 | 19 | render(){ 20 | return( 21 | 22 | 23 | 24 | 25 | 26 | ); 27 | } 28 | 29 | 30 | } --------------------------------------------------------------------------------