Awesome
Lestdecide.us
Ask a question, vote and view the results directly from your email.
What is lestdecide.us
It’s a new friend to include in your mailing list.
It’s a completely transparent and light system to do surveys by email between your friends or your mailing list storing the responses received.
Why?
We made it just for fun during the 2009 rails rumble with the idea that everybody could take advantage of our idea. We don't have nothing to hide about the behaviour of our bot, so it goes OpenSource, because maybe you prefer to have your mail privacy under you control, so do us.
Install
Yes, it's a rails app so follow the normal convections, only I have to remark some config details and tools we made to facilitate the setup.
gems
We use a bunch of gems that you have to install before firing up the server:
sudo gem install gravatar youtube-g xml-simple hpricot javan-whenever lockfile thoughtbot-factory_girl cucumber rspec rspec-rails webrat nokogiri
db setup
Now you can setup the "config/database.yml" file. You can also run the populate task if you want, to have some data in your database rake db:remake
bot setup
Setup the "config/config.yml" where you will have to setup config details for the account that the bot will use and the domain of the applicaction:
host: domain.com
admin_mails: "your@mail.com"
bot_mail: bot@domain.com
bot_mail_pass: yourpass
bot_mail_server: mail.domain.com
bot_mail_domain: domain.com
to start the bot we recomend to prepare a cron executing the rake task with your desired frequency.
rake ldu:mail_digest
test suit
You can run the test suit with:
rake test features.
Limitations
In this first phase we will focus on questions that can be voted on a binary basis, that is +1 or -1.
To use it with your friends
Simply send an email with the question to your friends putting in copy your new friend:
Your friends must answer to your question in the same way, sending the email to all the friends, including your new friend.
The vote should be put anywhere in the body of the message, only remember to put it in a line by itself.
For now we only allow to vote as +1 or -1.
To use it in your mailing list
Just add to your mailing list your new friend:
Add it directly without requiring email confirmation and configure it so it receives every email (not the digest mode).
Commands
In any thread of a question, and always including all friends in copy, or sending an email to the mailing list you can send one of these commands:
::results:
Your new friend will reply with the latest voting results.
::web::
Your new friend will return a link to the web page with the current voting results.
Web Interface
While e-mail is enough to use your new friend you can also check out the website where you can view the current status.
Simply ask your new friend for the URL with the command:
::web::
Remember that if you run a command you have to send the mail by replying to the thread of the survey, ie, respecting the subject and putting everyone in copy.
An example between a group of friends
Start of question
Someone sends an email to pepe@domain.com, juan@domain.com marta@domain.com and our new friend: bot@letsdecide.us with this subject "Do you like this t-shirt?"
In the message body put whatever you want, the important thing for our friend is that the question ends with a question mark.
First vote
juan@domain.com things the t-shirt looks cool, so he responds to the email using the reply_all button, ie, replying to all, including our new friend, and leaving the subject as it was.
In the body of the response he puts whatever he wants but makes clear what his vote is by putting it in a single line:
+1
# Second vote
marta@domain.com thinks the t-shirt sucks, but doesn’t feel like explaining why exactly... so she simply replies to the email with everyone in copy and puts her brief but significant:
-1
A comment
pepe@domain.com still has doubts and doesn’t want to vote yet, so he responds explaining his doubts, but as he doesn’t write a +1 or a -1 our new friend does not count any votes.
Results
Any participant at any time can ask our new friend how the voting is going by sending an email to everyone including in the body the following:
::results::
Our friend will reply sooner or later with an email with the results.
An example of a mailing list
To register our new friend
Our new friend needs to hear everything that is happening in the list, in addition to being able to send emails to the list.
We need to register it to the list in non-digest mode, i.e, he should not receive all the emails of day in a single emai, and he should not have to send a confirmation email when registering to the list.
# Start of question
Our new friend will receive all emails but will only pay attention to the emails ending with a question mark.
When you want to conduct a survey to the list just end the subject of the email with a question mark.
So juan@mailing-list.com sends an email to the mailing list “Do you like this shirt?" And doesn’t have to put in copy anyone else. This is important as it’s the way for our friend to differentiate whether the question is being sent to a mailing list or group of friends.
Votes
The comments and/or votes happen just like the example of a group of friends.
Results
As in the example of a group of friends any member of the list can ask for the current voting results writing in the body of the email:
::results::
The mail must be sent to the list and not directly to our friend.
The response of our friend will be sent to the list.
Who made this
As we said we made this for the 2009 rails rumble under the mallorca's team. ###Team members Fernando Guillen