Trustroots / trustroots

Travellers' community for sharing, hosting and getting people together.
https://www.trustroots.org
GNU Affero General Public License v3.0
398 stars 137 forks source link

At sign-up: how did you hear about Trustroots? #879

Closed guaka closed 5 years ago

guaka commented 5 years ago

At sign-up: "How did you hear about Trustroots?"

This will make it much easier to know what to focus on in terms of growth

Initially just storing them in the database is enough. We don't need to show this anywhere. I can make little shell script to see these and later build some kind of /admin tool (once I can)

guaka commented 5 years ago

Went through a local signup, looks like it could be right on the first page:

image

Maybe below "Subscribe to community news"?

RGHuynh commented 5 years ago

Is this issue still open? If it is, can I take a crack at it.

simison commented 5 years ago

@RGHuynh Sure!

@guaka can you think of a short list of fixed options? We should also add "other". Should this be a multi-choice or single-choice option?

It could be a list like this between "newsletter" checkbox and rules text, something like:

image

To not have skewed answers, they'll need to be in random order and there should be "other" option.

At the backend side, it should be just sending the stat to InfluxDB (you don't need to be running InfluxDB locally, I believe in development version this just console.logs the stat). If you run our Docker setup, it has InfluxDB installed.

Here's an example how to log stats:

https://github.com/Trustroots/trustroots/blob/b4c640da35014e19664014c7904c250f52848ec8/modules/users/server/controllers/users.profile.server.controller.js#L664-L678

We don't need to store this data in the actual MongoDB for profiles.

simison commented 5 years ago

Docs for how to build form elements in Trustroots: https://getbootstrap.com/docs/3.3/css/#checkboxes-and-radios

guaka commented 5 years ago

I'd like to get this started with just an open text field, no options

On Tue, 27 Nov 2018 at 19:35, Mikael Korpela notifications@github.com wrote:

Docs for how to build form elements in Trustroots: https://getbootstrap.com/docs/3.3/css/#checkboxes-and-radios

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Trustroots/trustroots/issues/879#issuecomment-442168173, or mute the thread https://github.com/notifications/unsubscribe-auth/AADVyEBZcMTdCzaC1ve7yF1DnYlRF-gLks5uzYXsgaJpZM4Yy3VN .

-- sent from my phone

simison commented 5 years ago

I'd like to get this started with just an open text field, no options

A fixed list would be quite a bit easier store and quantify. 🤔 Less work to actually pull out the numbers afterwards and compare over time.

guaka commented 5 years ago

Yeah but I first want to see what people put there if they don't see any options. E.g. if "Facebook" is an option people will never answer "an my friend's Facebook wall" (which I heard from our current guests).

On Tue, Nov 27, 2018 at 7:50 PM Mikael Korpela notifications@github.com wrote:

I'd like to get this started with just an open text field, no options

A fixed list would be quite a bit easier store and quantify. 🤔 Less work to actually pull out the numbers afterwards and compare over time.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Trustroots/trustroots/issues/879#issuecomment-442173120, or mute the thread https://github.com/notifications/unsubscribe-auth/AADVyGFtvC8eMPHWckfn3moiatvROx9jks5uzYlcgaJpZM4Yy3VN .

guaka commented 5 years ago

Initially I am not interested in quantifying. And when we want to quantify specific options, we can simply forget about the data, it's not essential data, just good to see what's going on, in a way. I'd like this as part of an admin dashboard, to get some ideas about recent signups (e.g. which countries, which tribes, do people complete profiles, did they already write their first message?) to know what makes sense to focus on in terms of growth.

simison commented 5 years ago

Right, makes sense. Thanks for elaborating!

So on technical side for InfluxDB we'll need to store "fields", not "tags":

statService.stat({ 
   namespace: 'profileSignupHowHeardAboutUs',
   fields: { 
     freetext: "Reason here..."
   } 
}, callbackFunction );
simison commented 5 years ago

@guaka do you want to collect longer replies or short replies? Depending on which ones you want to encourage, you'd use either single line input or multi line. I'd suggest single line.

guaka commented 5 years ago

Yeah a single line is good.

Not sure if it should go into influx. Isn't influx more for analytics type data that goes into grafana? (which is now public) On Tue, Nov 27, 2018 at 8:16 PM Mikael Korpela notifications@github.com wrote:

@guaka do you want to collect longer replies or short replies? Depending on which ones you want to encourage, you'd use either single line input or multi line. I'd suggest single line.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

simison commented 5 years ago

Influxdb itself isn't public, only what we publish in Grafana's public "Trustroots" org.

We can add another private view to Grafana or you can just query InfluxDB directly.

Another option is to send replies to some pre-defined email but InfluxDB seems more straightforward to implement.

RGHuynh commented 5 years ago

How's the input for "how did you hear about Trustroots?" validated in the backend?

RGHuynh commented 5 years ago

Right, makes sense. Thanks for elaborating!

So on technical side for InfluxDB we'll need to store "fields", not "tags":

statService.stat({ 
   namespace: 'profileSignupHowHeardAboutUs',
   fields: { 
     freetext: "Reason here..."
   } 
}, callbackFunction );

I'm having some issue implementing this function into the application. I'm not sure where is the correct file to put this function in.