Skip to content

custom survey service

Eric Jahn edited this page Mar 25, 2018 · 33 revisions

Overview

The current survey service functionality is basically divided into two current parts:

  1. VI-SPDAT assessment response storage: a proprietary (can be used, but only by officially trained personnel) scored assessment, with 3 sub-types: Individual, Family, and Transition Age Youth
  2. NON VI-SPDAT custom assessment and survey (not scored) definition and response storage

In the future:

  • Potentially other hard-coded assessments (similar to the VI-SPDAT).

This microservice works as a backend service for for various third-party mobile and web apps implementing its web API. The third-party apps will in turn provide an interface to end users ("Survey User" and "Admin" roles) to work on certain activities based on their roles. Surveys and assessments are designed by administrative users, and the survey users complete the surveys. Once completed, the survey microservice generates scores for the matching serving to access (if the survey is an assessment). user login will be validated through HMIS Authorization end point and survey will receive there request along with the token ID generated by auth service, Which will help to validate the user access over the specific service.

#User Roles: This survey microservice supports two types of 3rd party App user roles. Each role has its own access control. The survey microservice is secured by the HSLynk Authorization microservice, which implements the OAuth2.0 security framework.

#1. Admin User: Admin users have the ability to create and edit questions and then group them into surveys and assessments, using the 3rd party app user interface. The CTA Home App is currently the only app using this microservice.

#2. Survey User: Survey Users use this micro service to complete surveys/assessments on behalf of homeless clientele.

#Functional Requirements

  • stores surveys, keeping track of survey owner, and whether the survey is locked or open to editing, and the list of questions associated with the survey.
  • stores survey responses
  • All functionality must be exposed via an API posted at Survey Service API Site
  • All API calls must be authenticated via HMISLynk's existing OAuth service with normal HMISLynk user accounts
  • Survey service should be a new role set up within HMISLynk's user service
  • Locking and copying of questions and surveys discussion on slack

Process Flow

  • The API provide facility to admin user to create new survey for client. Admin user will provide title and survey description while creating the survey. The Admin user can update the survey and provide more details on adding section, questions and respective picklist

  • Each survey will have multiple sections in it. Admin can add or delete new section from survey. Each section can have one or multiple question in it. These questions will have the response data type (like text box. multi-select, single select etc). Base on the data type, user will be given the choices to submit their response.

Section score: Each Section have some scores which will be calculated based on the response end user has submitted.

  • Micro services GET request help to fetch the created and updated surveys and provide the feasibility to update them.

  • Authorized client can see a list of survey's and select any survey from available list. Client will go through all section and questions available in the selected survey and provide the answers as per given questions. Client can also fetch there submitted response and update it once again.

  • Score calculation and visibility depends upon the type of survey, The survey service is only responsible for calculating the custom survey scores. But it will store both VI-SPDAT and Custom scores into there database.

Technical Implications of Survey Web Service Component

  • database schema changes
  • web service implementation
  • use existing auth service and role based access controls
  • calls to existing client matching web service
  • API publishing on AnyPoint for app developers to reference
  • Testing
  • Documentation
  • Deployment

ER Diagram

original file here