gbowne1 / codebooker

This is a book recommendation app created with React 18.2 and MUI for coders/programmers looking for reccomendations to books on programming/coding to read
MIT License
31 stars 56 forks source link

[FEAT] Add a Help feature #123

Closed gbowne1 closed 1 year ago

gbowne1 commented 1 year ago

Add a help feature.

We have a Help button in the (R) user icon button dropdown menu.

It does not have anything associated with it.

BlackBond06 commented 1 year ago

Hi @gbowne1 please assign this issue to me. Also, explain what the expected functionality of this feature is.

gbowne1 commented 1 year ago

@BlackBond06

This feature basically is a help system for users who may be having issues using the app, and may provide the user with contact information. It would describe what to do when users have issues with the app. It may also include some directions/instructions on using the app. It would be available by using the icon in the dropdown menu under the (R) user icon/avatar

BlackBond06 commented 1 year ago

@gbowne1 Cool. I'm thinking we can use A.I for this one. Like those automated personal assistants on Web sites. We can give it answers to common problems we think user will come across. But if a user ask a question that isn't covered in the answers we supplied, we can just display an email form and ask that the user describ the problem and mail to the support team. What do you think ?

gbowne1 commented 1 year ago

I think thats a bit beyond the scope just yet. Most problems could be described easily in a page. Could just breadcrumb that page. We don't have users yet, so ideally the best way would be to have a small number of users test the application and describe the problems they had. We will have to collect some data and try and use it ourselves to come up with some good solutions. So, maybe it's best for now to provide just a form email and support team contact. Add Formik and Yup to do all the form and form validation stuff.

BlackBond06 commented 1 year ago

I totally agree. I will begin working on it today. Will formik handle the actual email sending or do I have to use nodemailer ?

gbowne1 commented 1 year ago

nodemailer will handle emails just fine. it's already installed. Its handling password reset etc functionality. Formik and Yup handle forms really well.

AI is fine, but it's overkill, at least for now. We need to collect the data on problems people are having.. but also provide adequate documentation on how to use the App. Later on we can write some FAQ's.

gbowne1 commented 1 year ago

https://www.npmjs.com/package/formik https://formik.org

https://www.npmjs.com/package/yup It's a good really object schema validatior..

https://www.youtube.com/watch?v=a94FOvaBomQ&list=PLC3y8-rFHvwiPmFbtzEWjESkqBVDbdgGu

BlackBond06 commented 1 year ago

Okay. Thanks for the resources

gbowne1 commented 1 year ago

yvw! I found the videos helpful. I can help with Yup.

BlackBond06 commented 1 year ago

Hi @gbowne1 I have been going through the support page for a couple of popular websites for inspiration and a common feature I noticed, is the presence of a search bar just below the top of the support page, where users can enter their query for help. I know at this stage of the app, the search bar may not do anything since we don't have data on the problems user have, but should I include it in the design in addition to the form, since it is a common feature of support pages ?

gbowne1 commented 1 year ago

that is a great idea. I had not thought of that. This is why I started this project. People usually have way better ideas for designs and features than me :-} and I agree this sort of thing would be handy.

BlackBond06 commented 1 year ago

Hi @gbowne1, I need clarification about the form in help feature. Should it just have one input element for the user's email and a textarea for the query description ? or is there any other information we might need from the user?

BlackBond06 commented 1 year ago

This is what I have so far:

https://github.com/gbowne1/codebooker/assets/100074330/b961e6af-2968-47df-845a-6c906edf7028

gbowne1 commented 1 year ago

@BlackBond06 I would think email, username and a text area would be great. Eventually we can replace with a more robust system with a scenario based help system including all the 'What to do if x or y happens' type system. That looks great.

BlackBond06 commented 1 year ago

So I can proceed with what I have so far ?

gbowne1 commented 1 year ago

Yes you can.

BlackBond06 commented 1 year ago

Hi @gbowne1, Aside sending the query from the form to the codebooker mail address, should it be saved in the db as well ?

gbowne1 commented 1 year ago

@BlackBond06

Yes at least in my opinion it should be saved in the db.

BlackBond06 commented 1 year ago

I thought so. I created a supportModel schema with the following properties (subject to change):

What are your thoughts ? Are there other properties I should add ?

gbowne1 commented 1 year ago

@BlackBond06 I think that is a great start. We can always iterate.

BlackBond06 commented 1 year ago

Cool. I should make a PR for this feature by tomorrow. I'm almost done.

gbowne1 commented 1 year ago

Alright, looking forward to the PR.

No rush at all. I am all for quality over quantity.

I will be posting some contributor guidance over in the Discussion tab, now that we have a small number of active contributors and also a couple collaborators as well.

BlackBond06 commented 1 year ago

Hi @gbowne1, @LOGESH-B

I have opened a PR for the Help/Support feature, please review.

gbowne1 commented 1 year ago

It has a merge conflict with App.js. @BlackBond06

I will review

BlackBond06 commented 1 year ago

Oh, really ?. I await your review.

gbowne1 commented 1 year ago

Yes, it does. It has a merge conflict with App.js. as it is right now would be unable to merge unless App.js is fixed. I will review in a little while. Am currently away from my PC. Thanks.