Commit 89274bdb authored by W.D.R.P. Sandeepa's avatar W.D.R.P. Sandeepa

Merge branch 'it18218640' into 'master'

complete login fun

See merge request !141
parents 2294ffe2 a1c15a36
import re
import MySQLdb
import mysql
from flask import Flask, redirect, url_for, render_template, request, jsonify, make_response from flask import Flask, redirect, url_for, render_template, request, jsonify, make_response
import random import random
import os import os
...@@ -18,35 +22,36 @@ app = Flask(__name__) ...@@ -18,35 +22,36 @@ app = Flask(__name__)
def home(): def home():
return render_template('home.html') return render_template('home.html')
# @app.route('/register', methods =['POST']) @app.route('/register', methods =['POST'])
# def register(): def register():
# msg = '' msg = ''
# if request.method == 'POST' and 'username' in request.form and 'password' in request.form and 'email' in request.form: if request.method == 'POST' and 'username' in request.form and 'password' in request.form and 'email' in request.form:
# username = request.form['username'] username = request.form['username']
# password = request.form['password'] password = request.form['password']
# email = request.form['email'] email = request.form['email']
# cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor) cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
# cursor.execute('SELECT * FROM user WHERE name = % s', (username,)) cursor.execute('SELECT * FROM user WHERE name = % s', (username,))
# account = cursor.fetchone() account = cursor.fetchone()
# if account: if account:
# msg = 'Account already exists !' msg = 'Account already exists !'
# elif not re.match(r'[^@]+@[^@]+\.[^@]+', email): elif not re.match(r'[^@]+@[^@]+\.[^@]+', email):
# msg = 'Invalid email address !' msg = 'Invalid email address !'
# elif not re.match(r'[A-Za-z0-9]+', username): elif not re.match(r'[A-Za-z0-9]+', username):
# msg = 'Username must contain only characters and numbers !' msg = 'Username must contain only characters and numbers !'
# elif not username or not password or not email: elif not username or not password or not email:
# msg = 'Please fill out the form !' msg = 'Please fill out the form !'
# else: else:
# cursor.execute('INSERT INTO accounts VALUES (NULL, % s, % s, % s)', (username, password, email,)) cursor.execute('INSERT INTO accounts VALUES (NULL, % s, % s, % s)', (username, password, email,))
# mysql.connection.commit() mysql.connection.commit()
# msg = 'You have successfully registered !' msg = 'You have successfully registered !'
# elif request.method == 'POST': elif request.method == 'POST':
# msg = 'Please fill out the form !' msg = 'Please fill out the form !'
# return msg return msg
# Color Function Route (IT18218640) # Color Function Route (IT18218640)
# Get Color activities route # Get Color activities route
@app.route("/getColorActivities1") @app.route("/getColorActivities1")
def getColorActivities1(): def getColorActivities1():
return get_color_activities1() return get_color_activities1()
...@@ -60,43 +65,61 @@ def getColorActivitiesResult(): ...@@ -60,43 +65,61 @@ def getColorActivitiesResult():
# print("data_dic") # print("data_dic")
return get_color_activity_result() return get_color_activity_result()
# @app.route("/predict", methods=["POST"]) @app.route("/predict", methods=["POST"])
# def predict(): def predict():
# # get audio file and save it
# audio_file = request.files["file"] data = request.get_json()
# print((f"{data}"))
# print(f"{request.files['file']}")
# # print(f"{request.files['name']}") fileitem = data['uri']
#
# ###################################### # if fileitem.filename:
# print(f"{request.form['name']}") # # strip the leading path from the file name
# ##################################### fn = os.path.basename(fileitem)
# # print(f"{request.json}") #
# # # open read and write the file into the server
# file_name = str(random.randint(0, 100000)) open(fn, 'wb').write(fileitem.file.read())
# # audio_file.save((file_name))
# resp = make_response(request.get_json())
# # get file name resp.headers['Access-Control-Allow-Origin'] = '*'
# # predict_file_name = audio_file.filename resp.headers['Content-Type'] = 'application/json'
# # predict_file_name = predict_file_name.split("/") return resp
# # new_predict_file_name = predict_file_name[1]
# # new_predict_file_name = new_predict_file_name.split(".") # get audio file and save it
# # FPFN = new_predict_file_name[0] # audio_file = request.files["file"]
# # print(f"{FPFN}") # audio_file = request.files["name"]
#
# # invoke keyword spotting service # print((f"{request.data}"))
# kss = Keyword_Spotting_service() # print((f"{request.form}"))
# # print((f"{request.values}"))
# # make a prediction # print((f"{request.json}"))
# predicted_keyword = kss.predict(file_name, request.form['name']) # print(f"{request.form['name']}")
# # file_name = str(random.randint(0, 100000))
# # remove the audio file # audio_file.save((file_name))
# os.remove(file_name) #
# # # get file name
# # send back the predicted keword in json format # predict_file_name = audio_file.filename
# data = {"Keyword": predicted_keyword} # predict_file_name = predict_file_name.split("/")
# return jsonify(data) # new_predict_file_name = predict_file_name[1]
# # return "audio_file" # new_predict_file_name = new_predict_file_name.split(".")
# FPFN = new_predict_file_name[0]
# # print(f"{FPFN}")
#
# # invoke keyword spotting service
# kss = Keyword_Spotting_service()
#
#
# # make a prediction
# predicted_keyword = kss.predict(file_name, FPFN)
#
# # remove the audio file
# os.remove(file_name)
#
# # send back the predicted keword in json format
# data = {"Keyword" : predicted_keyword}
# return jsonify("print")
# return "Print"
# Read Function Route (IT) # Read Function Route (IT)
...@@ -119,26 +142,29 @@ def abc(): ...@@ -119,26 +142,29 @@ def abc():
# Loging # Loging
@app.route("/login", methods=['POST']) @app.route("/login", methods=['POST'])
def login(): def login():
req = request.get_json() req = request.get_json()
username = req['username'] email = req['email']
password = req['password'] password = req['password']
user = getStudentByName(username, password) user = getStudentByName(email, password)
if len(user) == 0: if len(user) == 0:
data = { data = {
"body": [], "body": [],
"message": "Failed" "message": "Failed",
"status": 404
} }
else: else:
data = { data = {
"body": user, "body": user,
"message": "Success" "message": "Success",
"status": 200
} }
body = jsonify(data) body = jsonify(data)
return make_response(body) return make_response(body)
if __name__ == "__main__": if __name__ == "__main__":
# app.run(host='192.168.8.101') app.run(host='192.168.8.102')
# app.run(host='192.168.8.100,port='5000', debug=True) # app.run(host='192.168.8.100,port='5000', debug=True)
app.run(debug=True) # app.run(debug=True)
\ No newline at end of file \ No newline at end of file
...@@ -12,7 +12,7 @@ def create_con(): ...@@ -12,7 +12,7 @@ def create_con():
database="helply", database="helply",
host="127.0.0.1", host="127.0.0.1",
user="root", user="root",
password="12345678" password="rp19970520"
) )
return db return db
......
from API.db.dbConnection import get_data from API.db.dbConnection import get_data
def getStudentByName(username, password): def getStudentByName(email, password):
qry = 'SELECT * FROM `user` WHERE name = "{}" AND password = "{}"'.format(username, password) qry = 'SELECT * FROM `user` WHERE email = "{}" AND password = "{}"'.format(email, password)
user = get_data(qry) user = get_data(qry)
return user return user
This diff is collapsed.
...@@ -7,7 +7,7 @@ import Home from '../screen/home'; ...@@ -7,7 +7,7 @@ import Home from '../screen/home';
import Start from '../screen/Start'; import Start from '../screen/Start';
import Register from '../screen/auth/Register'; import Register from '../screen/auth/Register';
import Login from '../screen/auth/Login'; import Login from '../screen/auth/Login';
import Splash from '../screen/splash/splash'; import Splash from '../screen/splash/Splash';
import Color from '../screen/Color'; import Color from '../screen/Color';
import Blue from '../screen/activity/Blue'; import Blue from '../screen/activity/Blue';
import Read from '../screen/Read'; import Read from '../screen/Read';
......
...@@ -3,6 +3,8 @@ import Orientation from 'react-native-orientation-locker'; ...@@ -3,6 +3,8 @@ import Orientation from 'react-native-orientation-locker';
import React, { useState } from "react"; import React, { useState } from "react";
import { SafeAreaView, ScrollView, View, StyleSheet, ImageBackground, Text, TextInput, TouchableOpacity, Image } from "react-native"; import { SafeAreaView, ScrollView, View, StyleSheet, ImageBackground, Text, TextInput, TouchableOpacity, Image } from "react-native";
import client from "../client/Client";
const isValidObjectField = (obj) => { const isValidObjectField = (obj) => {
return Object.values(obj).every(value => value.trim()); return Object.values(obj).every(value => value.trim());
} }
...@@ -66,11 +68,45 @@ const Login = () => { ...@@ -66,11 +68,45 @@ const Login = () => {
const submitForm = () => { const submitForm = () => {
if (isValidForm()){ if (isValidForm()){
()=> { navigation.navigate("Start")}
console.log(userInfo); loginFun(userInfo)
} }
} }
const loginFun = () => {
var formData = JSON.stringify(userInfo);
client.post('login', formData, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
console.log(response.data);
if(response.data.status == 404){
return updateError('Please register our system', setError);
}
if(response.data.status == 200){
return navigation.navigate("Start");
}
})
.catch((err) => {
console.log(err);
});
}
return( return(
<SafeAreaView> <SafeAreaView>
<ScrollView> <ScrollView>
...@@ -85,15 +121,15 @@ const Login = () => { ...@@ -85,15 +121,15 @@ const Login = () => {
{error ? (<Text style={{color: 'red', fontSize: 18, textAlign: 'center'}}>{error}</Text>) : null} {error ? (<Text style={{color: 'red', fontSize: 18, textAlign: 'center'}}>{error}</Text>) : null}
<View style={styles.form_input}> <View style={styles.form_input}>
<TextInput value={email} autoCapitalize="none" onChangeText={value => handleOnChangeText(value, 'email')} style={styles.text_input} placeholder="Enter Email"></TextInput> <TextInput id="email" value={email} autoCapitalize="none" onChangeText={value => handleOnChangeText(value, 'email')} style={styles.text_input} placeholder="Enter Email"></TextInput>
</View> </View>
<View style={styles.form_input}> <View style={styles.form_input}>
<TextInput value={password} autoCapitalize="none" secureTextEntry onChangeText={value => handleOnChangeText(value, 'password')} keyboardType="visible-password" style={styles.text_input} placeholder="Enter Password"></TextInput> <TextInput id="password" value={password} autoCapitalize="none" secureTextEntry onChangeText={value => handleOnChangeText(value, 'password')} style={styles.text_input} placeholder="Enter Password"></TextInput>
</View> </View>
<View style={styles.form_input}> <View style={styles.form_input}>
<TouchableOpacity onPress={()=> { navigation.navigate("Home")}} style={styles.btn}> <TouchableOpacity onPress={ submitForm } style={styles.btn}>
<Text style={styles.btn_text}> <Text style={styles.btn_text}>
Sign In Sign In
</Text> </Text>
......
...@@ -82,11 +82,34 @@ const Register = () => { ...@@ -82,11 +82,34 @@ const Register = () => {
const submitForm = () => { const submitForm = () => {
if (isValidForm()){ if (isValidForm()){
console.log(userInfo); // console.log(userInfo);
registerFun(userInfo);
} }
} }
// import client from "../client/Client"; const registerFun = ()=> {
console.log(userInfo.email);
// client.get('register', userInfo, {
// headers: {
// Accept: 'application/json',
// 'Content-Type': 'application/json',
// },
// })
// .then((response) => {
// console.log(response);
// })
// .catch((err) => {
// console.log(err);
// });
}
return ( return (
<SafeAreaView> <SafeAreaView>
......
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