Commit def62c56 authored by Thennakoon T.M.K.H.B. IT18004564's avatar Thennakoon T.M.K.H.B. IT18004564

Merge branch 'it18004564' into 'master'

Objectives and other necessary info added

See merge request !1
parents d9c3d03a 7e110c50
# 2021-155
ProbExpert - A novel learning aid platform for reducing time spent on the learning and finding answers.
\ No newline at end of file
## ProbExpert - A novel learning aid platform for reducing time spent on the learning and finding answers.
## Main Objective
> Assist users to transform a steep learning experience into smoother and more genial one by enabling profound learning experience.
Introduce an e-learning platform powered by ML and AI, enabling personalized learning path creation for users and determining individual learning to be more resourceful and compelling. The ML-powered platform has the capability to find answers to users' subject related problems/questions across the internet archives. This facility is a great help for users as this process saves valuable time of the user by bringing answers and references to a single place with more accurate information. If not satisfied, users are given the option to ask questions in the platform's thread section to get answers from the respective experts. The system will be intelligent to generate an optimal answer from up-voted answers to form a complete answer. Additionally, with the help of previously answered questions, platform offers a quiz option to either refresh or solidify users' knowledge on their subject of interest. Apart from the above features, a user can get support from an expert on their field through video conferencing as well. The platform has the ability to accurately measure users' proficiency by evaluating the users' contribution to other platforms using machine learning to rank them in the platform. This evaluation method is a great opportunity for the users as well because this process generates a valuable portfolio of the user which can be used to showcase their skills/talents to the outside world.
</br></br>
## Main Research Question
Learning can be overwhelming in the present day with the support of technology, especially the internet, as there is a vast amount of information for a single subject. When learning a particular area, initially, a proper path is vital, and then during the process, it is inevitable to face numerous questions. Many people are wondering about the path they had chosen to reach their individual goals. Once on the wrong path without proper guidance is identified, the final result occurs with wastage of money, time and energy.
After being futile with finding learning materials and starting to self-learn, people tend to seek the professional help of an expert in the field, mostly expecting expert-approved answers or try to follow the path of a particular expert who has already reached their desired goals. Also, individuals admit that experts have the knowledge to solve issues within considerably less time and present profound guidance. There is no specific technology for addressing these issues. People still have to look at public forums, even without knowing whether the content provided by other peers is right or wrong. Due to that particular reason, people may become uncertain. From the view of an expert, no matter how many contributions have been made for a specific platform, there is less reputation when moving from different platforms. Because every platform evaluates users’ reputation by only considering the contribution towards the platform regardless of the expertise, every user has to earn reputation (points) from the ground up. Especially experts, who will not receive a proper reputation for proficiency at the beginning tend to quit or neglect such platforms as building a fitting reputation is time-consuming. Without having an adequate recognition of the knowledge, contributions to questions may be often overlooked by other users misunderstanding the expert as a novice.
Another problem of such platforms is the availability of numerous answers to a single question. Some questions may have received virtually a perfect answer, but in order to form an ideal solution, users will have to survey a few other answers as an optimization method to form an optimal answer is absent in these platforms. When going through answers, the user will be weary as the same answer may be repeated in multiple locations. In another scenario, when a question or a problem is encountered, most are used to google the answer and end up having innumerable information or resources as answers are scattered throughout the internet. There is no proper way to acquire summarized and prioritized answers to a question in a single location.
Therefore, the problem of not having a platform to help users to learn new programming technologies in an ideal way, to connect with experts to clarify doubts and answers and to have an optimal answer for questions, which have been mentioned should be addressed in an efficient way.
</br></br>
## Individual Sub Objectives & Research Problems
### IT18004564: Detecting users' proficiency level along with an auto-generated portfolio
###### Problems
- How to evaluate and assign overall expertise scores to developers based on their all-significant contributions to the internet
- How to generate an automated portfolio for developers based on their online contributions to the social coding platforms.
###### Objectives
The system detects user's proficiency level by analyzing their behaviors, activities, and contributions to the leading platforms on the internet (ex: GitHub, Stack Overflow, LinkedIn, Quora, etc.). Most of the platforms have public APIs (GitHub, Reddit, etc.). For the sites that do not have a public API, a python script will be used to crawl into them and scrape the publicly available data without breaking the platform copyrights. After gathering all these data, the proposed model will predict the user’s proficiency level (Newbie, Intermediate, Professional, Expert) and generate a portfolio by filtering out unnecessary details from the gathered data set. This portfolio contains references to their research papers, blog articles, git contributes, academic qualifications, employment history, etc. Since these details are ordered precisely on a timeline, it will give newbies a solid idea of how they should shape their path accordingly to pursue their dreamed profession or career goals by seeing an expert’s portfolio.
</br></br>
### IT18013610: Analyzing the user's question and forming an answer from public data
###### Problems
- How to create an answer automatically using information gathered from public websites.
- How to find and embed relevant github repository and youtube video for users question
###### Objective
Users of the platform can submit questions. Once a question is submitted by the user, the question will be processed to analyze and extract main keywords by a python script runs on the backend server. Once the system found the keywords, it will inspect the question database to find whether a similar question has been asked before. If the system detects that there is a similar/ related question that has been asked before, the system will give the automated answer mentioning the previously asked question. If the system is unable to find a similar question, or user is not satisfied with the answer of previous question, server will start to scrape information from the internet, using previously identified keywords of the question. Once the system finds 4-5 sources of information, it will summarize the information and form one answer. Then the system will search for video resources using keywords. If the system found video resources, it will associate those to form the answer. As the final step, the system will search for the related GitHub repositories. If there are repositories, the system will append their URL to the answer. Then the answer will save in the database. The system will provide all the resources used to find information together with the answer.
</br></br>
### IT18078992: Formulating structured type questions for knowledge checking, using existing answered questions of the platform
###### Problems
- How to check theoretical knowledge using structured type questions in more accurate way.
- Adaptive questions on each learner's knowledge level.
###### Objective
To generate a quiz the user has to select a specific topic then back-end python script will sort out the related questions that are already posted on the topic. After that, the system will generate more generic questions by removing unnecessary words and components of selected questions. Once the system finishes generating the questions, it will identify each of the questions’ difficulty level. According to the users' expertise level derived from the member 1 function. If the original question, which is used to formulate a quiz question is asked by a beginner level user, the question’s difficulty level will be marked as easy and if there are not any questions related to a user’s topic, then questions and answers will be formulated using external resources.These questions also will be generalized. Formulated questions will be structured type questions. For the answer, system will use both generated optimal answer from the member 4 function and the voted top 3 answers for that question to increase the accuracy as the given answers will be different and mostly ‘user unique’. Then the system will determine the similarity between above answers and the answer of the user to assign a similarity level\score and based on that metric, marks will be given. The answers getting from external resources will also be go through the similarity checking process.
</br></br>
### IT18011012: Optimal answer generation through up-voted answers
Users can openly post their questions in the thread section to get answers from different expert users. Once a question gets several answers, the back-end python script will analyze the 4 top voted answers to formulate an optimal answer for the viewers, analyzed answers will be processed to check whether answers share similar content. If answers share similar content, python server will merge them to reduce redundancy. Then the server will save the answer marking it as a formulated answer. Then it will be shown as the final output after the merge as the optimal answer to the question.
</br></br>
## Technologies
###### Programming languages
- Python
- NodeJS
- ReactJS
- NextJS
###### Database
- MongoDB
###### Libraries
- Pandas
- NLTK
- SpaCy
- BERT
- Word2Vec
- TF-IDF
- BeautifulSoup 4
- Scrapy
- Splash
###### APIs
- Github API
- Telegram API
###### Servers
- Digital ocean
###### Data sources
- Kaggle
- Stackoverflow
- dev.to
- LinkedIn
- Github
- Youtube
- Medium
- Wikipedia
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment