Deploy Your Own Pariksha

1. Overview

This doc helps you to setup a Samiksha app on your own.

The Pariksha product can be used for managing the following activities of the State Education Department:

  1. Record student wise grades for different subjects across different assessments
  2. Record class wise aggregate marks for different subjects across different assessments
  3. Edit any previous student or class wise grades
  4. View past assessments of students and classes
  5. Real time tracking of student assessment data update by teachers
  6. Monitor student assessments trends

1.1 Disclaimer

  • Note that this project in alpha and the APIs can change without notice. Please use it at your discretion. Though we use it in production, but the we are yet to close the API specification
  • Note that some of the links may become live in the coming days. Please contact us in case of any queries or if you need to set this up up urgently.

2. Setting up the backend

Backend setup requires you to setup four servers, the steps for which are as follows.

1. Setting up FusionAuth

  1. Setting up Fusionauth server - Please use the official guide to install fusionauth servers.
  2. Adding users to the system - Samwad has no user registraction so, depending on the backend/language that you prefer, users can be added in a variety of ways. We recommend using this API.

2. Setting up ODK Aggregate.

  1. Installation
  2. Add these forms to ODK. Note: You need to upload the .xml files and the .xls file are for form building only. You will need to add the relevant csv assets to the forms as well.

3. Setting up form authorizations

The next step is setting up which forms the users will see when they open the app. Setting the following remote config for the app on Firebase with all as the key name will ensure they see these 5 forms.

"FormID": "MasterPrerna",
"FormName": "MasterPrerna"
"FormID": "Class1v2",
"FormName": "Class 1"
"FormID": "Class2v2",
"FormName": "Class 2"
"FormID": "Class3v1",
"FormName": "Class 3"

4. Setting up backend connectors and servers.

All this can be done using the docker-compose.yml file which can be found here. What it essentially does is installs the following things. [Note: You are free to change the docker file here to increase the capacity of the servers or choose a different deployment strategy depending on the scale.]

  1. Setting up production PSQL database
  2. Setting up production Redis cache
  3. Setting up the Memcached server
  4. Setting up the OTP server
  5. Setting up the relay server
  6. Setting up the ODK ETL Connector

3. Setting up the Mobile App

1. Adding the form management module and configuring forms

This module will allow us to download and show the forms configured in the Firebase above.

  1. Setting form list button
  2. Setting up the submission screen

2. Setting up the student list download module

Downloads the list of students for a particular school. Please use th following doc to set this up.

3. Setting up the cascading dropdown module

This will allow the app to render the cascading dropdown and fill the details automatically to the form.

  1. Adding the gzip file of locations to raw files directory
  2. Linking the gzip file to cascading dropdown module

4. Setting up the Track SMS module.

All SMSes that are sent through the backend have one of the following responses

  1. Pending
  2. Failed to send
  3. Failed to deliver to user
  4. Still under processing
  5. Delivered These responses are then shown in the tracking module to see which parent got the message and if not, which stage it is in. To configure the track SMS module please use this doc

5. Adding the login screen

  1. Setting up login screen
  2. Connecting FusionAuth to the server

6. Setting up profile screen

  1. Setting up the backend server
  2. Testing the OTP and reset password.

7. Setting up the about us screen

The about us screen is a part of the ancillaryscreens module. Please see this doc to get started.

4. Need more help??

Some of the packages will be added in the coming weeks. Please contact us if you need urgent support in deploying this.

5. FAQs