Iteration 1
Vision Statement
This application will allow users to create surveys that can be taken by other users on their Android mobile devices. The completed surveys will be returned to the creator in an easily readable format. While for years, answering surveys has consisted of checking boxes and filling in bubbles, we hope to bring certain new innovative and intuitive methods of form filling to light with our app. We want to take advantage of the fact that this app will be running on an Android phone. Thus we will focus our data entry on speech, multi-touch, and the accelerometer. We also plan to scrape answers from the phone (like GPS location data, contact details, etc.)
Features List
-
Survey Creation
- Templates
- Types of questions
- Multiple Choice
- Sliding scale (1-10, etc.)
- Yes/No
- Check box
- Text Box
- Graphics (human body for pointing out pain in medical surveys)
- Visibility of the survey (public or private)
- Level of security (encrypted for medical etc.)
- How survey can be found (QR-codes, etc.)
- Mailing list for repeated surveys (what the office wants for lunch, etc.)
- How data should be returned (email, app, etc.)
- Expiration
-
Survey Taking
-
Retrieve a survey to take
- Drop-box situation (takers subscribe to a drop-box and are notified about new surveys)
- Browser
- QR Codes
- Location (if app is on, it recognizes a survey by location)
- Email/forwarded by a friend
- Automatically fill out as much of survey as possible (name, number, etc. I.E. data that is already on the phone)
- Input text and multiple-choice answers (by hand or speech)
- Know how much time/how long the survey is
- Give feedback about survey
- Share survey with other parties
- After submission, get current results
-
Retrieve a survey to take
-
Data Analysis
- Real-time results
- Push results (for updates)
- Aggregate data from multiple surveys (if necessary)
- Display data with graphics, etc
- Keep data separate in confidential situations
- Aggregate data complying with HIPPA rules (for medical usage)
- Export data to PDF or other formats
Actors
- Survey Creator: This is the person who creates the survey. They are interested in easily creating different types of questions and analyzing the data
- Survey Taker: This person is taking the survey. They want to easily answer questions and know that their answers have been received by the survey creator. They also may want to view other’s responses
- Web Server: This holds the survey data once the creator has made a survey and allows for retrieval by a survey taker. In addition, once the survey taker has completed the survey, the server stores the data they have inputted and aggregates it for future use by the creator
- Administrator: Server clean-up, maintenance, grant accounts, etc
Use-cases
- Creating a One-Question Survey from a Template
Primary Actor: Creator (the User)
Goal: Creating a survey
1. User chooses the ‘Poll’ template form
2. The application starts a new survey based on the chosen template
3. User enters (types or speaks) the question that he wants answered.
4. User chooses the format for responses (i.e. Multiple Choice, Binary, or Sliding Scale)
5. User adds answer choices
6. User selects configurations for the survey (method of results aggregation (i.e. simple statistics), visibility, expiration, etc.)
7. User selects distribution mode (i.e. a link via email, a QR-code, etc.), and the takers list
a. If user does not have access to Internet, save survey locally
8. User submits and distributes the survey to takers - Taking a One-Question Survey
Primary Actor: Taker (the User)
Goal: Taking and submitting a Survey
1. User retrieves the survey (by clicking a link in an email or snapping a QR-code, etc)
- If the user does not have the survey app, the phone is redirected to the market where the app can be downloaded
3. User submits the survey.
4. User is redirected to a results page (if one exists)
- Creating a Long Survey
Primary Actor: Creator (the User)
Goal: Creating a survey
1. User chooses to make a custom survey
2. User enters (through speech or text) questions
3. User selects what type of answers are acceptable for each question
- If an answer needs clarification, a subset of questions can be
created
If an answer that has a subset is answered in a particular way, the subset may be skipped (skip logic)
5. User selects configurations for the survey (method of results aggregation (i.e. simple statistics), visibility, expiration, etc.)
6. User selects distribution mode (i.e. a link via email, a QR-code, etc), and the takers list
a. If user does not have access to Internet, save survey locally
7. User submits and distributes the survey to takers (or make it a public survey) - If an answer needs clarification, a subset of questions can be
created
- Taking a Long Survey
Primary Actor: Taker (the User)
Goal: Taking a survey
1. User retrieves the survey (by clicking a link in an email or snapping a QR-code)- If the user does not have the survey app, the phone is redirected to the market where the app can be downloaded
- If the question has a subset of questions, depending on the answer the User is either directed to answer these questions or the application automatically skips over them
- User may save answers locally and and complete the rest of the survey later
- If user does not have access to Internet, save the answers locally
- Retrieving the Results of a Survey
Primary Actor: Creator (the User)
Goal: Getting results from a survey that has been taken already
1. User selects which survey to get results for
2. User views results
3. User may manipulate results for easier viewing (Graphs may be changed from bar to pie, etc.)
- Creating a Question
Primary Actor: Creator (the User)
Goal: Create a question
1. The user writes or speaks a question.
2. User chooses which answer format is acceptable for the question (i.e. Multiple Choice, Binary, Sliding Scale, Text Box, Diagram, etc.)
3. User chooses and writes/speaks answers in the acceptable format
4. User reviews question and finalizes it
- Answering a Question
Primary Actor: Taker (the User)
Goal: Answer the question
1. Whenever the user starts a survey, the phone automatically looks for information it can auto-complete (Name, DOB, phone number, location, etc.)
2. User reads the question (or the text-to-speech reads it to the user)
3. The user selects the answer from the format the Creator has specified - Exporting Results
Primary Actor: Creator (the User)
Goal: Make results viewable by other parties
1. In results mode, select export
2. User chooses which format to use (PDF, XLS, etc.)
3. User taps export button and gets file sent to email
Domain Model
![](images/domain_model.png)
GUI Sketches
Download larger versions here
Create a new survey
![](images/GUI_sketch1.png)
View survey results
![](images/GUI_sketch2.png)
Activity Diagrams
![](images/CreateLongSurvey.jpg)
![](images/TakeASurvey.jpg)
Architecture
- Service Oriented Architecture
- Android SDK for the client side and .NET (or J2EE) for the server side.
Resources
- Android core libraries
- Android accelerometer
- Speech-to-text/Text-to-speech
- SQL server
- ASP.NET web services (or J2EE)
- A free stats package (R, or something else)