Workspace Setup - Playbook
Developer Environment Setup - Playbook
Software Prerequisites
NodeJs (Recommended version v16.9.1 LTS)
NPM
OpenJDK 8
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
Docker to bring up reference backend as a container (https://docs.docker.com/desktop/)
Other tools used
Jupyter Notebook for transforming VoTT raw json to Saral ROI json. Refer to source repository path specs\v1\README.md file for more details. You may consider installing the extension in MS Visual Studio Code.
PostMan or any other REST client tool to invoke/test Rest APIs.
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 react-devtools@"<4.11.0"
Last updated