A feedback loop is a common and powerful tool when designing a control system. Feedback loops take the system output into consideration, which enables the system to adjust its performance to meet a desired output response.
That's what Feedback Loop is aiming to achieve. By Facilitating the process of getting feedback from your users, you can use all of this precious feedback data and improve your products.
This web app automate the process of sending out surveys to your user base. Through your dashboard, you can send out mass surveys to all of you users by only providing a list of email addresses to send out to. This app handles the rest and the results of each survey is displayed on your dashboard in real-time as soon as any user responds.
To make things easier for your users, everything happens inside their email client, they are not redirected to any external pages, they just vote from within the body of the email address and the results are recorded on the backend of the application.
To use the application, you need to buy credits first. Each mass survey - regardless of the number of emails sent - costs 1 Credit. You can top up your credit count by buying credits which are sold in packs of 5 for 4.99$ each.
Please note that payment is handled by a third-party service to ensure the security of the transaction.
- Sign in using your google account
- Buy a pack of 5 credits to start sending out surveys
- Click on the floating create button in the the bottom right corner of your dashboard
- Fill out the survey name, email subject, email body, and list of email addresses to send the survey out to
- Sit back and watch you dashboard for real-time updates on the results of each survey
You can use the deployed version on Heroku through this link.
Make sure you have Node.js installed then follow the steps below:
-
Development Environment:
-
Fork the repo or download the current branch as zip.
-
cd
into the project directory and runnpm install
. -
Create an account for each of MongoDB Atlas, Google Developers, Stripe ,and SendGrid. Note that you can also use a local copy of MongoDB instead of Atlas.
-
Using the template below, create a new file
dev.js
in theconfig/
directory and fill in all the API keys required.module.exports = { googleClientID: '', googleClientSecret: '', mongoURI: '', cookieKey: '', stripePublishableKey: '', stripeSecretKey: '', sendGridKey: '', redirectDomain: 'http://localhost:5000' };
-
Run
npm run dev
-
-
Webhook Setup:
- To expose our localhost, we'll be using ngrok. Create an account and follow the steps provided to download the application executable. Place the downloaded file in the root directory of the Feedback Loop app.
- Run
npm run webhook
and note down your ngrok forwarding URL which points to your local server. - Go to SendGrid "Mail Settings", turn on "Event Notification", and paste your ngrok root URL followed by
/api/survey/webhook
in the "HTTP POST URL" input field.
Here's the list of the major libraries and frameworks used:
Tool | Use |
---|---|
Express and Node.js | Backend development |
Stripe | Online payment processor |
EJS | Templating language |
SendGrid | Email delivery service |
Materialize and Bootstrap | CSS frameworks |
Mongoose | MongoDB ODM |
Passport.js | Authentication |
- Improving styling and the overall front-end.
- Implementing data caching with Redis.
- Adding more surveying options. Currently the app only supports sending out surveys with "Yes" / "No" answers.
- Enhancing the dashboard by adding charts and helpful analytics.