Deploy Your Own Samiksha
1. Overview
This doc helps you to setup a Samiksha app on your own.
The Samiksha product can be used for managing the following activities of the State Education Department:
- Record observations on monthly school visits
- Record feedback during classroom observations
- Report status of material delivery to the schools
- Monitor the usage of supplementary material provided to schools
- Monitor the implementation of interventions at the school level
- Record progress of civil work projects at the school-level
- Report fund utilization status of the schools
- Record meeting minutes after conducting review meetings every month
- Monitor training conducted at the district, block or cluster level
- Collect training/workshop feedback
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.
FusionAuth
2.1 Setting up- Setting up Fusionauth server - Please use the official guide to install fusionauth servers.
- 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.
ODK Aggregate.
2.2 Setting up- Installation
- 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.
2.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 Monitor
as the key name will ensure any user with the role of Monitor
see these 6 forms. Similarly you can config other roles as well. Before you publish the changes please upversion the version
key to the next integer.
2.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.]
- Setting up production PSQL database
- Setting up production Redis cache
- Setting up the Memcached server
- Setting up the OTP server
- Setting up the relay server
3. Setting up the Mobile App
3.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.
3.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.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.
- Adding the gzip file of locations to raw files directory
- Linking the gzip file to cascading dropdown module
3.4 Setting up autofill
If you have already setup the forms similar to the step 2.4 above, this should be automatically be happening.
3.5 Adding the login screen
3.6 Setting up profile screen
- Setting up the backend server
- Testing the OTP and reset password.
3.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 Help
Some of the packages will be added in the coming weeks. Please contact us if you need urgent support in deploying this.