A responsive web application built with next-js to let User type A (e.g. teacher/speaker) collect feedback from users of type B (e.g. audience). User type B can share their feedback anonymously in less than 30 seconds.
https://docs.google.com/spreadsheets/d/1caZhcuWzN1u0i26zU5BxitP3eqygxm1YQzY7vDRISqs/edit?usp=sharing
User A (teacher)
- Signup / Login
- Dashboard user/[username]
- User not Found page
- Create new Survey (Name, Slug)
- Add Questions
- Pick question type (Premium Feature)
- Customize Question/Answers
- Edit Questions
- Delete Questions (also when responses exists)
- [ ] Save Survey as Draft- [ ] Publish Survey
- Add Questions
- Get URL onClick
- View Survey Results (Statistics)
- Delete Survey (also when questions exists)
- Create new Survey (Name, Slug)
- Logout
User B (audience)
- Open survey via URL
- Fill out form
- Thank you page on Submit
User A
- Redirect on Login (Authentication - User Login - 1:50:00)
- Reset Password
- Duplicate Survey
- Filter results by date (from dd.mm.yy to dd.mm.yy)
- Create own template
- Fancy UI for statistics & charts
- optimize design also for web
- Edit survey name + URL
- Cookie & Privacy settings
- accept terms and conditions
- double opt in via mail
User B Landingpage elements to interact live with USER A
- "Let's have a break" - Button
- Input Field to submit a question/comment
- Button to Start Survey
- See survey results after submit
- optimize design also for web
- set a cookie to let every user participate only once
- Define Structure
- Create a PostgreSQL database and table(s)
- Connect to and query information from database
ENUM question_type { x_slider y_slider gauge binary }
- E2E - Cypress (in progress)
- Unit Tests - Jest (in progress)
- for all major components
- Deployed to Heroku https://myquicksy.herokuapp.com/
- Next.js
- Postgres.js
- Jest
- Cypress.io
- GitHub Actions
- emotion/core
- nextcookies
- camelcase-keys
- ley
- dotenv
- recharts
Install postgres on your machine: https://www.postgresql.org/
Start postgres
postgres
Login with super-User on Windows:
psql -U postgres postgres
on mMac:
psql postgres
Setup new user and new database
CREATE DATABASE <database name>;
CREATE USER <user name> WITH ENCRYPTED PASSWORD '<user password>';
GRANT ALL PRIVILEGES ON DATABASE <database name> TO <user name>;
Connect to the database using new user
quit psql
\q
and reconnect with newly created user
psql -U <user name> <database name>;
Rename example.env
to .env
and insert your data
\_PGHOST=<localhost>
\_PGDATABASE=<database_name>
\_PGUSER=<user_name>
\_PGPASSWORD=<password>
\_CSRF_TOKEN_SECRET=<secret_token>
Add .env
to .gitignore!
Running the migrations To set up the structure and the content of the database, run the migrations using Ley:
yarn migrate up
To reverse the last single migration, run:
yarn migrate down
_npm run dev_
or
_yarn dev_
Open http://localhost:3000 with your browser to see the result.
Deploy on Heroku https://dashboard.heroku.com/
- create a new app
- Connect to your Github Repo
- Install the Heroku Postres Add-on
- Deploy
_yarn jest_
yarn cypress start