IELTS mobile app - GenosTech/genostech.github.io GitHub Wiki
IELTS MOBILE APP
Questions happening in recent IELTS tests have a tendency to appear all over again in later IELTS tests. Knowing this fact, over the time, IELTS quarterly forecasting comes to become a popular activity by all IELTS takers around the world.
To be well-prepared for the IELTS test (both IELTS Academic & IELTS General Training Module), users can use this IELTS forecast app to practice provided topics by the app at home before sitting the IELTS test. The app's content staffs will therefore have to update these sample questions/topics frequently for users to access them through the app.
This IELTS Forecast app is dedicated to IELTS Speaking Skill only. It also includes other features to help users well prepared before their IELTS tests.
App preview
Screenshots
Demo video
Preview - IELTS forecast mobile app by React Native
Features (With respect to IELTS Speaking Test)
- Listing forecasted questions in a selected quarter
- Listing forecasted quarters on a modal
- Displaying details of a test sample with TEXT-TO-SPEECH feature allowing users to hear sample answers in English.
- Listing speaking topics
- Listing sample questions in each topics
- Displaying details of a sample
- Listing lessons
- Displaying details of a lesson in webview. Content of a lesson therefore can be written in rich-text format.
- Displaying about us pages including information and relevant links
Technical stack
- React Native
- Redux
- Redux-Saga
- react-native-tts
- react-native-navigation
- react-native-vector-icons
- react-native-admob
- Webview
- NativeBase
- Ignite - CLI for React Native
Installation
1. Install dependencies
$ npm install
2. Link native dependencies
React Native modules that include native Objective-C, Swift, Java, or Kotlin code have to be "linked" so that the compiler knows to include them in the app.
$ react-native link
For iOS, there is one more step. In the ios/
directory run:
$ pod install
For Android, we will have to convert our app to AndroidX, run:
$ npx jetify
Usage
The default settings in our source code use fixture (offline) data.
You can try to connect the app with our dedicated backend server to use online data by changing settings like below:
In the App/Config/DebugConfig.js
file, set useFixtures to false
useFixtures: false,
In the App/Config/AppConfig.js
file, set apiBaseUrl as follows
export const apiBaseUrl = 'http://157.245.148.145:8080/';
That's it.
We do not guarantee that our online api backend will always be there for demo-ing. So please use fixture in case the online server is unavailable.
For production, consider building and hosting your data on a dedicated server. Our api backend are based on this open source https://github.com/esbenp/larapi (An API-friendly fork of Laravel). You can see sample API calls as in
App/Services/Api.js
.API implementation based on this fork is generally straightforward. You can find more at: http://esbenp.github.io/2016/04/11/modern-rest-api-laravel-part-0/
To run IeltsApp on android, run
$ react-native run-android
To run IeltsApp on iOS, run
react-native run-ios
or
Open `ios/IeltsApp.xcworkspace` (instead of `ios/IeltsApp.xcodeproj` in Xcode).
More references on how to run React Native app on different platforms