Project Requirements

Executive Summary

This web application will allow NSTEP to hear the stories of their diverse group of clients by enabling them to share their experiences with NSTEP, and give NSTEP a qualitative measure of assessment by which to evaluate the quality of their programs and report to funding agencies. The application will support multiple languages and allow clients to give feedback in various formats (text, audio, video, etc), as well as allow admins to set up questionnaires and view stories. Users of the system will consist of two distinct groups - NSTEP program participants and NSTEP employees monitoring responses on the administrative side of the application.

Project Glossary

Story

  • An experience or feedback that is shared by a client

Language

  • A natural language (not a programming language)

Client

  • Children, their parents and grandparents, teachers and community agency program leaders

User Stories

US 1.01 - Admin login (3pts)

As an Admin, I want to be able to securely log in, so that I can have private access to administrative functionalities of the system.

Acceptance Tests:

  • Admin can login to their account with correct credentials
  • Admin can provide an email and password to login
  • Admin cannot login with incorrect credentials

US 1.02 - Create questionnaire (8pts)

As an Admin, I want to be able to set up a program-specific questionnaire, so that I can define the kind of feedback I want to collect.

Acceptance Tests:

  • Admin can create a custom questionnaire
  • Admin can assign a questionnaire to a specific program
  • Admin cannot create a questionnaire without specifying a program

US 1.03 - Create unique URL (2pts)

As an Admin, I want to be able to create unique URLs for each feedback form of a particular program, so that I can let respondents quickly access the feedback form for the program they attended.

Acceptance Tests:

  • Admin can generate a unique URL for each feedback form they create
  • Each unique URL links to the correct form

US 1.04 - Summarize feedback (5pts)

As an Admin, I want some way to grasp the general sentiment of the feedback, so that I can understand how people largely feel about the programs.

Acceptance Tests:

  • Admin can view general feedback sentiment
  • Feedback sentiment is accurate

US 1.05 - Export feedback (5pts)

As an Admin, I want to export feedback, if the format of the feedback allows it, so that I may share the results to funders.

Acceptance Tests:

  • Admin can export feedback in csv format
  • File contains the correct information

US 1.06 - Search stories (3pts)

As an Admin, I want to be able to search for stories by timeline and/or program, so that I can view feedback for a particular program or time of submission.

Acceptance Tests:

  • Admin can search and view stories by timeline
  • Admin can search and view stories by program

US 1.07 - Get translated feedback (8pts)

As an Admin, I want to get feedback in its original form as well as a translated version, so that I can retain authentic feedback but also be able to understand the feedback if it is not in English.

Acceptance Tests:

  • Admin can view feedback in its original form
  • Admin can view translated feedback
  • Original and translated versions of feedback are accurate

US 1.08 - Create QR codes (2pts)

As an Admin, I want to be able to generate a custom QR code for each program survey, so that users can easily access the feedback page for the program without typing a URL.

Acceptance Tests:

  • Admin can generate a unique QR code for each feedback form
  • Each unique QR code is associated with the correct form

US 2.01 - Create Admin accounts (3pts)

As a Super Admin, I want to be able to create accounts, so that I may give other staff members access to admin privileges.

Acceptance Tests:

  • Super Admin can create admin accounts
  • Can login to created accounts
  • Created accounts have access to administrative functions

US 2.02 - Delete accounts (2pts)

As a Super Admin, I want to be able to remove accounts, so that I am able to take away admin privileges.

Acceptance Tests:

  • Super Admin can delete admin accounts
  • Cannot login to deleted accounts

US 3.01 - Submit text feedback (1pts)

As a User, I want to be able to leave feedback in text, so that I may type my response to a questionnaire.

Acceptance Tests:

  • User can type answers to questions
  • User can submit their typed response

US 3.02 - Submit voice feedback (5pts)

As a User, I want to be able to leave feedback in a voice recording, so that I can express verbally.

Acceptance Tests:

  • User can record their voice to respond to questions
  • User can submit their voice recording

US 3.03 - Submit video feedback (5pts)

As a User, I want to be able to leave feedback in video format, so that I can express myself comfortably.

Acceptance Tests:

  • User can record a video to respond to questions
  • User can submit their video recording

US 3.04 - Submit emoji feedback (2pts)

As a User, I want to be able to select from various emojis as feedback, so that I can easily express my feelings.

Acceptance Tests:

  • User can select an emoji in a feedback form
  • User can submit their selected emoji

US 3.05 - Submit anonymous feedback (1pts)

As a User, I want to be able to leave feedback anonymously, so that I can still leave feedback if I do not wish to share my identity.

Acceptance Tests:

  • User can give feedback without providing personal information
  • User can submit their feedback

US 3.06 - Select website language (5pts)

As a User, I want the web app to support multiple languages, so that I am able to comfortably navigate the website and leave feedback.

Acceptance Tests:

  • User can select a language
  • User can view the content of the web app in their chosen language
  • Translations are accurate and coherent

US 3.07 - Make feedback public (3pts)

As a User, I want to be able to make my story publicly visible, so that I may share my experience with others.

Acceptance Tests:

  • User can determine the public visibility of their story
  • Story is only visible to others if marked as public

US 3.08 - Share story by email (5pts)

As a User, I want to be able to share my story by email, so that I can recommend a program to someone else.

Acceptance Tests:

  • User can share their story through email
  • Shared story is received by the intended recipient(s)

US 3.09 - Mobile support (3pts)

As a User, I want to be able to use my phone to navigate the website and give feedback, so that I do not need to access a desktop.

Acceptance Tests:

  • User can access the website on their phone
  • Features of the website are usable on mobile devices

MoSCoW

Must Have

  • US 1.01 - Admin login
  • US 1.02 - Create questionnaire
  • US 1.06 - Search stories
  • US 3.01 - Submit text feedback
  • US 3.02 - Submit voice feedback
  • US 3.03 - Submit video feedback
  • US 3.09 - Mobile support

Should Have

  • US 1.03 - Create unique URL
  • US 2.01 - Create Admin accounts
  • US 2.02 - Delete accounts
  • US 3.05 - Submit anonymous feedback

Could Have

  • US 1.04 - Summarize feedback
  • US 1.05 - Export feedback
  • US 1.07 - Get translated feedback
  • US 1.08 - Create QR codes
  • US 3.04 - Submit emoji feedback
  • US 3.06 - Select website language

Would Like But Won't Get

  • US 3.07 - Make feedback public
  • US 3.08 - Share story by email

Similar Products

Google Forms

  • Offers form creation, templates, real-time results analysis, etc
  • May be used as inspiration for designing user-friendly, functional forms

WordClouds.com

  • Word cloud generator
  • May be used as inspiration for the appearance of in-app word clouds

Typeform

  • Offers form creation, templates, etc
  • May be used as inspiration for designing beautiful, interactive forms

Jotform

  • Offers form creation, templates, etc
  • May be used as inspiration for designing simple, usable forms

Open-source Products

Plotly Dash

  • Python framework for building data apps
  • May be used for coding the admin dashboard
  • Ties modern UI elements like dropdowns, sliders, and graphs directly to your analytical Python code

NLP.js

  • Natural language utility for Node
  • May be useful for capturing emotions from feedback
  • Functionalities include but are not limited to sentiment analysis and language guessing for phrases

Formik

  • React form library
  • May be useful for handling form creation
  • Functionalities include but are not limited to input validation, formatting, masking, arrays, and error handling

Technical Resources

General:

Frontend: React.js + React Router + Material UI

Backend: Django + MySQL

Deployment: Cybera RAC