|
1 | 1 | HELPq
|
| 2 | +====== |
2 | 3 |
|
3 | 4 | An extensible, customizable real-time queue system, built with [Meteor](https://www.meteor.com/).
|
4 | 5 |
|
5 |
| -** This is beta release. This queue is fully functional, but code will move around and features will be added over the next few months. Keep checking back for the most up to date. ** |
| 6 | + |
| 7 | + |
| 8 | +[Go directly to setup information](#bring-helpq-to-your-hackathonclassroom) |
| 9 | + |
| 10 | +What is this? |
| 11 | +------------ |
| 12 | + |
| 13 | +HELPq was originally built for [HackMIT](https://hackmit.org), but has been used at hackathons like [Blueprint](http://blueprint.hackmit.org), [Meteor Summer Hackathon 2015](http://meteorhack.meteor.com/), [WHACK](http://wellesleyhacks.org/), [MakeMIT](http://makemit.org/) and [WildHacks](http://wildhacks.org/) (among others!). |
| 14 | + |
| 15 | +It is a real-time help queue and mentor management application, targeted at hackathons and classrooms, where there is a need for issues to be claimed and satisfied within minutes. It includes a simple interface for requesting tickets, claiming tickets, administrating users/mentors, and examining metrics. |
| 16 | + |
| 17 | +It is built with an emphasis on three fundamental user experiences: |
| 18 | + |
| 19 | +### Keep it simple |
| 20 | + |
| 21 | +Students should be able to log in and do exactly what they want - submit a ticket. Nothing more complicated than that. |
| 22 | + |
| 23 | +### Pull, don't Push |
| 24 | + |
| 25 | +Mentors should not receive any type of push notifications when tickets are requested. Instead, mentors should be pulling from the mentor view and claiming tickets whenever they see them. That way, mentors will not get annoyed by a feed of requests and instead provide high-quality advice because they are themselves actively seeking out people to help. |
| 26 | + |
| 27 | +### In-person interaction |
| 28 | + |
| 29 | +Mentors can claim tickets, complete tickets, or choose to reopen them. Mentors can only claim a single ticket at any given time. There is no ability to message a student through the app in order to encourage a mentor to find that student and help them in person. A student can, however, choose to include other contact information in case contact is needed to clarify location. |
| 30 | + |
| 31 | + |
| 32 | +Features |
| 33 | +--------- |
| 34 | + |
| 35 | +### Home |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +#### 1 - Ticket Request |
| 40 | + |
| 41 | +Users can request a ticket, by providing their problem description, where they are, and how they can best be contacted. This copy can be easily modified in one of the config files! |
| 42 | + |
| 43 | +Once submitted, users have an option to cancel their ticket ("Nevermind!"). Tickets will also expire based on a value determined by the admin. |
| 44 | + |
| 45 | +#### 2 - Announcements |
| 46 | + |
| 47 | +Admin can send out announcements with varying colors through the admin dashboard, which appear on on the home screen. |
| 48 | + |
| 49 | +#### 3 - Mentor Status |
| 50 | + |
| 51 | +The mentor status bar shows how many mentors are currently online, and calculates the expected wait time based on historical ticket claim and completion times. |
| 52 | + |
| 53 | +#### 4 - Current Queue |
| 54 | + |
| 55 | +The current queue shows who is currently in the queue and which people are currently receiving help. Because the nature of questions available mentors can address are highly variable, tickets will often not be answered in order of submission. |
| 56 | + |
| 57 | +### Mentor |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | +If a user is a mentor, they will have an inbox icon in the top right they can click to navigate to the mentor view. If the HELPq is being viewed on mobile or a very narrow window, the app is responsive and will pull up a navigation bar on the bottom for Home, Mentor, and Profile. |
| 62 | + |
| 63 | +Mentors should be mobile, and the HELPq is designed for mentors to browse the help tickets on their smart phones. |
| 64 | + |
| 65 | +#### Claim |
| 66 | + |
| 67 | +You can claim a ticket by selecting "Claim Ticket". This will notify the user that you are on your way! Once a ticket is claimed, you cannot claim another ticket unless you complete or reopen the ticket. |
| 68 | + |
| 69 | +#### Complete |
| 70 | + |
| 71 | +Once you are done working with a student, you should mark that ticket as completed. This will give the student an opportunity to rate their experience with you! |
| 72 | + |
| 73 | +#### Reopen |
| 74 | + |
| 75 | +You can choose to reopen the ticket if you feel like you could not adequately solve the problem, or think someone would be better at addressing it. |
| 76 | + |
| 77 | +### Admin |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | +The admin dashboard has a lot of useful features for hackathon organizers or class staff! Shown above is the Metrics dashboard. |
| 82 | + |
| 83 | +#### Announce |
| 84 | + |
| 85 | +The announcement section allows you to create announcements for the home screen, with a variety of different colors. |
| 86 | + |
| 87 | +#### Users |
| 88 | + |
| 89 | +The users table lets you see all of the current users, and mark them as mentor or admins. You can also edit other user's information - of course, be responsible with this power! |
| 90 | + |
| 91 | +#### User Creation |
| 92 | + |
| 93 | +Login is done through Github or Facebook (which can be enabled or disabled in a config file), but you can manually create user accounts. |
| 94 | + |
| 95 | +This takes a CSV formatted string, which will then check your format, and create users asynchronously. If a user's account creation fails, the result will be shown. |
| 96 | + |
| 97 | +This feature was designed for use in classroom settings, or other restricted access settings, so that you can create an account for each student and a password unique to them. |
| 98 | + |
| 99 | +This feature is also useful for when a user does not want to login with Facebook or GitHub (even though only public information is retrieved). |
| 100 | + |
| 101 | +#### Tickets |
| 102 | + |
| 103 | +The tickets table will show you a history of all tickets. |
| 104 | + |
| 105 | +- Green: tickets have been completed |
| 106 | +- Red: tickets that have been cancelled |
| 107 | +- Yellow: tickets that have expired |
| 108 | +- Grey: tickets that are currently claimed |
| 109 | + |
| 110 | +#### Metrics |
| 111 | + |
| 112 | +The metrics pane shows a lot of information regarding the usage of the queue. |
| 113 | + |
| 114 | +The first is a metrics summary, which includes average, median, and std dev of response time and completion time, as well as the raw average of all ticket ratings. |
| 115 | + |
| 116 | +The leaderboard also shows the top 10 mentors with ratings. Their rating is not a raw average of their tickets, but instead blurred slightly with weighting. This is to avoid the situation where a user with a single 5 star rating would be listed above another user with four 5 star ratings and a single 4 star rating. |
| 117 | + |
| 118 | +#### Feedback |
| 119 | + |
| 120 | +The feedback section is a feed of all mentor feedback, with star rating and a note. Bad ratings are highlighted. |
| 121 | + |
| 122 | +#### Settings |
| 123 | + |
| 124 | +Settings allows you to adjust various settings in the queue. Right now, you can open/close the queue and set the time for when tickets expire. |
| 125 | + |
| 126 | + |
| 127 | +Usage Data |
| 128 | +---------- |
| 129 | + |
| 130 | +We've used this at a bunch of hackathons and we have some data on them :) |
| 131 | + |
| 132 | +| Hackathon | Date | Response Time (avg, median, std dev) | Completion Time (avg, median, std dev) | Rating Avg | Total Users | Total Mentors | Total Tickets| |
| 133 | +|-----------|------|--------------------------------------|----------------------------------------|------------|-------------|---------------|--------------| |
| 134 | +|**Blueprint High School Hackathon 2015** | 2/22/2015 | 5 min 11 sec, 1 min 26 sec, 9 min 54 sec | 10 min 37 sec, 6 min 29 sec, 13 min 23 sec | 4.9 | 193 | 64 | 170 | |
| 135 | +|**Meteor Summer Hackathon 2015** | 8/8/2015 | 6 min 21 sec, 2 min 29 sec, 10 min 58 sec | 5 min 46 sec, 1 min 26 sec, 12 min 3 sec | 4.9 | 68 | 66| 37 | |
| 136 | +|**HackMIT 2015** | 9/19/2015 | 9 min 37 sec, 2 min 48 sec, 28 min | 16 min 30 sec, 10 min 1 sec, 22 min 59 sec | 4.7 | 425 | 242 | 502 | |
| 137 | +|**WHACK 2015** | 10/3/2015 | 7 min 55 sec, 4 min 56 sec, 12 min 30 sec | 18 min 19 sec, 13 min 2 sec, 17 min 27 sec | 4.9 | 87 | 39 | 94 | |
| 138 | + |
| 139 | + |
| 140 | +Bring HELPq to your hackathon/classroom! |
| 141 | +======================================== |
6 | 142 |
|
7 | 143 | Requirements
|
8 | 144 | ------------
|
9 | 145 |
|
| 146 | +Make sure that you hate `meteor` installed. |
| 147 | +You can install Meteor through their [website.](https://www.meteor.com/) |
| 148 | + |
| 149 | + |
10 | 150 | Quickstart
|
11 | 151 | ----------
|
| 152 | + |
| 153 | +#### Mac OS X, Linux |
| 154 | + |
12 | 155 | ```sh
|
13 | 156 | ./create_config
|
14 | 157 | meteor
|
15 | 158 | ```
|
16 | 159 |
|
| 160 | +#### Windows: |
| 161 | + |
| 162 | +Copy the `private/config.json.template` into `private/config.json` |
| 163 | + |
| 164 | +```sh |
| 165 | + meteor |
| 166 | +``` |
| 167 | + |
| 168 | +Deploy |
| 169 | +------ |
| 170 | +**IMPORTANT** |
| 171 | + |
| 172 | +Without login configuration, you will only be able to login with the admin username and password specified in `private/config.json`. |
| 173 | + |
| 174 | +To change the password of the admin account after deployed, you must manually remove the admin user through the meteor mongo shell, and then redeploy with a new admin username/password value. *This will be changed pretty soon* |
| 175 | + |
| 176 | +Deploy with: |
| 177 | + |
| 178 | +```sh |
| 179 | + meteor deploy <your domain name>.meteor.com |
| 180 | +``` |
| 181 | + |
17 | 182 | Configuration
|
18 | 183 | -------------
|
19 |
| -For front end branding, edit `client/stylesheets/scss/_branding.scss` |
20 | 184 |
|
21 |
| -To edit text, edit `lib/constants.js` |
| 185 | +#### Login |
22 | 186 |
|
23 | 187 | To configure login, edit `private/config.json`
|
24 | 188 |
|
25 | 189 | In `private/config.json`, provide the appropriate application id/secret combinations
|
26 | 190 | for either facebook or github authentication, or choose to disable them.
|
27 | 191 |
|
28 |
| -This will also contain the admin account username and password you'll use for the initial login. |
| 192 | +#### Branding |
29 | 193 |
|
30 |
| -Deploy |
31 |
| ------- |
| 194 | +For front end branding, edit `client/stylesheets/scss/_branding.scss` |
| 195 | + |
| 196 | +In this file, you will find brand variables and classes for the main splash and main banner. |
| 197 | + |
| 198 | +You can edit these and observe the changes. There are also comments to explain what each setion does. |
| 199 | + |
| 200 | +#### Copy |
32 | 201 |
|
33 |
| -Deploy with `meteor deploy <your domain name>.meteor.com` |
| 202 | +To edit copy, edit `lib/constants.js`. |
34 | 203 |
|
35 |
| -Login as an Admin to grant yourself mentor/admin access using the username/password specified in |
36 |
| -your `config.json` file. |
| 204 | +In this file, you will find a place where you can change various strings across the site, including the title of your app. |
| 205 | + |
| 206 | +Orientation |
| 207 | +----------- |
| 208 | + |
| 209 | +The queue has been found to be most effective with an orientation with mentors and a tight integration with the way a hackathon/classroom manages mentorship. If you'd like to talk about how this could work for your hackathon/classroom, don't hesitate to email me at [[email protected]](mailto:[email protected])! |
| 210 | + |
| 211 | +Feedback |
| 212 | +-------- |
| 213 | + |
| 214 | +Have you used HELPq or are planning to use it at your hackathon? I'd love to hear how effective it was, what kinds of metrics you got, and what kinds of things people wanted. Don't hesitate to email me at [[email protected]](mailto:[email protected])! |
| 215 | + |
| 216 | +Contributing |
| 217 | +------------ |
37 | 218 |
|
| 219 | +I'd love to take pull requests! Please read the [Contributing Guide](CONTRIBUTING.md) first! |
0 commit comments