Giter Club home page Giter Club logo

sunbirded-mobile-app's Introduction

Recommended Branch - release-4.9.0

Kindly mail back to sunbird to get the starter kit Which consists of two files: a) google-services.json - To be Copied at the root of the project b) sunbird.properties. - To be Copied into buildConfig/ folder

Dependencies:
NPM Version - above 6
Node Version - 14 (Recommended) Cordova Version - 9 (Recommended)

1. Ionic-Android build Setup
- Install java
- Install Gradle
- Install Android Studio
- After Android studio installation, install SDK
- Open Android studio and goto settings/appearance and behavior/system settings/Android SDK
- Install appropriate Android sdk platform package.
- Add environment variables in ~/.bashrc or ~/.bash_profile as follows
export ANDROID_SDK_ROOT=path_to_sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
- Reference: https://ionicframework.com/docs/installation/android

CLI Setup    
- `npm install -g ionic`   
- `npm install -g cordova`   

2. Project Setup
- git clone the repo(https://github.com/Sunbird-Ed/SunbirdEd-mobile-app).
- Rename sunbird.properties.example file to sunbird.properties and put all the valid credentials and api endpoint.
- Go to project folder and run npm i
- Run ./build.sh

3. Onboarding/Tabs Configuration Onboarding steps and Tabs can be configured via this configuration settings.

Onboarding Configurations

Name Description Options
Language Selection User should select their prefered language To skip language selection, set skip as false and provide default values
User Role Selection User should select their role If want to skip User Type selection, set skip as false and provide default user type
Profile Settings User should set their profile by choosing their framework fields Provide deafult profile values to skip profile settings page
District Maping Here user need to provide details related to their location To skip this page deafult location values are required

Language Selection

{
  "onboarding": [
    {
      "name": "language-setting",
      "skip": false,
      "default": {
        "code": "en",
        "label": "English"
      }
    }
  ]
}

User Role Selection

{
  "onboarding": [
    {
      "name": "user-type-selection",
      "skip": false,
      "default": "teacher"
    }
  ]
}

Profile Settings

{
  "onboarding": [
    {
      "name": "profile-settings",
      "skip": false,
      "default": {
        "syllabus": [
          "CBSE"
        ],
        "board": [
          "cbse"
        ],
        "medium": [
          "english"
        ],
        "grade": [
          "class5",
          "class6"
        ]
      }
    }
  ]
}

District Maping

{
  "onboarding": [
    {
      "name": "district-mapping",
      "skip": false,
      "default": {
        "state": "Andaman & Nicobar Islands",
        "stateId": "83h3u832ui4",
        "district": "Nicobars",
        "districtId": "aef899d41"
      }
    }
  ]
}

Tabs Page COnfigurations

Configure the tabs page according to the requirement. Fllowing are the configurable settings for tabs.

{
  "tabs": [
    {
      "root": "home",
      "name": "home",
      "icon": {
        "active": "assets/imgs/tab_home_selected.svg",
        "inactive": "assets/imgs/tab_home.svg",
        "disabled": "assets/imgs/ic_home.png"
      },
      "label": "TAB_HOME",
      "index": 2,
      "isSelected": true,
      "is_visable": true,
      "disabled": false,
      "theme": "NEW",
      "status": "ALL",
      "userTypeAdmin": true
    }
  ]
}
Property Description Value
root On which page the tab should be shown. home
name Name given to the tab home
icon Different icons for respective events. i.e when the tab is selected, not seleted and disabled. Object with path to the respectivr icons
label Label name to displayed for the tab 'TAB_NAME'
index At which position the tab should be displayed numeric value ex: 2 shows at 2 position in order
isSelected Wheather the tab should be selected by deafult Boolean value ex: true default selected
is_visable To display the tab or not Boolean value
disabled If true, tab is displayed, but can't select Boolean.
is_visable To display the tab or not Boolean value
theme Theme on which the tab should be displayed(If there are multiple theme for the app available) name of theme for which tab has to be displayed
status To display to a spefic user criteria ex: 'logIn' will show to logged in users only
userTypeAdmin Wheather to show for only Admin users Boolean value

4. How to build apk
- To check attached devices do adb devices
- npm run ionic-build (Make sure you have attached device)
- ionic cordova run android --prod
- Apk location project_folder/platforms/android/app/build/outputs/apk/staging/debug/apk_name.apk

5. How to debug apk
- Open chrome and enter chrome://inspect
- Select app


IOS Development setup

Prerequisites

1. Node js version 10.18.1
2. Ionic 5.4.16 using `npm i [email protected] -g`
3. Cordova 9.0.0  using `npm i [email protected] -g`
4. cordova-res 0.15.3 - using `npm install -g cordova-res`
5. ios-deploy  1.11.4 - using `brew install ios-deploy`
all of the above should be installed globally
Xcode 12.4 Build version 12D4e or above

Steps

1. Checkout sunbird-sdk repo from https://github.com/Sunbird-Ed/sunbird-mobile-sdk with branch release-3.9.0-ios
2. cd to <sunbird-mobile-sdk> && npm i && npm run build:prod
3. Checkout sunbird-mobile-app repo from https://github.com/Sunbird-Ed/SunbirdEd-mobile-app with branch release-3.9.0-ios
4. Add `GoogleService-Info.plist` file
5. cd to <sunbird-mobile-app> local path
6. RUN npm i <sunbird-sdk repo local path>/dist
7. RUN npm i
8. RUN ./build-ios.sh
9. RUN cordova emulate ios

Possible Errors

  1. error: Value for SWIFT_VERSION cannot be empty. (in target 'Sunbird' from project 'Sunbird') or Duplicate GoogleService-Info.plist file error

Solution

open platforms/ios/Sunbird.xcworkspace 
Select Sunbird 
Build setting Project, targets
update Swift language version to 4 
Inside Tagets -> Build phases -> Copy Bundle Resources -> remove duplicate GoogleService-Info.plist if present
and close Xcode then rerun the **cordova emulate ios**

sunbirded-mobile-app's People

Contributors

ajoym avatar ajoymaity avatar amiableanil avatar balakrishna-m avatar balakrishna10 avatar bindu07 avatar christyfernandes avatar dhirenaade avatar diptesh6501 avatar harpreetwalia143 avatar itsvick avatar jsdevl avatar kiranharidas187 avatar kirantunerlabs avatar navkumarv avatar pradeepkumarcm96 avatar pradoshkumar avatar raghav14 avatar rejneesh1 avatar sachinsahu731 avatar sharathkashyap avatar shuvranilsaha avatar sonaarun avatar souravdey091 avatar sri-pusuluri avatar subranil avatar swayangjit avatar vinodkumar45 avatar vishwanath1004 avatar vishwasuresh avatar

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.