Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
guaka opened this issue Nov 26, 2018 · 14 comments
Closed

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

guaka opened this issue Nov 26, 2018 · 14 comments

Comments

@guaka
Copy link
Contributor

guaka commented Nov 26, 2018

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
Copy link
Contributor Author

guaka commented Nov 26, 2018

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

image

Maybe below "Subscribe to community news"?

@RGHuynh
Copy link
Contributor

RGHuynh commented Nov 27, 2018

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

@simison
Copy link
Contributor

simison commented Nov 27, 2018

@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:

// Report successfull removal to stats
return statService.stat({
namespace: 'profileRemoval',
counts: {
count: 1
},
tags: {
status: 'removed'
}
}, function () {
// Return success
return res.json({
message: 'Your profile has been removed.'
});
});

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

@simison
Copy link
Contributor

simison commented Nov 27, 2018

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

@guaka
Copy link
Contributor Author

guaka commented Nov 27, 2018 via email

@simison
Copy link
Contributor

simison commented Nov 27, 2018

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
Copy link
Contributor Author

guaka commented Nov 27, 2018 via email

@guaka
Copy link
Contributor Author

guaka commented Nov 27, 2018 via email

@simison
Copy link
Contributor

simison commented Nov 27, 2018

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
Copy link
Contributor

simison commented Nov 27, 2018

@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
Copy link
Contributor Author

guaka commented Nov 27, 2018 via email

@simison
Copy link
Contributor

simison commented Nov 27, 2018

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
Copy link
Contributor

RGHuynh commented Nov 29, 2018

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

@RGHuynh
Copy link
Contributor

RGHuynh commented Dec 3, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants