Commit fd224d2b authored by IT17165662's avatar IT17165662

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/elearning/probabilityandstatisticsanalyserandeducator/dataExtraction/ExtractValueForRandomVariable.java
#	app/src/main/java/com/elearning/probabilityandstatisticsanalyserandeducator/dataExtraction/ProbabilityDistributionQuestionComparation.java
#	app/src/main/java/com/elearning/probabilityandstatisticsanalyserandeducator/dataExtraction/ProbabilityValue.java
#	app/src/main/java/com/elearning/probabilityandstatisticsanalyserandeducator/inputMethod/DescriptiveSCinputMethod.java
#	app/src/main/java/com/elearning/probabilityandstatisticsanalyserandeducator/inputMethod/ProbabilityDistributionsIM.java
parents 1a7a8b93 723959f4
......@@ -7,7 +7,7 @@ android {
defaultConfig {
applicationId "com.elearning.probabilityandstatisticsanalyserandeducator"
multiDexEnabled true
python{
pip{
install "numpy"
......@@ -63,6 +63,10 @@ android {
dependencies {
implementation fileTree(dir: 'libs', includes: ['*.jar'])
compile 'com.alimuzaffar.lib:pinentryedittext:1.3.1'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
......@@ -75,6 +79,9 @@ dependencies {
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation files('libs\\activation.jar')
implementation files('libs\\additional.jar')
implementation files('libs\\mail.jar')
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.rmtheis:tess-two:5.4.1'
......@@ -82,9 +89,6 @@ dependencies {
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0'
implementation 'com.opencsv:opencsv:4.6'
//implementation 'javax.mail:javax.mail-api:1.5.3'
}
\ No newline at end of file
......@@ -13,6 +13,7 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission
android:name="android.permission.CAMERA"
android:required="true"
......
......@@ -18,6 +18,7 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import static android.Manifest.permission.INTERNET;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static android.Manifest.permission.RECORD_AUDIO;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
......@@ -40,7 +41,7 @@ public class Welcome extends AppCompatActivity {
setContentView(R.layout.activity_welcome);
// Requesting the Initial permission to use the application on first start
ActivityCompat.requestPermissions(this, new String[]{RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, PackageManager.PERMISSION_GRANTED);
ActivityCompat.requestPermissions(this, new String[]{RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE, INTERNET}, PackageManager.PERMISSION_GRANTED);
signUp = findViewById(R.id.btn_signup);
......
......@@ -152,6 +152,74 @@ public class DescriptiveStatisticsQuestionComparation {
}
/*public List<String> NumberValuesForKeywords(String question) {
int counting=0;
List<String> dataforkeyword = new ArrayList<>();
List<Pattern> patterns = new ArrayList<>();
//final String example = "1. 21 bricks have a mean mass of 24.2 kg, and 29 similar bricks have a mass of 23.6 kg. Determine the mean mass of the 50 bricks.";
String data = question;
final String regex1 = "mean.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex2 = "median.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex3 = "mode.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex4 = "minimum.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex5 = "maximum.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex6 = "minimum.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex7 = "range.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex8 = "first quartile.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex9 = "third quartile.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex10 = "range.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final String regex11 = "inter quartile range.*?\\d+(?:,\\d+)*(?:\\d+|(\\.\\d+)?)";
final Pattern pattern1 = Pattern.compile(regex1, Pattern.MULTILINE);
//final Matcher matcher = pattern1.matcher(string);
final Pattern pattern2 = Pattern.compile(regex2, Pattern.MULTILINE);
//final Matcher matcher2 = pattern2.matcher(string);
final Pattern pattern3 = Pattern.compile(regex3, Pattern.MULTILINE);
final Pattern pattern4 = Pattern.compile(regex4, Pattern.MULTILINE);
final Pattern pattern5 = Pattern.compile(regex5, Pattern.MULTILINE);
final Pattern pattern6 = Pattern.compile(regex6, Pattern.MULTILINE);
final Pattern pattern7 = Pattern.compile(regex7, Pattern.MULTILINE);
final Pattern pattern8 = Pattern.compile(regex8, Pattern.MULTILINE);
final Pattern pattern9 = Pattern.compile(regex9, Pattern.MULTILINE);
final Pattern pattern10 = Pattern.compile(regex10, Pattern.MULTILINE);
final Pattern pattern11 = Pattern.compile(regex11, Pattern.MULTILINE);
patterns.add(pattern1);
patterns.add(pattern2);
patterns.add(pattern3);
patterns.add(pattern4);
patterns.add(pattern5);
patterns.add(pattern6);
patterns.add(pattern7);
patterns.add(pattern8);
patterns.add(pattern9);
patterns.add(pattern10);
patterns.add(pattern11);
for (Pattern pattern : patterns) {
Matcher matcher = pattern.matcher(data);
//System.out.println("before matcher loop" + pattern.toString());
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
dataforkeyword.add(counting, matcher.group().trim());
counting++;
}
}
}
return dataforkeyword;
}*/
......
......@@ -7,9 +7,7 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractValueForRandomVariable {
class ExtractValueForRandomVariable {
List<String> randomVariable = new ArrayList<String>();
List<String> wordlist = new ArrayList<String>();
String word;
......
package com.elearning.probabilityandstatisticsanalyserandeducator.dataExtraction;
<<<<<<< HEAD
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
=======
import android.util.Log;
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
import com.elearning.probabilityandstatisticsanalyserandeducator.R;
import com.elearning.probabilityandstatisticsanalyserandeducator.inputMethod.DescriptiveSCinputMethod;
import com.elearning.probabilityandstatisticsanalyserandeducator.inputMethod.ProbabilityDistributionsIM;
import org.w3c.dom.ls.LSOutput;
>>>>>>> origin/master
import java.io.BufferedReader;
import java.io.IOException;
......@@ -14,8 +26,13 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ProbabilityDistributionQuestionComparation {
<<<<<<< HEAD
Python py=null;
=======
Python py=null;
ProbabilityDistributionsIM probabilityDistributionsIM;
>>>>>>> origin/master
String a="Let X and Y be two independent random variables. Suppose that we know Var(2X−Y)=6 and Var(X+2Y)=9. Find Var(X) and Var(Y).";
......@@ -30,6 +47,10 @@ public class ProbabilityDistributionQuestionComparation {
"Overtime hours,0,1,2,3,4,5,6\n" +
"Probability,0.016,0.075,0.134,0.31,0.23,0.155,0.08\n" +
"Find the standard deviation of the probability distribution. (Round to 1 decimal place as needed.)";
<<<<<<< HEAD
=======
//System.out.println("String b:" + b);
>>>>>>> origin/master
List<String> questions ;
List<String> matchprodiskeyword = new ArrayList<>();
......@@ -57,8 +78,13 @@ public class ProbabilityDistributionQuestionComparation {
String result=obj.toString();
String result1=obj1.toString();
<<<<<<< HEAD
System.out.println("output matching: "+result);
System.out.println("matching: "+result1);
=======
System.out.println("output matching: "+result);
System.out.println("matching: "+result1);
>>>>>>> origin/master
matchprodiskeyword = QuestionMatch(result);
return result;
......@@ -93,10 +119,17 @@ public class ProbabilityDistributionQuestionComparation {
StringprobdistributionQuestions.add(tokens);
//printQuestion[lines] = line;
<<<<<<< HEAD
//Log.d("MyActivity", "Just created: " + question);
}
} catch (IOException e) {
// Log.wtf("MyActivity", "Error reading data file on line " + line, e);
=======
// Log.d("MyActivity", "Just created: " + question);
}
} catch (IOException e) {
//Log.wtf("MyActivity", "Error reading data file on line " + line, e);
>>>>>>> origin/master
e.printStackTrace();
}
finally {
......
......@@ -7,9 +7,7 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ProbabilityValue {
class ProbabilityValue {
List<String> probabilityvalue = new ArrayList<String>();
List<String> wordlist = new ArrayList<String>();
String word;
......
......@@ -54,6 +54,7 @@ import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
......@@ -316,8 +317,10 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
DescriptiveStatisticsQuestionComparation dsqc = new DescriptiveStatisticsQuestionComparation();
List<String> reading = readDesQuestions();
List<String> extractDatasetForEssay;
List<String> extractNumbervalue;
String[] extractDatasetForEssayArray = new String[0];
String extractedKeywordsFromFuzzy = null;
if (selectedType.equals("Solve Essay problem")) {
......@@ -326,10 +329,10 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
System.out.println("extractedKeywordsFromFuzzy " + extractedKeywordsFromFuzzy);
//--------------------extrct dataset from DescripticeStatsQuesCompare class using ExtractDatasetfromDescriptiveQuestion method -----------------------------
extractDatasetForEssay = dsqc.ExtractDatasetFromDescriptiveQuestion(output);
System.out.println("extractDatasetForEssay "+extractDatasetForEssay);
System.out.println("lengtheee:"+extractDatasetForEssay.size());
extractDatasetForEssay = dsqc.ExtractDatasetFromDescriptiveQuestion(output);
System.out.println("extractDatasetForEssay " + extractDatasetForEssay);
//System.out.println("Common elements == "+common);
// Converting list to array after data extraction function
extractDatasetForEssayArray = new String[extractDatasetForEssay.size()];
extractDatasetForEssayArray = extractDatasetForEssay.toArray(extractDatasetForEssayArray);
......
......@@ -357,7 +357,7 @@ public class ProbabilityDistributionsIM extends AppCompatActivity {
String[] dataArray2 = new String[extractedData2.size()];
dataArray2 = extractedData2.toArray(dataArray2);
// --------------------------------- Use ProbabilityDistributionQuestionComparation class methods for solve essay type question --------------------------
//list to receive the extrated data
List<String> extractedDataset;
List<String> extractedDataset1;
......@@ -672,47 +672,4 @@ public class ProbabilityDistributionsIM extends AppCompatActivity {
return StringdescriptiveQuestions;
}
private List<String> readProbDistributionQuestions(){
String[] printQuestion = new String[500];
List<ProbabiltyDistributionCSVfile> probDistributionQuestions= new ArrayList<>();
List<String> StringprobdistributionQuestions= new ArrayList<>();
InputStream is = getResources().openRawResource(R.raw.propabilitydistribution);
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, Charset.forName("UTF-8"))
);
String line = "";
try {
while ((line = reader.readLine()) != null) {
//Split by '"'
String tokens = line;
//Read the csv
ProbabiltyDistributionCSVfile question = new ProbabiltyDistributionCSVfile();
question.setQuestion(tokens);
probDistributionQuestions.add(question);
StringprobdistributionQuestions.add(tokens);
//printQuestion[lines] = line;
//Log.d("MyActivity", "Just created: " + question);
}
} catch (IOException e) {
// Log.wtf("MyActivity", "Error reading data file on line " + line, e);
e.printStackTrace();
}
finally {
try {
reader.close();
}catch (IOException e) {
e.printStackTrace();
}
}
return StringprobdistributionQuestions;
}
}
\ No newline at end of file
......@@ -2,32 +2,52 @@ package com.elearning.probabilityandstatisticsanalyserandeducator;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.alimuzaffar.lib.pin.PinEntryEditText;
import com.elearning.probabilityandstatisticsanalyserandeducator.adaptiveLearning.QuizDbHelper;
import org.apache.commons.lang3.ObjectUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Properties;
import java.util.Random;
//import javax.mail.Authenticator;
//import javax.mail.Message;
//import javax.mail.MessagingException;
//import javax.mail.PasswordAuthentication;
//import javax.mail.Session;
//import javax.mail.internet.InternetAddress;
//import javax.mail.internet.MimeMessage;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class verification_screen extends AppCompatActivity {
String eSubject, eMessage, sEmail, sPassword, eUserEmail;
PinEntryEditText pinEntry;
int OTP =0;
Connection con;
DBConnection dbConnection;
Connection con;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......@@ -53,59 +73,160 @@ public class verification_screen extends AppCompatActivity {
sEmail = "probabilitystatitcs.corner@gmail.com";
sPassword = "admin121";
eSubject = "Please Confirm Your Email Address for Probability and Statistics analyzer and Educator ";
eMessage = Integer.toString(OTP);
//Initialize Properties
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
// properties.put("mail.smtp.ssl.trust", "smtp.gmail.com");
/* //Initialize session
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(sEmail,sPassword);
}
});
//Initialize session
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(sEmail,sPassword);
}
});
try{
//Initialize email content
Message message = new MimeMessage(session);
try {
//Initialize email content
Message message = new MimeMessage(session);
//Sender email
message.setFrom(new InternetAddress(sEmail));
//Sender email
message.setFrom(new InternetAddress(sEmail));
//Recipient email
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(eUserEmail.trim()));
System.out.println("userEmail"+eUserEmail);
//Recipient email
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(eUserEmail.trim()));
System.out.println("userEmail"+eUserEmail);
//Email subject
message.setText(eSubject.toString().trim());
//Email subject
message.setSubject(eSubject);
System.out.println("subject "+eSubject);
//Email message
message.setText(eMessage.toString().trim());
//Email message
message.setText(eMessage);
System.out.println("eMessage in email"+eMessage);
//send email
new SendMail().execute(message);
//send email
new SendMail().execute(message);
}catch (MessagingException e){
} catch (MessagingException e) {
e.printStackTrace();
}
}
public class SendMail extends AsyncTask<Message, String, String>{
//Initialize progress dialog
private ProgressDialog ProgressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
//create and show progress dialog
ProgressDialog = ProgressDialog.show(verification_screen.this,"Sending Mail......",
"Confirm Your Verification Message", true, false);
System.out.println("email send"+ProgressDialog);
}
// class Initialization
dbConnection = new DBConnection();
//getting DB connection
con = dbConnection.getConnection();
@Override
protected String doInBackground(Message... messages) {
try {
//When success
Transport.send(messages[0]);
System.out.println("success msg.......");
return "Success";
} catch (MessagingException e) {
//When error
e.printStackTrace();
System.out.println("error msg.......");
return "Error";
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//Dismiss progress dialog
ProgressDialog.dismiss();
if (s.equals("Success")) {
//when success
//Initialize alert dialog
AlertDialog.Builder builder = new AlertDialog.Builder(verification_screen.this);
builder.setCancelable(false);
builder.setTitle(Html.fromHtml("<font color = '#509324'>Success</font>"));
builder.setMessage("Please Check Your Email to Verify User Account");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
//show alert dialog
builder.show();
}else{
//when error
Toast.makeText(getApplicationContext(),
"Something went Wrong..........",Toast.LENGTH_LONG).show();
}
pinEntry = (PinEntryEditText) findViewById(R.id.txt_pin_entry);
if (pinEntry != null) {
pinEntry.setOnPinEnteredListener(new PinEntryEditText.OnPinEnteredListener() {
@Override
public void onPinEntered(CharSequence str) {
if (str.toString().equals(eMessage)) {
Toast.makeText(verification_screen.this, "SUCCESS", Toast.LENGTH_SHORT).show();
System.out.println("emessage Success"+eMessage);
QuizDbHelper quizDbHelper = new QuizDbHelper();
try {
//-------- 3rd Try Catch block -----
//Execute SELECT query from DB
String query = "UPDATE dbo.User_Table set is_Active=1 where firstName = ?";
Statement st = con.createStatement();
ResultSet rst = st.executeQuery(query);
while(rst.next()){
// newUserID = rst.getInt("userID");
}
}catch (Exception e){
e.printStackTrace();
}
}
private class SendMail {
public void execute(Message message) {
}*/
} else {
Toast.makeText(verification_screen.this, "FAIL", Toast.LENGTH_SHORT).show();
pinEntry.setText(null);
}
}
});
}
}
}
}
\ No newline at end of file
from fuzzywuzzy import process
def main(data,data2):
str2match=data
stroptions=["A probability distribution of the number of overtime hours worked in one week per employee is listed below.
Overtime hours,0,1,2,3,4,5,6
Probability,0.016,0.075,0.134,0.31,0.23,0.155,0.08
Find the standard deviation of the probability distribution. (Round to 1 decimal place as needed.)"]
stroptions=["A probability distribution of the number of overtime hours worked in one week per employee is listed below. Overtime hours,0,1,2,3,4,5,6 Probability,0.016,0.075,0.134,0.31,0.23,0.155,0.08 Find the standard deviation of the probability distribution. (Round to 1 decimal place as needed.)"]
ratio=process.extract(str2match,data2)
highest=process.extractOne(str2match,data2)
#print(ratio)
......
......@@ -32,71 +32,18 @@
android:textColor="@color/ic_launcher_uploadPhoto_background"
android:textSize="18dp" />
<LinearLayout
<com.alimuzaffar.lib.pin.PinEntryEditText
android:id="@+id/txt_pin_entry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal"
android:paddingLeft="25dp"
android:paddingRight="25dp">
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="#00FFFFFF "
android:focusable="true"
android:inputType="number"
android:maxLength="1"
android:textSize="30dp"
android:gravity="center"
android:textStyle="bold"
android:textColor="@android:color/white" />
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="#00FFFFFF "
android:focusable="true"
android:inputType="number"
android:maxLength="1"
android:textSize="30dp"
android:gravity="center"
android:textStyle="bold"
android:textColor="@android:color/white" />
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="#00FFFFFF "
android:focusable="true"
android:inputType="number"
android:maxLength="1"
android:textSize="30dp"
android:gravity="center"
android:textStyle="bold"
android:textColor="@android:color/white" />
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="#00FFFFFF "
android:focusable="true"
android:inputType="number"
android:maxLength="1"
android:textStyle="bold"
android:textSize="30dp"
android:gravity="center"
android:textColor="@android:color/white" />
</LinearLayout>
android:cursorVisible="false"
android:digits="1234567890"
android:inputType="number"
android:maxLength="4"
android:textIsSelectable="false"
android:textSize="20sp"
app:pinAnimationType="popIn"
/>
</LinearLayout>
......
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