Sunbird Saral
Ask or search…
Comment on page

Workspace Setup - Playbook

Developer Environment Setup - Playbook

Software Prerequisites

  • NodeJs (Recommended version v16.9.1 LTS)
  • NPM
  • OpenJDK 8
  • Vysor
  • NDK old Version 20.0.5594570 needed to be compatible. Use command sdkmanager 'ndk;20.0.5594570' to switch to ndk 20.0.5594570. (This command is handy on Mac or Linux)
  • Saral SDK (This SDK is embedded in Saral App code base). Refer Saral SDK Source Code Repository

Optional software

Other tools used

Source Code references

Open Terminal and clone source code git clone https://github.com/Sunbird-Saral/Project-Saral.git.
For latest repo refer Source Code Repository
Change Directory to Project-Saral/ folder and switch to release tag as per release notes. git checkout tags/<tag_name>
$FRONTEND_FOLDER = Project-Saral/v1.0/frontend
$BACKEND_FOLDER = Project-Saral/v1.0/backend

Frontend Setup

  • Setting up the React Native development environment Note: Choose React Native CLI Quick Start tab for setup instructions.
  • Download NDK 20.0.5594570 and extract archive to $ANDROID_HOME\ndk folder.
  • In Android Studio, navigate to File\Project Structure\SDK Location and set Android NDK location to $ANDROID_HOME\ndk\android-ndk-r20 (extracted in the last step).
  • Make sure sdk.dir paths are set properly in $FRONTEND_FOLDER\SaralApp\android\local.properties.
  • Register on Google Firebase, add the Saral project on the firebase dashboard and download the corresponding google-services.json.
  • Place downloaded google-services.json under $FRONTEND_FOLDER/SaralApp/android/app folder.
  • Once Vysor and AVD are configured as per the instructions, follow the below steps to bring up the application.
  • Open a terminal in $FRONTEND_FOLDER/SaralApp and run npm i the command.
  • cd android && ./gradlew clean && cd ..
  • npx react-native run-android
  • Make sure backend BASE_URL is configured in $FRONTEND_FOLDER/SaralApp/src/configs/config.js file.
  • Successful frontend deployment should show Saral OCR login screen on AVD or USB connected Android device.

Backend Setup

  • Install node and MongoDB in your local machine.
  • From Saral release v1.5.4 and above, please execute below commands from $BACKEND_FOLDER in a terminal.
cp ../../specs/v1.5/swagger-saral-maintenance.yaml ./src
cp ../../specs/v1.5/swagger-saral-frontend.yaml ./src
cp ../../specs/v1.5/swagger-saral-apidoc.yaml ./src
  • Install npm packages by running npm i from $BACKEND_FOLDER.
  • Create a subfolder inside the backend folder name it as configuration.
  • Now create a file in config\dev.env and paste the below commands
  • Run npm run dev command from a terminal in $BACKEND_FOLDER.
  • Successful backend local deployment should show Server is up on port 3000

Backend DevOps

Dockerfile is available under $BACKEND_FOLDER folder.
Build docker image using docker build . -t saral-backend:1.0-latest the command from $BACKEND_FOLDER folder in a Terminal.
Docker swarm stack reference file available at $BACKEND_FOLDER/saralbackend-stack.yml
Docker-compose reference file available at $BACKEND_FOLDER/docker-compose.yml

Backend Data Load

  • Make sure the backend server is running
  • Command to delete/clean existing data:
    node ./data/import-data.js --delete
  • Command to load data from data files in ./backend/data folder.
    node ./data/import-data.js --import

Useful Developer Tools

https://www.npmjs.com/package/react-devtools Note: For the current version of Saral execute npm i -g react-devtools@"<4.11.0"