General Feedback Mechanism (Implementation Ideas)
Primary mentor | @Ben Wolfe |
Backup mentor | @Burke Mamlin |
Assigned to | @Gaurav Paliwal |
- 1 Introduction
- 2 Workflow
- 3 Database Schema
- 3.1 Tables
- 3.1.1 feedback_feedback
- 3.1.2 user_property
- 3.1.3 feedback_severity
- 3.1.4 feedback_status
- 3.1.5 feedback_predefined_subject
- 3.1 Tables
- 4 UI Mockups
- 5 Java Classes
- 5.1 feedback
- 5.1.1 Attributes
- 5.1.2 functions
- 5.2 severity
- 5.2.1 Attributes
- 5.2.2 Functions
- 5.3 status
- 5.3.1 Attributes
- 5.3.2 Functions
- 5.4 subject
- 5.4.1 Attributes
- 5.4.2 Functions
- 5.1 feedback
- 6 Timeline
- 7 Goals
- 7.1 Mid Term Goals
- 7.2 Final Goals
Introduction
Basic Description about this module is available here .
Workflow
Flow Chart for Feedback Submission
Administrator FLOW Chart for Feedback Module
Use Case OpenMRS Feedback Module
Database Schema
Tables
Relations that will be required for the General Feedback Mechanism
feedback_feedback
user_properties
feedback_severity
feedback_status
feedback_predefined_subject
In order to give clear distinction between the module tables and the other tables, the tables created while installing will have prefix “feedback” , this will help to prevent the name collision with other modules.
feedback_feedback
Attribute Name | Intention | Properties |
feedback_id | This will be the unique ID number to identify each and every feedback. |
|
| This will be the user id of the user, that has submitted the feedback. |
|
subject | This is the subject of the feedback that the user is submitting. |
|
content | This is the content of the feedback that the user has submitted. |
|
severity | This is used to tell the severity of the feedback. |
|
comment | This field is used to store the administrator action over the feedback |
|
status | This is used to store the current status of the feedback. |
|
| This is the used to store the time at which the user has made submitted the feedback |
|
| This is the used to store the time at which the administrator has made the comment on feedback. |
|
user_property
Following property will exist for all system users specific to the feedback mechanism module :
creator
email_id
phone_number
receipt_preference
followup_preference
feedback_severity
Attribute Name | Intention | Properties |
index | To store the index of the severity table | AUTO_INCREMENT , NOT NULL |
severity | This stores the predefined severity level by the administrator. I have intentionally not declaring it as a foreign key to the relation feedback(severity). | Varchar(50) |
feedback_status
Attribute Name | Intention | Properties |
index | To store the index of the severity table | AUTO_INCREMENT , NOT NULL |
status | This stores the current status of the feedback that is submitted by the user. I have intentionally not declaring it as a foreign key to the relation feedback(status). | Varchar(50) |
feedback_predefined_subject
Attribute Name | Intention | Properties |
index | To store the index of the severity table | AUTO_INCREMENT , NOT NULL |
subject | This stores some of the predefined subject of the feedback, which user MAY choose while submitting the feedback. | Varchar(50) |
UI Mockups
Header
Feedback Submit Form
Admin Panel for Predefined Subject
Admin Panel for Severity
Admin Panel for Status
AdminList view for Feedback Module
Manage Feedbacks
Manage Feedback
Feedback Module Preferences
Java Classes
feedback
Attributes
Private int feedbackId
Private int creator
Private String subject
Private String content
Private String severity
Private String comment
Private String status
Private Date dateChanged
Private Date dateCreated
functions
Public setTicket ( int feedbackId )
Public setSubject ( int feedbackId , String subject )
Public setContent ( int feedbackId , String content )
Public setSeverity ( int feedbackId , String severity )
Public setComment ( int feedbackId , String comment )
Public setStatus ( int feedbackId , String Status )
Public setSubject ( String subject )
Public setContent ( String content )
Public setSeverity ( String severity )
Public setComment ( String comment )
Public setStatus ( String Status )
Public int getFeedbackId ( int feedbackId )
Public int getCreator ( int feedbackId )
Public String getSubject ( int feedbackId )
Public String getContent ( int feedbackId )
Public String getSeverity ( int feedbackId )
Public String getComment ( int feedbackId )
Public String getStatus ( int feedbackId )
Public Date getDateChanged ( int feedbackId )
Public Date getDateCreated ( int feedbackId )
severity
Attributes
Private String severity ;
Private int index ;
Functions
Public setSeverity ( String severity ) ;
Public setSeverity ( int index , String severity ) ;
Public getSeverity ( int index ) ;
Public int getIndex ( String severity ) ;
status
Attributes
Private String status ;
Private int index ;
Functions
Public setStatus ( String status ) ;
Public setStatus ( int index , String status ) ;
Public getStatus ( int index ) ;
Public int getIndex ( String status ) ;
subject
Attributes
Private String subject ;
Private int index ;
Functions
Public setSubject ( String subject ) ;
Public setSubject ( int index , String subject ) ;
Public getSubject ( int index ) ;
Public int getIndex ( String subject ) ;
Timeline
Timeline | Outcome |
26 April – 15 May | -SRS Submission/fixation , UI finalization- |
15 May -20 May | -Basic Module Design , Database , Configuration will be ready- |
20 May -5 June (2 Days OFF for exams) | Administrator panel to be ready |
6 June – 15 June | User panel to be ready |
15June – 30 July | Testing , mailing list reviews , changes to be done , Documentation |
30 July – 15 August | Finalization and final polishing |
Goals
Mid Term Goals
The basic module will be ready that will be having all the functionality listed on this page.
Final Goals
1. Basic General Feedback Module ready with test cases
2. Proper Documentation
3. Adding Extra Credit functionality in case time allows.