Project_Increment3 - Hiresh12/CS5551_Team6_Project_NLP GitHub Wiki

1. Team members:

• Hiresh Jakkala Bhaskar – Class ID: 17

• Anvesh Mandadi – Class ID: 34

• Bharath Kumar Elaine – Class ID: 12

• JayaPrakash Ravella – Class ID: 42

https://github.com/Hiresh12/CS5551_Team6_Project_NLP/

2. Project Goal:

Motivation:

To develop a web application for evaluating user’s answers for a set of questions using Natural Language Processing.

Significance:

Our System will estimate the correctness of answer entered by users based on keywords. System will evaluate the answers with the synonyms of the keywords to increase the accuracy of the evaluated score for the answer. System will look for online sources like Wikipedia for the keyword other than manual keywords to reduce the admin’s task of updating new keywords in future.

Objectives:

• Develop an application that help users who wants to prepare for competitive exam, interview etc.
• Develop as admin module to add/edit questions.
• Giving suggestion to the user based on the answer key so that user can learn new things about the topics.
• Integrate machine learning and NLP into the software for text analysis and matching the analyzed text with answer ## ## key to evaluate the answers.
• System will also check for grammar error in the texts.

System Features:

• Developed as a web application.
• Lightweight and user-friendly UI
• Integrated Facebook Online Authentication API for login feature.

3. Project Plan

These are the below stories created for Increment2 and moved to closed status, new issues were added recently which are in open status

Burndown Chart for Login and Registration Milestone with closed issues:

Burndown Chart for Admin Details Milestone with Open and closed issues:

Burndown Chart for Homepage Implementation Milestone with closed issues:

Burndown Chart for Answer Evaulation Milestone with Open and closed issues:

4. Implementation Details

Login and Registration Pages (Prakash Ravella):

Registration Page:

 If the user is not registered before then register using the signup form      

After signing up, the page redirects to the login page there after the user can login with their credentials

After logging in, the page redirects to the home page where the user can perform further details

Client-Side Code Snippets:

Designed UI using Bootstrap and Angular frameworks

Server-Side Code snippets:

Used rest methods for storing the user enrollment data and saved the user details to mongoDB

Registration Details in MongoDB:

Admin Page(Bharath Eliane):

Client side:

1. Login Page For admin:

    Created a login page for admin user

• As an Admin User you can manage the page CRUD Operations 

2.Admin Home Page for inserting the captured data from User Interface

• Create Questions, Related Keywords and answers from UI which should be stored into a mongoDB 

Code Snippets for home Page:

Get and Post calls from client side :

$scope.init() for loading data on initialization:

Server Side:

1.app.js

Use HTTP Rest calls for get and post operations for calling the server side code and perform CRUD operations with a unique question ID for the whole data captured from the UI Required Modules:

Get and Post Calls methods:

Inserting Data to the MongoDB:

HomePage(Anvesh Mandadi):

• Once the User logged in with his/her credentials the home page will be displayed with number of questions present in Database.
• In Home Page there are About and contact Tabs. When the user click About tab then project Details will be Displayed. Click the Contact tab to get the Team Details.
• When the User Clicks Logout button then the User will redirect to Login Page.
• Once the User gave the answer to question and click Evaluate button then based on Keyword’s in Database Scores will be displayed.

Code Explanation :

• UI code has been developed using AngularJS and Bootstrap framework. 

• User click the Evaluate button then evaluate function will be called inside the function I wrote the rest API calls for storing the answer details with userId and questionId.Code snippet is below:

• In server, used node.js to write the Restcall APIs to store the answer details and fetching the question details when the home page is loaded. Code Snippet is below:
• Rules for Connecting to Mongo Database:

Output Screenshots :

Answer details are saved in Database which are below:

Answer Evaluation (Hiresh):

• Fetching Answers and keywords from mongoDB and parsing the entities and part of speech for each word using google cloud NLP api.
• Parsing the user’s answers using google cloud NLP api.
• Comparing the above two to find the matching keywords.
• Getting synonyms for the unmatched keywords and comparing it with the input answer.
• Finally the score are assigned based on the matched keywords.

Code Explanation:

Above snippet represent calling server side method to call the NLP api.

Server side code that send post request to google cloud NLP api.

Above snippet has code for comparing the user’s answer and keywords and getting matched keywords, unmatched keywords and words that are not matched with keywords.

Above code represents calling API to get synonyms of the unmatched keywords.

Comparing the answer with the synonyms of the keywords.

Identifying the unmatched keywords and while assigning score, reducing the mark for each unmarked keywords. Output screenshots:

5.Project Management

Task Accomplished

Prakash:

  • Login and Registration Pages are completed
  • Once the User created using Registration Link details will be saved in Mongo Database.
  • Using the Registered Details User can be able to Login.
  • Validations are done for Login and Registration Pages. 

Bharath:

 • Created Admin Login Page to Insert questions into Database. 
 • Once the admin logged with credentials then he can be able to add the questions with keywords and Answers. 
 • Created questions will save in Mongo Database.

Anvesh:

  • Fetch the Questions from Database and display in UI with one text box for Answer and Evaluate button. 
  • Once the answer is given by user,Answer details with questionId and UserDetails will save in Mongo Database 
  • Contact and About Pages are Created. 
  • When the User click the LogOut Button then user redirects to LoginPage 

Hiresh :

  • Comparing the keywords and input answer. 
  • Calculating score based on the matched keywords.
  • Display score to the user in UI.
  • Checking grammar in user’s input. 

Phase3- Task Completed

Prakash:

 • Testcases for Login and Register Pages. 
 • Need to check for Duplicate User while registering. 

Bharath:

 • Search Functionality for Questions. 
 • Tested admin login functionality 
 • Tested Question and keywords insert into MongoDB 
 • Update Functionality for Questions & Keywords 
 • Delete Functionality for Questions.

Anvesh:

 • Tested whether answers inserted into MongoDB or not. 
 • Tested Displaying Questions in Homepage in order. 
 • Duplicate Answer Details Storage needs to be fixed. 

Hiresh:

 • Negative checking like checking antonyms of the keyword are present in the text and reducing marks accordingly.
 • Tested correctness of Answer evaluation with keywords. 
 • Tested whether system calculating marks correctly or not. 

Work to be Completed :

Prakash: NIL

Anvesh: NIL

Hiresh:

  • Need to get keywords from the online sources like wikepedia other than manual updation of keyword for each answer. 

Bharath:

  • refresh UI after every CRUD operation

Bibliography:

• https://cloud.google.com/natural-language/docs/
• http://words.bighugelabs.com/api.php
• https://arxiv.org/ftp/arxiv/papers/1011/1011.1742.pdf
• https://docs.mlab.com/connecting/#methods