ryczko / formslab Goto Github PK
View Code? Open in Web Editor NEWππ Form builder for anonymous surveys, polls, and collecting feedback. Experience management solution.
Home Page: https://formslab.vercel.app
License: MIT License
ππ Form builder for anonymous surveys, polls, and collecting feedback. Experience management solution.
Home Page: https://formslab.vercel.app
License: MIT License
In the future, we will want to support several languages, and give users the ability to change them.
In the first step, we need to add and configure i18n, and transfer all texts to the en.json file.
Consider implementing Socket.IO to replace the refresh button on /survey/answer/:id
In order to reduce spam, we need to block the ability to send responses to the same survey from one device.
When implementing, we should use localStorage. You should create an array in it, e.g. answeredSurveys
and store all ids of surveys that user answered. When user is sending answer we should check if the surveys is in array and if it is block an action (eg. navigate to home page with toast βyou already answered in the surveyβ)
This solution will not guarantee sending several replies by the user (the user can always switch to Incognito mode or clear the browser's memory), but it will only limit this possibility, but because at the moment we do not require logging in to send replies, this is the only solution.
On the survey results page, the user should only be able to view responses with selected emojis.
For this purpose, we should create a multiselect component containing all selected emojis and display responses in accordance with the selected values.
Add error handling for the entire application
Better UX will be to add hot-toast message instead of logging it in console.
Example:
While creating an account with email which is already in use we got only error log in console.
Add storybook for each component
Deleting accounts does not work properly for now.
If you go to settingsManager
file in handleOnAccountDelete
you will notice that user.delete()
will not working when user is logged to account since long time. To fix this we need reauthorize user after confirming the deletion of the account. We need display correct authorization method in the modal and after that remove account.
To see settings and delete account option you need to add NEXT_PUBLIC_REMOVE_ACCOUNT=TRUE
to your .env
file.
Add the ability to filter responses:
On the page with survey results, the user should be able to view only answers with additional feedback
For this purpose, we should create a checkbox that will allow displaying only such answers.
Add pagination to my surveys page using usePagination
hook. Similarly to how it is done on surveys answers page.
Sometimes components take a long time to load. To improve the user experience, we should display a progressbar informing about the progress of loading a new page. This will be especially useful when you want to fetch data using getServerSideProps
.
In case of problems you can follow this article: https://blog.logrocket.com/how-to-build-a-progress-bar-indicator-in-next-js/
We need to create an instruction for contributors describing the process of starting the project locally and creating contributions
On survey creation page currently, when the user does not enter a title, the create button is blocked, but the user is not informed why.
After the user starts completing the input and leaves it empty or clicks the create input button, we should display a message, e.g. add a red border and text with information that the field is required.
If necessary, we can use an external library. It would be good to create a solution that will allow you to easily extend validation in the future, for example, when we will want to validate other fields.
Steps to reproduce:
Currently, the application does not allow to log in and throws an error in the console.
If the account already exists, it should be linked to the existing account when logging in.
Configure testing tools
Inactive surveys in the list of surveys should be distinguished, for example, with a red background
There can be many answers to one survey. We don't need to display them all on one page. We should enable pagination and display e.g. 20 answers on each page.
At the moment, we only limit the number of displayed components on the page, not the number of answers downloaded from the database.
It would be nice if the pagination functionality was reusable.
Fix scrolling on pages with smaller height.
Remove github corner on device smaller than 300px
While creating a new account, a password consisting of only spaces is also accepted as a password
Emoji library used in our project provided component. Thanks to that we donβt need more use native emojis and provide the same emoji for all platforms.
I want to delete employee-pulse.vercel.app account.
We need change eslint and tsconfig to reduce potential bugs in the future.
For this, the most important for us is to remove all @typescript-eslint
rulses from eslint that are set to 'off', and set strict: true
in tsconfig.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.