sign in page - user login
chat or inbox page - users chat with service providers in real time
sign up page - user or service provider registration
create service page - using this page, service providers can create new service
service list page - users can see list of all services provided by different service providers
posts page - users can create post, see, like or comment on others post
During these times of Covid-19 it has been more difficult to meet up with experts in their fields due to the associated danger of meeting up in an office. Even with this, the need of advice from those who have mastered their respective fields has not reduced. For some, there has been an increase of need of financial assistance due to suddenly being found out of a job. While others may find themselves feeling a lot more stressed and lost due to being alone and away from others due to isolation and want to have easier access to mental health assistance. This inspired us to build QuickConnect where connectivity is created among people who needs help and who are ready to help.
What it does
It is like a social media platform where two types of user are observed - regular users who are looking to share thoughts and looking for help from professionals and service providers who provide service like financial budgeting plan for students, improving mental health, provide treatment as a doctor, helping other students as a student and earn money. People can create post, hit Like or create comments on other posts. But if the comment is a negative one then the system detects that using Natural Language Processing and Sentiment Analysis technique and prevents the comment from posting. It also has a Real Time chatting feature where users and service providers can chat and make a conversation in real time.
How we built it
The application is based on two servers. First server was set up using Node.js and Express.js where the APIs are developed and logics are implemented. This is the backend server. Natural Language Processing and Sentiment Analysis part has also been setup on this server. Whenever there is a negative comment, the system reads the comment, corrects the spelling of each word where necessary, does the sentiment analysis and returns a score for the entire comment. Any value less than 0 is considered as a negative comment and in that case, the user is informed about it and the comment is not posted. This helps to stop spread negativity. Another Front End App was created using Vue JS and this is the user interface or the client application. APIs were created in Backend server and data was fetched from Front End. We also made use of the Socket.io for the real time chat experience and this was needed to be implemented on both the front end and the back end. APIs are called from front end app using Axios. When a user is logged in, the information is stored in the localStorage of the browser and that is used for making further http requests. In this way, communication was established between the front end and the back end application.
Challenges we ran into
We faced the following challenges:
- Connecting the front-end to backend
- Seamless connections between users for Socket.io (networking)
- We tried to implement CockroachDB but ran into too many troubles for us to continue wasting time on it
- Due to shortage of time, we could not use database. Instead we created variables in the back end side and used those to store information temporarily.
Accomplishments that we're proud of
In this short period of time, we were able to develop an entire web based application having two servers front end and back end, implementing Natural Language Processing and Sentiment Analysis, Real Time chat feature integration using Socket.io and absolute teamwork.
What we learned
From QuickConnect, we learned:
- Sockets and networking
- Gained deeper understanding of Vue for our frontend team and nodeJs for our backend team
- Server/client-side integration
- Data handling/data collection
- Dividing tasks among team members and strong teamwork
What's next for QuickConnect
We plan to add video chat feature and payment integration using which payment can be done. Implementing token based security is also in the priority list that will help to do secure data communication.