ResponseMonster is an attempt to replace classroom-based audience response systems with open source software on both ends. ResponseMonster is primarily a web-based application.
One ResponseMonster server handles any number of teachers, students, and classes. Teachers can set up questions to be answered ahead of time or on-the-spot. A maximum of one question per class can be opened for responses at a time; when the question closes, response data can be viewed by the teacher and optionally publicized to students. Surveys can be anonymous.
The application runs on Ruby on Rails and uses an SQLite database to store surveys and responses. Each class has one teacher and many students.
ResponseMonster will be designed to handle multiple choice questions, but short answer questions may be implemented somewhere down the road. There is also a possibility of having code answers be submitted which are compiled on the server and the output is returned to the teacher. These answers can be saved, along with the generated output, which can then be inspected by the teacher.
Each ResponseMonster class has a web page of its own.
Teachers who visit the class page will have the option to select a previously entered question to open for responses, as well as the option to enter a new question that should be opened for responses immediately. They can also view data for any previously opened questions.
Students who visit the class page will be presented with the class's current open question if one exists. The available answers to this question are listed below, and the student uses a form to choose one and submit their response. Below this area is a list of previously answered questions. Each previously opened question is accompanied by the class-wide data for that question, if the teacher chooses to make it available.
A class has one teacher and many students. The ability to add, edit, and open/close questions for a class belongs only to the teacher for that class. The teacher also holds the ability to make questions private, not private, anonymous, and not anonymous.
A class has a name (e.g. "CSCI 430") and a title (e.g. "Software Engineering"). Each of these fields will have a corresponding index in order to allow for easy searching.
Initially, ResponseMonster will be built for laptop browsers. Applications for smartphones and other mobile devices are planned to come soon after, built most likely using WebView. After support for these devices is finalized, we plan on taking the next step either into SMS territory, allowing students to send in responses using text messages, or into an attempt to reverse engineer the modern clicker device in order to allow it to operate as a ResponseMonster response device. An SMS response system is the more realistic option after considering that support for clickers would require a desktop application and a hardware reciever.
Response data for each question is stored until a teacher decides to remove it. By default, response data is considered private -- only the teacher of the class the data was collected for may view it. If a teacher decides to make response data for a question public, students of that class may then view the data.
Teachers may also mark a question as anonymous. ResponseMonster will not record any identifying information sent in response to an anonymous question.
The default view for response data is a pie chart generated using Highcharts, a JavaScript library. Users may also view raw, tabular data for a response.
ResponseMonster has one administration role. This role has the ability to view, modify, and delete users, classes, and questions without being given permission. In addition, it has the ability to grant other accounts the administration role. On its first run, ResponseMonster sets up one administrator account. The granting of the administrator role to further accounts should be done with caution and forethought.
git clone git@github.com:bafipawi/ResponseMonster
cd ResponseMonster
bundle install
rake db:migrate
rake db:test:prepare
guard
before { @user = User.new(first_name: "Test",
last_name: "User",
email: "test@test.com",
password: "password",
password_confirmation: "password") }
Schoolwork load becomes too heavy.
Priority Level: 8
Level of Impact: 10
How to Mitigate: Stay on track with school and manage time.
Likelihood: 5
Users (Difficulty of using application, users don't have laptops/smartphones, etc)
Priority Level: 1
Level of Impact: 1
How to Mitigate: Reverse engineer a clicker for cheaper production
Likelihood: 1
Incorrect estimation of completion time. This would affect the quality of the final product.
Priority Level: 8
Level of Impact: 8
How to Mitigate: Constantly reassess our progress and evaluate our goals accordingly.
Likelihood: 5
Not enough testing, software could have bugs at release.
Priority Level: 6
Level of Impact: 6
How to Mitigate: Test frequently and often, especially after new implementations of key elements.
Likelihood: 4
Not enough features after completion.
Priority Level: 10
Level of Impact: 10
How to Mitigate: Keep work/motivation up throughout the semester.
Likelihood: 2
No professional design experience.
Priority Level: 1
Level of Impact: 1
How to Mitigate: Keep aesthetics simple.
Likelihood: 1
Application not being used.
Priority Level: 8
Level of Impact: 7
How to Mitigate: Keep application user friendly and design simple.
Likelihood: 5
Planning unnecessary features that may not be used.
Priority Level: 6
Level of Impact: 6
How to Mitigate: We shouldn’t try to anticipate what we need, before we need it.
Likelihood: 5
Members not working together/getting along.
Priority Level: 2
Level of Impact: 8
How to Mitigate: Be team players.
Likelihood: 1
No production server is set up to host the final product.
Priority Level: 3
Level of Impact: 10
How to Mitigate: Find a hosting service or host it ourselves.
Likelihood: 2
Create Account
Actors: All Users
Goal: Create a new account
Action: Populate database record with user’s info
The user will provide the information required to make a user. i.e. Name, Username, Email, Password. The information will then populate the database, and the user will have a new account.
Course Creation
Actors: Administrator
Goal: Create a new Course
Action: Create course and assign teacher to admin course.
The administrator will provide the information require to make a new course, i.e. Name, Term, Start-End Dates, Teacher, Subject. The information will then populate the database, and the administrator will now have a new course.
Survey Creation
Actors: Teachers
Goal: Create new survey
Action: Create multiple choice or short answer surveys.
The Teachers will be able to create a new Survey, and populate that Survey will Questions and then provide Answers to those Questions.
Take Survey
Actors: Student
Action: Ability to take surveys of courses they're enrolled in.
The Student will be able to take part in a Survey, by providing Answers to the Questions that in the Survey.
Add/Drop Course
Actors: Student/Administrator
Action: Users should be able to add or remove courses from the application.
Students will be able to add new Courses to their schedule, and drop Courses from their schedule. With this, Administrators will also be able to add and drop Students from Courses.
Edit Course
Actors: Teacher/Administrator
Action: Users should be able to add/remove users, add/remove description/surveys
Teachers and Administrator will be able to control the Students that are part of a Course, and also Delete Surveys that are part of these Courses.
Edit Survey
Actors: Teacher/Administrator
Action: Users should be able to change survey details
Teachers and Administrators will be able to edit a Survey that is part of a Courses.
Delete User
Actors: Administrator
Action: Administrators should be able to delete users
Administrators will be able to Delete users. Administrators will be able to delete Administrators.
Grade Surveys
Actors: Teachers
Action: Teachers should be able to grade surveys for a score
Teachers will be able to grade Surveys, and provide a score for the Survey.