Workspace Setup - Playbook
Developer Environment Setup - Playbook

Software Prerequisites

  • ​React Native​
  • NodeJs, 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
PORT=3000
MONGODB_URL=mongodb://localhost:27017/saraldata_dev
JWT_SECRET=SARALDATA_NODE
  • 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 [email protected]"<4.11.0"