K

KNOW IT ALL

A web project to help students gain knowledge and get rid of doubts in a simple and easy manner with the help of knowledgeable people. This would help in connecting Teachers/Tutors and Students.

10

The problem KNOW IT ALL solves

A web project that would help in connecting Teachers/Tutors and Students. After signing in, students can raise questions(Public/Private Anonymously/Non-anonymously) which would be assigned to an expert in the subject(teacher/tutor) with some time limit after which it would expire. The student can re-raise the question and it would be assigned to same tutor(if student wants) or some different tutor. Similarly, teachers/tutors may also raise questions which would be assigned to some other tutors/teachers and hence gain further knowledge. Chat feature may be added in near future so that students and their assigned tutor/teacher can communicate easily and seamlessly. It's currently getting updated regularly and new features would be added continuously.

Challenges I ran into

First of all, the basic challenge was to decide on the tech-stack which would interest us and solve the problems in an easy and refined manner. We decided to delve into MERN stack after getting attracted to the huge community that supports it and it's resourcefulness.
Using PassportJs for user authentication using Local Strategy proved to be difficult, but articles on Medium and Youtube videos helped in implementing authentication through JWT with the help of PassportJs.
Just using HTML, CSS, JS and NodeJs to create a dynamic website turned out to be nearly impossible, which caused us to start learning REACT JS. Connecting React server with backend server was quite difficult, but we made it through with the help of several GitHub codes and Youtube videos.
Redux helped in fetching data from backend and supplying them to the components in an easy manner which would otherwise be cumbersome.
On refresing, the user would get logged out because of store state getting cleared which was a huge problem. The way around it was using 'react-persist' which helped in creating persistant store state which hence solved the issue.

Discussion